public void StaticMembersAccessorsCanBeUsedForReferenceTypes(string input, Type targetType) { var actual = SettingValueConversions.ConvertToType(input, targetType); Assert.IsAssignableFrom(targetType, actual); Assert.Equal(ConcreteImpl.Instance, actual); }
public void StringValuesThrowsWhenMissingDefaultConstructorIfTargetIsAbstractClass() { var value = "Serilog.Tests.Support.DummyConcreteClassWithoutDefaultConstructor, Serilog.Tests"; Assert.Throws <InvalidOperationException>(() => SettingValueConversions.ConvertToType(value, typeof(DummyAbstractClass))); }
public void ValuesConvertToTypeFromAssemblyQualifiedName() { var assemblyQualifiedName = typeof(Version).AssemblyQualifiedName; var result = (Type)SettingValueConversions.ConvertToType(assemblyQualifiedName, typeof(Type)); Assert.Equal(typeof(Version), result); }
public void ValuesConvertToIntArray() { var result = (int[])SettingValueConversions.ConvertToType("1,2", typeof(int[])); Assert.Equal(2, result.Length); Assert.Equal(1, result[0]); Assert.Equal(2, result[1]); }
[InlineData("0:0:0.2", 0, 0, 0, 0, 200)] // minimal milliseconds public void TimeSpanValuesCanBeParsed(string input, int expDays, int expHours, int expMin, int expSec, int expMs) { var expectedTimeSpan = new TimeSpan(expDays, expHours, expMin, expSec, expMs); var actual = SettingValueConversions.ConvertToType(input, typeof(TimeSpan)); Assert.IsType <TimeSpan>(actual); Assert.Equal(expectedTimeSpan, actual); }
public void ValuesConvertToStringArray() { var result = (string[])SettingValueConversions.ConvertToType("key1=value1,key2=value2", typeof(string[])); Assert.Equal(2, result.Length); Assert.Equal("key1=value1", result[0]); Assert.Equal("key2=value2", result[1]); }
public void StaticAccessorWithInvalidMemberThrowsInvalidOperationException(string input, Type targetType) { var exception = Assert.Throws <InvalidOperationException>(() => SettingValueConversions.ConvertToType(input, targetType) ); Assert.Contains("Could not find a public static property or field ", exception.Message); Assert.Contains("on type `Serilog.Tests.Support.ClassWithStaticAccessors, Serilog.Tests`", exception.Message); }
public void StaticAccessorOnUnknownTypeThrowsTypeLoadException(string input, Type targetType) { Assert.Throws <TypeLoadException>(() => SettingValueConversions.ConvertToType(input, targetType) ); }
public void ValuesConvertToIntArrayEmpty() { var result = (int[])SettingValueConversions.ConvertToType("", typeof(int[])); Assert.Empty(result); }
public void StringValuesConvertToDefaultInstancesIfTargetIsAbstractClass() { var result = SettingValueConversions.ConvertToType("Serilog.Tests.Support.DummyConcreteClassWithDefaultConstructor, Serilog.Tests", typeof(DummyAbstractClass)); Assert.IsType <DummyConcreteClassWithDefaultConstructor>(result); }
public void StringValuesConvertToDefaultInstancesIfTargetIsInterface() { var result = SettingValueConversions.ConvertToType("Serilog.Formatting.Json.JsonFormatter", typeof(ITextFormatter)); Assert.IsType <JsonFormatter>(result); }
public void ValuesConvertToEnumMembers() { var result = (LogEventLevel)SettingValueConversions.ConvertToType("Information", typeof(LogEventLevel)); Assert.Equal(LogEventLevel.Information, result); }
public void ValuesConvertToNullableTimeSpan() { var result = (TimeSpan?)SettingValueConversions.ConvertToType("00:01:00", typeof(TimeSpan?)); Assert.Equal(TimeSpan.FromMinutes(1), result); }
public void EmptyStringValuesConvertToNullIfTargetIsNullable() { var result = (int?)SettingValueConversions.ConvertToType("", typeof(int?)); Assert.True(result == null); }
public void ValuesConvertToStringArrayEmpty() { var result = (string[])SettingValueConversions.ConvertToType("", typeof(string[])); Assert.Empty(result); }
public void ValuesConvertToTypeFromQualifiedName() { var result = (Type)SettingValueConversions.ConvertToType("System.Version", typeof(Type)); Assert.Equal(typeof(Version), result); }
public void ConvertibleValuesConvertToTIfTargetIsNullable() { var result = (int?)SettingValueConversions.ConvertToType("3", typeof(int?)); Assert.True(result == 3); }