public void Test_that_for_no_matched_property_null_serializer_is_returned() { // Arrange var provider = new ConventionBasedMetamodelProvider(); IMetamodelProvider metamodelProvider = provider; provider .AddPropertySerializerRule( p => p.Name == "FictionalProperty", p => new ValueSerializerMock()); // Act var serializer = metamodelProvider.TryGetPropertySerializer(typeof(TestType).GetProperty(nameof(TestType.Property))); // Assert Assert.IsNull(serializer); }
public void Test_that_property_rules_applied_in_the_same_order_as_they_was_registered2() { // Arrange var provider = new ConventionBasedMetamodelProvider(); IMetamodelProvider metamodelProvider = provider; provider .AddPropertySerializerRule( p => p.PropertyType == typeof(string), p => new AnotherValueSerializerMock()) .AddPropertySerializerRule( p => p.Name == "Property", p => new ValueSerializerMock()); // Act var testTypeSerializer = metamodelProvider.TryGetPropertySerializer(typeof(TestType).GetProperty(nameof(TestType.Property))); var anotherTestTypeSerializer = metamodelProvider.TryGetPropertySerializer(typeof(AnotherTestType).GetProperty(nameof(AnotherTestType.Property))); // Assert Assert.IsNotNull(testTypeSerializer); Assert.IsNotNull(anotherTestTypeSerializer); Assert.IsInstanceOfType(testTypeSerializer, typeof(ValueSerializerMock)); Assert.IsInstanceOfType(anotherTestTypeSerializer, typeof(AnotherValueSerializerMock)); }