1 // Licensed to the .NET Foundation under one or more agreements. 2 // The .NET Foundation licenses this file to you under the MIT license. 3 // See the LICENSE file in the project root for more information. 4 5 using System.Collections.Generic; 6 using Xunit; 7 8 namespace System.Globalization.Tests 9 { 10 public class DateTimeFormatInfoLongDatePattern 11 { 12 private static readonly RandomDataGenerator s_randomDataGenerator = new RandomDataGenerator(); 13 LongDatePattern_InvariantInfo()14 public void LongDatePattern_InvariantInfo() 15 { 16 Assert.Equal("dddd, dd MMMM yyyy", DateTimeFormatInfo.InvariantInfo.LongDatePattern); 17 } 18 LongDatePattern_TestData()19 public static IEnumerable<object[]> LongDatePattern_TestData() 20 { 21 yield return new object[] { "dddd, dd MMMM yyyy HH:mm:ss" }; 22 yield return new object[] { "dddd" }; 23 yield return new object[] { "D" }; 24 yield return new object[] { "HH:mm:ss dddd, dd MMMM yyyy" }; 25 yield return new object[] { s_randomDataGenerator.GetString(-55, false, 1, 256) }; 26 yield return new object[] { "dddd, dd MMMM yyyy" }; 27 } 28 29 [Theory] 30 [MemberData(nameof(LongDatePattern_TestData))] LongDatePattern_Set(string newLongDatePattern)31 public void LongDatePattern_Set(string newLongDatePattern) 32 { 33 var format = new DateTimeFormatInfo(); 34 format.LongDatePattern = newLongDatePattern; 35 Assert.Equal(newLongDatePattern, format.LongDatePattern); 36 } 37 38 [Fact] LongDatePattern_Set_Invalid()39 public void LongDatePattern_Set_Invalid() 40 { 41 AssertExtensions.Throws<ArgumentNullException>("value", () => new DateTimeFormatInfo().LongDatePattern = null); // Value is null 42 Assert.Throws<InvalidOperationException>(() => DateTimeFormatInfo.InvariantInfo.LongDatePattern = "dddd, dd MMMM yyyy"); // DateTimeFormatInfo.InvariantInfo is read only 43 } 44 } 45 } 46