Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 3
0
        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());
        }
Ejemplo n.º 4
0
        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);
        }