public static void Deserializing_constructors___When_properties_exist___Works() { // Arrange var serializationConfigurationType1 = typeof(IncludeVersionlessAssemblyQualifiedNamePropertyBagSerializationConfiguration <TypesToRegisterPropertyBagSerializationConfiguration <ConstructorWithProperties> >); var serializationConfigurationType2 = typeof(ExcludeVersionlessAssemblyQualifiedNamePropertyBagSerializationConfiguration <TypesToRegisterPropertyBagSerializationConfiguration <ConstructorWithProperties> >); var serializer1 = new ObcPropertyBagSerializer(serializationConfigurationType1.ToPropertyBagSerializationConfigurationType()); var serializer2 = new ObcPropertyBagSerializer(serializationConfigurationType2.ToPropertyBagSerializationConfigurationType()); var expected = new ConstructorWithProperties(A.Dummy <string>(), A.Dummy <int>(), A.Dummy <DateTime>()); var serializedPropertyBag1a = serializer1.SerializeToNamedPropertyBagWithStringValues(expected); var serializedPropertyBag1b = serializer1.SerializeToNamedPropertyBagWithObjectValues(expected); var serializedPropertyBag1c = serializer1.SerializeToOrdinalPropertyBagWithStringValues(expected); var serializedPropertyBag1d = serializer1.SerializeToOrdinalPropertyBagWithObjectValues(expected); var serializedPropertyBag2a = serializer2.SerializeToNamedPropertyBagWithStringValues(expected); var serializedPropertyBag2b = serializer2.SerializeToNamedPropertyBagWithObjectValues(expected); var serializedPropertyBag2c = serializer2.SerializeToOrdinalPropertyBagWithStringValues(expected); var serializedPropertyBag2d = serializer2.SerializeToOrdinalPropertyBagWithObjectValues(expected); // Act void ThrowIfObjectsDiffer(DescribedSerializationBase describedSerialization, ConstructorWithProperties deserialized) { deserialized.Property1.AsTest().Must().BeEqualTo(expected.Property1); deserialized.Property2.AsTest().Must().BeEqualTo(expected.Property2); deserialized.Property3.AsTest().Must().BeEqualTo(expected.Property3); } // Act, Assert expected.RoundtripSerializeViaPropertyBagWithCallbackVerification(ThrowIfObjectsDiffer); var actualPropertyBag1a = serializer1.Deserialize <ConstructorWithProperties>(serializedPropertyBag1a); var actualPropertyBag1b = serializer1.Deserialize <ConstructorWithProperties>(serializedPropertyBag1b); var actualPropertyBag1c = serializer1.Deserialize <ConstructorWithProperties>(serializedPropertyBag1c); var actualPropertyBag1d = serializer1.Deserialize <ConstructorWithProperties>(serializedPropertyBag1d); var actualPropertyBag2a = serializer1.Deserialize <ConstructorWithProperties>(serializedPropertyBag2a); var actualPropertyBag2b = serializer1.Deserialize <ConstructorWithProperties>(serializedPropertyBag2b); var actualPropertyBag2c = serializer1.Deserialize <ConstructorWithProperties>(serializedPropertyBag2c); var actualPropertyBag2d = serializer1.Deserialize <ConstructorWithProperties>(serializedPropertyBag2d); ThrowIfObjectsDiffer(null, actualPropertyBag1a); ThrowIfObjectsDiffer(null, actualPropertyBag1b); ThrowIfObjectsDiffer(null, actualPropertyBag1c); ThrowIfObjectsDiffer(null, actualPropertyBag1d); ThrowIfObjectsDiffer(null, actualPropertyBag2a); ThrowIfObjectsDiffer(null, actualPropertyBag2b); ThrowIfObjectsDiffer(null, actualPropertyBag2c); ThrowIfObjectsDiffer(null, actualPropertyBag2d); }
public static void Deserializing_constructors___When_properties_exist___Works() { // Arrange var serializer = new NaosPropertyBagSerializer(); var input = new ConstructorWithProperties(A.Dummy <string>(), A.Dummy <string>(), A.Dummy <string>()); // Act var serializedString = serializer.SerializeToString(input); var actual = serializer.Deserialize <ConstructorWithProperties>(serializedString); // Act actual.PropertyGetOnly.Should().Be(input.PropertyGetOnly); actual.PropertyPrivateSet.Should().Be(input.PropertyPrivateSet); actual.PropertyPublicSet.Should().Be(input.PropertyPublicSet); }