Inheritance: INotifier
        public async void WhenThereAreMoreThanOneReservation_ThenAnyMessageIsSent()
        {
            var mockClient = new Mock<TwilioRestClient>(null, null);
            mockClient
                .Setup(c => c.SendMessage(
                    It.IsAny<string>(), It.IsAny<string>(), It.IsAny<string>()));
            var mockRepository = new Mock<IReservationsRepository>();
            mockRepository
                .Setup(r => r.FindPendingReservationsAsync())
                .ReturnsAsync(new List<Reservation>
                {
                    new Reservation(),
                    new Reservation()
                });

            var notifier = new Notifier(
                mockClient.Object, mockRepository.Object);

            await notifier.SendNotificationAsync(new Reservation());

            mockClient.Verify(c => c.SendMessage(
                It.IsAny<string>(), It.IsAny<string>(), It.IsAny<string>()), Times.Never);
        }
        public async void WhenThereAreLessThanOneReservation_ThenAMessageIsSent()
        {
            var mockClient = new Mock<TwilioRestClient>(null, null);
            mockClient
                .Setup(c => c.SendMessage(
                    It.IsAny<string>(), It.IsAny<string>(), It.IsAny<string>()));
            var mockRepository = new Mock<IReservationsRepository>();
            mockRepository
                .Setup(r => r.FindPendingReservationsAsync())
                .ReturnsAsync(new List<Reservation>());

            var notifier = new Notifier(
                mockClient.Object, mockRepository.Object);

            const string hostPhoneNumber = "host-phone-number";
            await notifier.SendNotificationAsync(new Reservation
            {
                VacationProperty = new VacationProperty(),
                PhoneNumber = hostPhoneNumber
            });

            mockClient.Verify(c => c.SendMessage(
                It.IsAny<string>(), hostPhoneNumber, It.IsAny<string>()), Times.Once);
        }