public async Task TestThat_ReadCoffeeShopLocations_When_ProviderThrowsException_Throws_SameException() { // Arrange var mockException = MockObjects.GenericException; var csvContentProviderMock = new Mock <ICsvContentProvider>(); csvContentProviderMock.Setup(x => x.GetCsvLines()) .Throws(mockException); var csvContentParserMock = new Mock <ICsvLineParser>(); csvContentParserMock .Setup(x => x.GetCoffeeShopLocation(It.IsAny <string>())) .ReturnsAsync(MockObjects.ShopLocation1); var dataReader = new CsvCoffeeShopLocationDataReader(csvContentProviderMock.Object, csvContentParserMock.Object); // Act async Task Act() => await dataReader.ReadCoffeeShopLocations(); // Assert var exception = await Assert.ThrowsAnyAsync <Exception>(Act); Assert.Equal(mockException, exception); }
public async Task TestThat_ReadCoffeeShopLocations_When_ParserThrowsDataValidationException_Throws_DataValidationExceptionWithExpectedMessage() { // Arrange var csvContentProviderMock = new Mock <ICsvContentProvider>(); csvContentProviderMock .Setup(x => x.GetCsvLines()) .ReturnsAsync(MockObjects.ValidCsvContent); var csvContentParserMock = new Mock <ICsvLineParser>(); csvContentParserMock .Setup(x => x.GetCoffeeShopLocation(It.IsAny <string>())) .Throws(new DataValidationException(MockValues.CsvDataValidationExceptionMessage)); var dataReader = new CsvCoffeeShopLocationDataReader(csvContentProviderMock.Object, csvContentParserMock.Object); // Act async Task Act() => await dataReader.ReadCoffeeShopLocations(); // Assert var exception = await Assert.ThrowsAsync <DataValidationException>(Act); Assert.Equal(MockValues.CsvDataValidationExceptionMessage, exception.Message); }
public async Task TestThat_ReadCoffeeShopLocations_When_ParserAndProviderDoNotThrowExceptions_Returns_LocationWithExpectedValues() { // Arrange var csvContentMock = MockObjects.ValidCsvContent.ToList(); var csvContentProviderMock = new Mock <ICsvContentProvider>(); csvContentProviderMock .Setup(x => x.GetCsvLines()) .ReturnsAsync(csvContentMock); var csvContentParserMock = new Mock <ICsvLineParser>(); csvContentParserMock .Setup(x => x.GetCoffeeShopLocation(It.IsAny <string>())) .ReturnsAsync(MockObjects.ShopLocation1); var dataReader = new CsvCoffeeShopLocationDataReader(csvContentProviderMock.Object, csvContentParserMock.Object); // Act var locations = await dataReader.ReadCoffeeShopLocations(); // Assert Assert.Equal(csvContentMock.Count, locations.Count()); }
public async Task TestThat_ReadCoffeeShopLocations_When_ParserAndProviderDoNotThrowExceptions_Returns_NotNullLocation() { // Arrange var csvContentProviderMock = new Mock <ICsvContentProvider>(); csvContentProviderMock .Setup(x => x.GetCsvLines()) .ReturnsAsync(MockObjects.ValidCsvContent); var csvContentParserMock = new Mock <ICsvLineParser>(); csvContentParserMock .Setup(x => x.GetCoffeeShopLocation(It.IsAny <string>())) .ReturnsAsync(MockObjects.ShopLocation1); var dataReader = new CsvCoffeeShopLocationDataReader(csvContentProviderMock.Object, csvContentParserMock.Object); // Act var locations = await dataReader.ReadCoffeeShopLocations(); // Assert Assert.NotNull(locations); }