Exemplo n.º 1
0
        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));
        }
Exemplo n.º 2
0
        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));
        }
Exemplo n.º 3
0
        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);
        }
Exemplo n.º 4
0
        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));
        }
Exemplo n.º 5
0
        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"));
        }
Exemplo n.º 6
0
        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"));
        }