public void LoadPropertiesIgnoresNamespaceDeclarationWhenLoadingFromAttributes() { var definition = new XElement("Definition", new XAttribute("xmlns", "http://somenamespace")); var instance = new StubClassWithProperties(); Assert.DoesNotThrow(() => TestableTelemetryConfigurationFactory.LoadProperties(definition, instance)); }
public void LoadPropertiesInstantiatesObjectOfTypeSpecifiedInTypeAttribute() { var definition = new XElement("Definition", new XElement("ChildProperty", new XAttribute("Type", typeof(StubClassWithProperties).AssemblyQualifiedName))); var instance = new StubClassWithProperties(); TestableTelemetryConfigurationFactory.LoadProperties(definition, instance); Assert.Equal(typeof(StubClassWithProperties), instance.ChildProperty.GetType()); }
public void LoadPropertiesGivesPrecedenceToValuesFromElementsBecauseTheyAppearBelowAttributes() { var definition = new XElement("Definition", new XAttribute("Int32Property", "41"), new XElement("Int32Property", "42")); var instance = new StubClassWithProperties(); TestableTelemetryConfigurationFactory.LoadProperties(definition, instance); Assert.Equal(42, instance.Int32Property); }
public void LoadPropertiesLoadsPropertiesFromAttributes() { var definition = new XElement("Definition", new XAttribute("Int32Property", "42")); var instance = new StubClassWithProperties(); TestableTelemetryConfigurationFactory.LoadProperties(definition, instance); Assert.Equal(42, instance.Int32Property); }
public void LoadPropertiesConvertsPropertyValuesFromStringToPropertyType() { var definition = new XElement("Definition", new XElement("Int32Property", "42")); var instance = new StubClassWithProperties(); TestableTelemetryConfigurationFactory.LoadProperties(definition, instance); Assert.Equal(42, instance.Int32Property); }
public void LoadInstanceInitializesGivenInstanceAndDoesNotRequireSpecifyingTypeAttributeToSimplifyConfiguration() { var definition = new XElement( "Definition", new XElement("StringProperty", "TestValue")); var original = new StubClassWithProperties(); object instance = TestableTelemetryConfigurationFactory.LoadInstance(definition, typeof(StubClassWithProperties), original); Assert.Equal("TestValue", original.StringProperty); }
public void LoadInstanceHandlesEnumPropertiesWithEnumerationValueName() { var definition = new XElement( "Definition", new XElement("EnumProperty", "Informational")); var original = new StubClassWithProperties(); object instance = TestableTelemetryConfigurationFactory.LoadInstance(definition, typeof(StubClassWithProperties), original, null); Assert.Equal(System.Diagnostics.Tracing.EventLevel.Informational, original.EnumProperty); }
public void LoadInstanceHandlesEnumPropertiesWithNumericValue() { var definition = new XElement( "Definition", new XElement("EnumProperty", "3")); var original = new StubClassWithProperties(); object instance = TestableTelemetryConfigurationFactory.LoadInstance(definition, typeof(StubClassWithProperties), original, null); Assert.Equal(EventLevel.Warning, original.EnumProperty); }
public void LoadPropertiesRecursivelyLoadsInstanceSpecifiedByTypeAttribute() { var definition = new XElement( "Definition", new XElement( "ChildProperty", new XAttribute("Type", typeof(StubClassWithProperties).AssemblyQualifiedName), new XElement("StringProperty", "TestValue"))); var instance = new StubClassWithProperties(); TestableTelemetryConfigurationFactory.LoadProperties(definition, instance); Assert.Equal("TestValue", instance.ChildProperty.StringProperty); }