public void Serialize_NonSerializableType_Exception() { using (var subject = new DataContractJsonRoundtripSerializer<NonSerializable>()) { Assert.That(() => subject.Serialize(new NonSerializable("s")), Throws.InstanceOf<InvalidDataContractException>()); } }
public void Deserialize_BeforeSerializing_Exception() { using (var subject = new DataContractJsonRoundtripSerializer<Serializable>()) { Assert.That(() => subject.Deserialize(), Throws.InstanceOf<SerializationException>()); } }
public void Serialize_SerializableType_AStringRepresentationOfSerializedObject() { using (var subject = new DataContractJsonRoundtripSerializer<Serializable>()) { string representation = subject.Serialize(new Serializable { S = "s", D = 3m }); Assert.That(representation, Does.Contain("__BackingField") .And.Contain(":3") .And.Contain(":\"s\"")); } }
public void Deserialization_Canonical_LikeCanonicalJsonSerialization() { using (var serializer = new DataContractJsonRoundtripSerializer <Money>(dataContractSurrogate: new DataContractSurrogate())) { var toSerialize = new Money(14.3m, CurrencyIsoCode.XTS); string canonical = serializer.Serialize(toSerialize); _proxy.Serializer = new CanonicalMoneySerializer(); Assert.That(BsonSerializer.Deserialize <Money>(canonical), Is.EqualTo(toSerialize)); } }
public void Serialize_SerializableType_AStringRepresentationOfSerializedObject() { using (var subject = new DataContractJsonRoundtripSerializer <Serializable>()) { string representation = subject.Serialize(new Serializable { S = "s", D = 3m }); Assert.That(representation, Does.Contain("S").And.Contain("D") .And.Contain(":3") .And.Contain(":\"s\"")); } }
public void Serialization_Canonical_LikeCanonicalJsonSerialization() { using (var serializer = new DataContractJsonRoundtripSerializer <Money>(dataContractSurrogate: new DataContractSurrogate())) { var toSerialize = new Money(14.3m, CurrencyIsoCode.XTS); string canonical = serializer.Serialize(toSerialize); _proxy.Serializer = new CanonicalMoneySerializer(); string actual = toSerialize.ToJson().Replace(" ", string.Empty); Assert.That(actual, Is.EqualTo(canonical)); } }
public void Serialization_OutOfTheBox_NotLikeCanonicalJsonSerialization() { _proxy.Serializer = _proxy.Default; using (var serializer = new DataContractJsonRoundtripSerializer <Money>(dataContractSurrogate: new DataContractSurrogate())) { var toSerialize = new Money(14.3m, CurrencyIsoCode.XTS); string @default = toSerialize.ToJson(); string canonical = serializer.Serialize(toSerialize); Assert.That(@default, Is.Not.EqualTo(canonical)); } }
public void CustomCanonicalConverter_WithCamelCasing_LikeCanonicalJsonSerialization() { using (var serializer = new DataContractJsonRoundtripSerializer <Money>(dataContractSurrogate: new DataContractSurrogate())) { var toSerialize = new Money(14.3m, CurrencyIsoCode.XTS); string canonical = serializer.Serialize(toSerialize); using (new ConfigScope(CanonicalMoneySerializer.Serialize, JsConfig.With(emitCamelCaseNames: true))) { string actual = JsonSerializer.SerializeToString(toSerialize); Assert.That(actual, Is.EqualTo(canonical)); } } }
public void Deserialize_AfterSerializingSerializableType_InitialObject() { using (var subject = new DataContractJsonRoundtripSerializer<Serializable>()) { var serialized = new Serializable { S = "s", D = 3m }; subject.Serialize(serialized); Serializable deserialized = subject.Deserialize(); Assert.That(deserialized, Is.Not.SameAs(serialized) .And.Property("S").EqualTo("s") .And.Property("D").EqualTo(3m)); } }
public void CustomCanonicalConverter_WithCamelCaseContract_LikeCanonicalJsonSerialization() { using (var serializer = new DataContractJsonRoundtripSerializer <Money>(dataContractSurrogate: new DataContractSurrogate())) { var toSerialize = new Money(14.3m, CurrencyIsoCode.XTS); string canonical = serializer.Serialize(toSerialize); var settings = new JsonSerializerSettings { ContractResolver = new CamelCasePropertyNamesContractResolver(), Converters = new[] { new CanonicalMoneyConverter() } }; Assert.That(JsonConvert.DeserializeObject <Money>(canonical, settings), Is.EqualTo(toSerialize)); } }
public void Deserialize_AfterSerializingSerializableType_InitialObject() { using (var subject = new DataContractJsonRoundtripSerializer <Serializable>()) { var serialized = new Serializable { S = "s", D = 3m }; subject.Serialize(serialized); Serializable deserialized = subject.Deserialize(); Assert.That(deserialized, Is.Not.SameAs(serialized) .And.Property("S").EqualTo("s") .And.Property("D").EqualTo(3m)); } }
public void Serialization_Canonical_SortOfLikeCanonicalJsonSerialization() { using (var serializer = new DataContractJsonRoundtripSerializer <Money>(dataContractSurrogate: new DataContractSurrogate())) { var toSerialize = new Money(14.3m, CurrencyIsoCode.XTS); string canonical = serializer.Serialize(toSerialize); _proxy.Serializer = new CanonicalMoneySerializer(); string actual = toSerialize.ToJson() // spacing .Replace(" ", string.Empty) // non-numerical figure representation .Replace("NumberDecimal(\"", string.Empty) .Replace("\")", string.Empty); Assert.That(actual, Is.EqualTo(canonical)); } }