public void CanConfigureWithNestedTypes() { IObjectChangeTrackingConfiguration config = ObjectChangeTracking.CreateConfiguration(); config.TrackTypesFromAssembly(typeof(ConfigurationTest).GetTypeInfo().Assembly, searchSettings: new TypeSearchSettings { Mode = TypeSearchMode.AttributeConfigurationOnly, Filter = t => t == typeof(ClassWithNestedEnum) || t == typeof(DerivedClassWithNestedEnum) }); ITrackableObjectFactory factory = config.CreateTrackableObjectFactory(); DerivedClassWithNestedEnum instance = factory.CreateOf <DerivedClassWithNestedEnum>(); Assert.IsNotNull(instance); }
public void CanConfigureNonTrackablePropertiesFromBaseClasses() { IObjectChangeTrackingConfiguration config = ObjectChangeTracking.CreateConfiguration(); config.TrackTypesFromAssembly(typeof(ConfigurationTest).GetTypeInfo().Assembly, searchSettings: new TypeSearchSettings { Mode = TypeSearchMode.AttributeConfigurationOnly, Recursive = true, Filter = t => { return(t.DeclaringType == typeof(ConfigurationTest)); } }); ITrackableObjectFactory trackableObjectFactory = config.CreateTrackableObjectFactory(); DerivedClassOfBaseClassWithNonTrackableProperty obj = trackableObjectFactory.CreateOf <DerivedClassOfBaseClassWithNonTrackableProperty>(); IObjectChangeTracker changeTracker = obj.GetChangeTracker(); Assert.AreEqual(1, changeTracker.Count()); Assert.IsTrue(changeTracker.First().PropertyName == "Text2"); }