public void CanConvertString() { using var fs = File.Open(GetFileName("JsonFormattedStringString.json"), FileMode.Open, FileAccess.Read, FileShare.Read); using var document = JsonDocument.Parse(fs); var data = ModelWithBinaryData.DeserializeModelWithBinaryData(document.RootElement); Assert.AreEqual("a.value", data.A); Assert.AreEqual("1", data.Properties.ToObjectFromJson <string>()); }
public void SerailizeUsingJsonFormattedString() { var expected = File.ReadAllText(GetFileName("JsonFormattedString.json")).TrimEnd(); var payload = new ModelWithBinaryData { A = "a.value" }; payload.Properties = BinaryData.FromString(File.ReadAllText(GetFileName("Properties.json")).TrimEnd()); string actual = GetSerializedString(payload); Assert.AreEqual(expected, actual); }
public void DeserializeJsonFormattedStringWithBinaryData() { using (var fs = new FileStream(GetFileName("JsonFormattedString.json"), FileMode.Open, FileAccess.Read, FileShare.Read)) { using var document = JsonDocument.Parse(fs); var data = ModelWithBinaryData.DeserializeModelWithBinaryData(document.RootElement); Assert.AreEqual("a.value", data.A); var properties = data.Properties.ToDictionaryFromJson(); Assert.AreEqual("properties.a.value", properties["a"]); var innerProperties = properties["innerProperties"] as IDictionary <string, object>; Assert.AreEqual("properties.innerProperties.a.value", innerProperties["a"]); } }
public void SerailizeUsingStream() { var expected = File.ReadAllText(GetFileName("JsonFormattedString.json")).TrimEnd(); var payload = new ModelWithBinaryData { A = "a.value" }; using var fs = File.Open(GetFileName("Properties.json"), FileMode.Open, FileAccess.Read, FileShare.Read); payload.Properties = BinaryData.FromStream(fs); string actual = GetSerializedString(payload); //for some reason in dotnet 6 only there is a random new line after the binarydata object //to make this work in all frameworks we will just do a comparison ignoring whitespace Assert.IsTrue(CompareIgnoreWhitespace(expected, actual)); }
public void SerailizeUsingDictStringObject() { var expected = File.ReadAllText(GetFileName("JsonFormattedString.json")).TrimEnd(); var payload = new ModelWithBinaryData { A = "a.value" }; var properties = new Dictionary <string, object>(); var innerProperties = new Dictionary <string, object>(); properties.Add("a", "properties.a.value"); innerProperties.Add("a", "properties.innerProperties.a.value"); properties.Add("innerProperties", innerProperties); payload.Properties = BinaryData.FromObjectAsJson(properties); string actual = GetSerializedString(payload); Assert.AreEqual(expected, actual); }