public async Task TestThat_DisplayCoffeeShops_When_CoffeeShopDistancesIsEmpty_Throws_ArgumentOutOfRangeException()
        {
            // Arrange
            var coffeeShopsDisplayService = new CoffeeShopsDisplayService(_displayFacadeMock.Object);

            // Act
            async Task Act() => await coffeeShopsDisplayService.DisplayCoffeeShopDistances(MockObjects.EmptyShopDistances);

            // Assert
            await Assert.ThrowsAsync <ArgumentOutOfRangeException>(Act);
        }
        public async Task TestThat_DisplayCoffeeShops_When_DistancesListIsValid_Calls_RepositoryOutputMethod_Once()
        {
            // Arrange
            var mockDistances = MockObjects.SelectedShopDistances.ToList();

            var coffeeShopsDisplayService = new CoffeeShopsDisplayService(_displayFacadeMock.Object);

            // Act
            await coffeeShopsDisplayService.DisplayCoffeeShopDistances(mockDistances);

            // Assert
            _coffeeShopDistanceRepositoryMock.Verify(x => x.SetCoffeeShopDistances(mockDistances), Times.Once);
        }
        public async Task TestThat_DisplayCoffeeShops_When_RepositoryThrowsException_Throws_SameException()
        {
            // Arrange
            var mockException = MockObjects.GenericException;

            _coffeeShopDistanceRepositoryMock
            .Setup(x => x.SetCoffeeShopDistances(It.IsAny <IEnumerable <Distance> >()))
            .Throws(mockException);

            var coffeeShopsDisplayService = new CoffeeShopsDisplayService(_displayFacadeMock.Object);

            // Act
            async Task Act() => await coffeeShopsDisplayService.DisplayCoffeeShopDistances(MockObjects.SelectedShopDistances);

            // Assert
            var exception = await Assert.ThrowsAnyAsync <Exception>(Act);

            Assert.Equal(mockException, exception);
        }