public void Test_that_type_serializer_is_used_when_there_is_no_property_serializer() { // Arrange var type = typeof(TestType); var property = typeof(CompositeTestType).GetProperty(nameof(CompositeTestType.ComplexProperty)); var providerMock = new Mock <IMetamodelProvider>(); providerMock .Setup(x => x.TryGetPropertySerializer(It.IsAny <PropertyInfo>())) .Returns <PropertyInfo>(p => null); providerMock .Setup(x => x.TryGetTypeSerializer(It.Is <Type>(t => t == type))) .Returns <Type>(p => new AnotherValueSerializerMock()); var metamodelImpl = new EntityMetamodelImpl(providerMock.Object); // Act var serializer = metamodelImpl.TryGetSerializer(property); // Assert Assert.IsNotNull(serializer); Assert.IsInstanceOfType(serializer, typeof(AnotherValueSerializerMock)); }
public void Test_that_structure_serializer_is_propogated_to_the_nullable() { // Arrange var type = typeof(TestStruct); var property = typeof(CompositeTestType).GetProperty(nameof(CompositeTestType.NullableStructProperty)); var providerMock = new Mock <IMetamodelProvider>(); providerMock .Setup(x => x.TryGetTypeSerializer(It.Is <Type>(t => t == type))) .Returns <Type>(p => new ValueSerializerMock()); var metamodelImpl = new EntityMetamodelImpl(providerMock.Object); // Act var serializer = metamodelImpl.TryGetSerializer(property); // Assert Assert.IsNotNull(serializer); Assert.IsInstanceOfType(serializer, typeof(ValueSerializerMock)); }
public void Test_that_no_serializer_is_returned_when_there_are_no_serializers_for_property_and_type() { // Arrange var property = typeof(CompositeTestType).GetProperty(nameof(CompositeTestType.ComplexProperty)); var providerMock = new Mock <IMetamodelProvider>(); providerMock .Setup(x => x.TryGetPropertySerializer(It.IsAny <PropertyInfo>())) .Returns <PropertyInfo>(p => null); providerMock .Setup(x => x.TryGetTypeSerializer(It.IsAny <Type>())) .Returns <Type>(p => null); var metamodelImpl = new EntityMetamodelImpl(providerMock.Object); // Act var serializer = metamodelImpl.TryGetSerializer(property); // Assert Assert.IsNull(serializer); }