public void GivenASingleRow_Parse_ReturnsACollectionOfListings(string address, string streetNumber, string street) { // Arrange. var content = File.ReadAllText($"Sample Data//2017-09-24-ACT-sold-address-is-to-be-replaced.csv"); content = content.Replace("<<REPLACE ADDRESS HERE>>", address); var csvTransmorgrifier = new CsvTransmorgrifier(); // Act. var result = csvTransmorgrifier.Parse(content); // Assert. result.Listings.Count.ShouldBe(1); var expectedListing = TestHelpers.FakeResidentialListing; const string agencyId = "pewpew"; expectedListing.AgencyId = agencyId; expectedListing.Title = agencyId; expectedListing.Address.StreetNumber = streetNumber; expectedListing.Address.Street = street; expectedListing.Address.DisplayAddress = expectedListing.Address.ToFormattedAddress(isPostCodeIncluded: true); result.Listings.First().Listing.AgencyId = agencyId; result.Listings.First().Listing.Title = agencyId; result.Listings.First().Listing.ShouldLookLike(expectedListing); }
public void GivenAFile_Parse_ReturnsACollectionOfListings(string fileName, int numberOfListings, bool isResidentialListing) { // Arrange. var content = File.ReadAllText($"Sample Data//{fileName}"); var csvTransmorgrifier = new CsvTransmorgrifier(); // Act. var result = csvTransmorgrifier.Parse(content); // Assert. result.Listings.Count.ShouldBe(numberOfListings); Listing expectedListing; if (isResidentialListing) { expectedListing = TestHelpers.FakeResidentialListing; } else { expectedListing = TestHelpers.FakeRentalListing; } const string agencyId = "pewpew"; expectedListing.AgencyId = agencyId; expectedListing.Title = agencyId; result.Listings.First().Listing.AgencyId = agencyId; result.Listings.First().Listing.Title = agencyId; result.Listings.First().Listing.ShouldLookLike(expectedListing); }
public void GivenAFileWithSomeMissingRowDataField_Parse_ReturnsAnError() { // Arrange. var csvTransmorgrifier = new CsvTransmorgrifier(); ParsedResult result; var data = File.ReadAllText("Sample Data//2017-09-24-ACT-rent-missing-row-data.csv"); // Act. result = csvTransmorgrifier.Parse(data); // Assert. result.Listings.Count.ShouldBe(6); // 6 rows of legit data. result.Errors.Count.ShouldBe(4); // 4 rows were missing the IMAGE field data. result.Errors.First().ExceptionMessage.ShouldNotBeNullOrWhiteSpace(); result.Errors.First().InvalidData.ShouldNotBeNullOrWhiteSpace(); }
public void GivenAFileWithAMissingHeader_Parse_ReturnsAnError() { // Arrange. var csvTransmorgrifier = new CsvTransmorgrifier(); ParsedResult result; var data = File.ReadAllText($"Sample Data//2017-09-24-ACT-rent-missing-header.csv"); // Act. result = csvTransmorgrifier.Parse(data); // Assert. result.Listings.Count.ShouldBe(0); result.Errors.Count.ShouldBe(5); // 1x Header missing error, 4x failed to parse data because of missing header. result.Errors.First().ExceptionMessage.ShouldNotBeNullOrWhiteSpace(); result.Errors.First().InvalidData.ShouldNotBeNullOrWhiteSpace(); }