public void ReadFromFile_WhenValidInput_ShouldConvertToExpando() { // Arrange var classUnderTest = CreateClassUnderTest(() => new List <List <string> > { new List <string> { "Name", "Surname" }, new List <string> { "Panos", "Anastasiadis" } }); // Act var result = classUnderTest.ParseFile(""); // Assert var expected = new SerializableExpando(); expected.Add("Name", "Panos"); expected.Add("Surname", "Anastasiadis"); result.Should().BeEquivalentTo(expected); }
private static void AddChildExpando(SerializableExpando result, string complexField, string value) { var intendedFields = complexField.Split("_"); var relativeParent = result; for (var j = 0; j < intendedFields.Length; j++) { var relativeParentFiend = intendedFields[j].Replace(" ", string.Empty); if (j == intendedFields.Length - 1) { relativeParent.Add(relativeParentFiend, value); continue; } if (relativeParent.ContainsKey(relativeParentFiend)) { relativeParent = (SerializableExpando)relativeParent[relativeParentFiend]; continue; } var parentValueObject = new SerializableExpando(); relativeParent.Add(relativeParentFiend, parentValueObject); relativeParent = parentValueObject; } }
public SerializableExpando ToExpando(List <List <string> > content) { var properties = content[0]; var values = content[1]; var result = new SerializableExpando(); for (int i = 0; i < properties.Count; i++) { var field = properties[i]; if (!field.Contains("_")) { result.Add(field, values[i]); continue; } AddChildExpando(result, field, values[i]); } return(result); }
public void ToExpando_WhenValidContent_ShouldConvertToExpando() { // Arrange var content = new List <List <string> > { new List <string> { "Name", "Surname", "Address_line1", "Address_line2" }, new List <string> { "Panos", "Anastasiadis", "90 Clarence House", "The Boulevard" } }; // Act var result = _classUnderTest.ToExpando(content); var address = new SerializableExpando(); address.Add("line1", "90 Clarence House"); address.Add("line2", "The Boulevard"); var expected = new SerializableExpando(); expected.Add("Name", "Panos"); expected.Add("Surname", "Anastasiadis"); expected.Add("Address", address); // Assert result.Should().BeEquivalentTo(expected); }
public override string PrettySerialize(SerializableExpando output) { if (output == null) { return(string.Empty); } var xmlSerializable = XmlSerializableExpando.CreateFrom(output); using var sww = new StringWriter(); XmlWriterSettings settings = new XmlWriterSettings { ConformanceLevel = ConformanceLevel.Auto }; XmlWriter writer = XmlWriter.Create(sww, settings); XmlSerializer serializer = new XmlSerializer(xmlSerializable.GetType()); serializer.Serialize(writer, xmlSerializable); return(PrintXml(sww.ToString())); }
public void PrettySerialize_WhenCalled_ShouldSerializeInputIntended() { // Arrange var address = new SerializableExpando { { "line1", "90 Clarence House" }, { "line2", "The Boulevard" } }; var output = new SerializableExpando { { "Name", "Panos" }, { "Surname", "Anastasiadis" }, { "Address", address } }; // Act var result = _classUnderTest.PrettySerialize(output); // Assert result.Should().BeEquivalentTo( "<XmlSerializableExpando>\r\n <Name type=\"System.String, System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e\">Panos</Name>\r\n <Surname type=\"System.String, System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e\">Anastasiadis</Surname>\r\n <Address type=\"FormatConverter.Convert.XmlSerializableExpando, FormatConverter, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null\">\r\n <line1 type=\"System.String, System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e\">90 Clarence House</line1>\r\n <line2 type=\"System.String, System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e\">The Boulevard</line2>\r\n </Address>\r\n</XmlSerializableExpando>"); }
public void PrettySerialize_WhenCalled_ShouldSerializeInputIntended() { // Arrange var address = new SerializableExpando { { "line1", "90 Clarence House" }, { "line2", "The Boulevard" } }; var output = new SerializableExpando { { "Name", "Panos" }, { "Surname", "Anastasiadis" }, { "Address", address } }; // Act var result = _classUnderTest.PrettySerialize(output); // Assert result.Should() .BeEquivalentTo( "{\r\n \"Name\": \"Panos\",\r\n \"Surname\": \"Anastasiadis\",\r\n \"Address\": {\r\n \"line1\": \"90 Clarence House\",\r\n \"line2\": \"The Boulevard\"\r\n }\r\n}"); }
private static string GetResultOutput(SerializableExpando reading, OutputConverterType outputType) { var jsonOutPutConverter = OutputConverterFactory.GetConverter(outputType); return(jsonOutPutConverter.PrettySerialize(reading)); }
public abstract string PrettySerialize(SerializableExpando output);
public override string PrettySerialize(SerializableExpando output) { return(output == null ? "{}" : Pretty(JsonSerializer.Serialize(output))); }