public void PushOutput_WhenCalled_OutputsCorrectJson() { // Arrange ; var expectedJson = "[\r\n {\r\n \"name\": \"Dave\",\r\n \"address\": {\r\n \"line1\": \"street\",\r\n \"line2\": \"town\"\r\n }\r\n },\r\n {\r\n \"name\": \"Andy\",\r\n \"address\": {\r\n \"line1\": \"someRoad\",\r\n \"line2\": \"someTown\"\r\n }\r\n }\r\n]"; var fileStreamProvider = new FakeFileStreamProvider(""); var outputLocation = "someOutputLocation"; var jsonConverter = new JsonConverter(fileStreamProvider); var data = new List <DataRecord>(); var record = new DataRecord(); record.Items.Add(new SingleItem() { Name = "name", Value = "Dave" }); record.Items.Add(new ItemGroup() { Name = "address", Items = new List <RecordItem>() { new SingleItem() { Name = "line1", Value = "street" }, new SingleItem() { Name = "line2", Value = "town" } } }); var record2 = new DataRecord(); record2.Items.Add(new SingleItem() { Name = "name", Value = "Andy" }); record2.Items.Add(new ItemGroup() { Name = "address", Items = new List <RecordItem>() { new SingleItem() { Name = "line1", Value = "someRoad" }, new SingleItem() { Name = "line2", Value = "someTown" } } }); data.Add(record); data.Add(record2); // Act var result = jsonConverter.PushOutput(data, outputLocation); var convertedData = fileStreamProvider.WrittenData; // Assert Assert.That(convertedData, Is.EqualTo(expectedJson)); }
public void PushOutput_WhenCalled_OutputsCorrectCSV() { // Arrange var expectedCsv = "name,address_line1,address_line2\r\nDave,street,town\r\nAndy,someRoad,someTown\r\n"; var fileStreamProvider = new FakeFileStreamProvider(""); var outputLocation = "someOutputLocation"; var csvConverter = new CsvConverter(fileStreamProvider); var data = new List <DataRecord>(); var record = new DataRecord(); record.Items.Add(new SingleItem() { Name = "name", Value = "Dave" }); record.Items.Add(new ItemGroup() { Name = "address", Items = new List <RecordItem>() { new SingleItem() { Name = "line1", Value = "street" }, new SingleItem() { Name = "line2", Value = "town" } } }); var record2 = new DataRecord(); record2.Items.Add(new SingleItem() { Name = "name", Value = "Andy" }); record2.Items.Add(new ItemGroup() { Name = "address", Items = new List <RecordItem>() { new SingleItem() { Name = "line1", Value = "someRoad" }, new SingleItem() { Name = "line2", Value = "someTown" } } }); data.Add(record); data.Add(record2); // Act var result = csvConverter.PushOutput(data, outputLocation); var convertedData = fileStreamProvider.WrittenData; // Assert Assert.That(convertedData, Is.EqualTo(expectedCsv)); }
public void GetInput_LocationIsEmpty_ReturnsFailedResult() { // Arrange var inputLocation = ""; var fileStreamProvider = new FakeFileStreamProvider(""); var csvConverter = new CsvConverter(fileStreamProvider); // Act var result = csvConverter.GetInput(inputLocation, out IEnumerable <DataRecord> outputData); // Assert Assert.That(result, Is.False); }
public void SupportedType_ReturnsCorrectType() { // Arrange var expectedType = "json"; var fileStreamProvider = new FakeFileStreamProvider(""); var jsonConverter = new JsonConverter(fileStreamProvider); // Act var result = jsonConverter.SupportedType; // Assert Assert.That(result, Is.EqualTo(expectedType)); }
public void GetInput_CsvParsedFromLocation_ReturnsParsedData() { // Arrange var inputLocation = "testDataLocation"; var csvData = new string($"name,address_line1,address_line2{Environment.NewLine}Dave,street,town"); var fileStreamProvider = new FakeFileStreamProvider(csvData); var csvConverter = new CsvConverter(fileStreamProvider); // Act var result = csvConverter.GetInput(inputLocation, out IEnumerable <DataRecord> outputData); var record = outputData.First(); // Assert Assert.That(record.Items, Has.Exactly(2).Items); Assert.That(record.Items[0].Name, Is.EqualTo("name")); Assert.That((record.Items[0] as SingleItem).Value, Is.EqualTo("Dave")); Assert.That(record.Items[1].Name, Is.EqualTo("address")); Assert.That((record.Items[1] as ItemGroup).Items, Has.Exactly(2).Items); Assert.That((record.Items[1] as ItemGroup).Items[0].Name, Is.EqualTo("line1")); Assert.That(((record.Items[1] as ItemGroup).Items[0] as SingleItem).Value, Is.EqualTo("street")); Assert.That((record.Items[1] as ItemGroup).Items[1].Name, Is.EqualTo("line2")); Assert.That(((record.Items[1] as ItemGroup).Items[1] as SingleItem).Value, Is.EqualTo("town")); }
public void GetInput_JsonWithMultipleRecordsParsedFromLocation_ReturnsParsedData() { // Arrange var inputLocation = "testDataLocation"; var jsonData = new string("[\r\n {\r\n \"name\": \"Dave\",\r\n \"address\": {\r\n \"line1\": \"street\",\r\n \"line2\": \"town\"\r\n }\r\n },\r\n {\r\n \"name\": \"Andy\",\r\n \"address\": {\r\n \"line1\": \"someRoad\",\r\n \"line2\": \"someTown\"\r\n }\r\n }\r\n]"); var fileStreamProvider = new FakeFileStreamProvider(jsonData); var jsonConverter = new JsonConverter(fileStreamProvider); // Act var result = jsonConverter.GetInput(inputLocation, out IEnumerable <DataRecord> outputData); var record = outputData.ToList()[1]; // Assert Assert.That(record.Items, Has.Exactly(2).Items); Assert.That(record.Items[0].Name, Is.EqualTo("name")); Assert.That((record.Items[0] as SingleItem).Value, Is.EqualTo("Andy")); Assert.That(record.Items[1].Name, Is.EqualTo("address")); Assert.That((record.Items[1] as ItemGroup).Items, Has.Exactly(2).Items); Assert.That((record.Items[1] as ItemGroup).Items[0].Name, Is.EqualTo("line1")); Assert.That(((record.Items[1] as ItemGroup).Items[0] as SingleItem).Value, Is.EqualTo("someRoad")); Assert.That((record.Items[1] as ItemGroup).Items[1].Name, Is.EqualTo("line2")); Assert.That(((record.Items[1] as ItemGroup).Items[1] as SingleItem).Value, Is.EqualTo("someTown")); }