Example #1
0
        public async Task Given_UrgentDeliveryTime_WhenDeliveryTimeIsClosed_ShouldReturnSingleUnavailableItem()
        {
            var currentTime = new DateTime(2020, 4, 17, 19, 00, 0);
            var expectedDto = CreateDeliveryTimeDto(DeliveryType.Urgent, _expectedStart, _expectedFinish, false);
            var sut         = new DeliveryTimeService(new DeliveryTimeInMemoryRepository());
            await sut.Add(CreateUrgentDeliveryTime("14:00", "18:00"));

            // Act
            var result = await sut.Get(currentTime, 0);

            // Assert
            result.Should().ContainSingle();
            result.Single().Should().BeEquivalentTo(expectedDto);
        }
Example #2
0
        public async Task Given_RegularDeliveryTime_WhenDeliveryTimeIsOpen_ShouldReturnSingleAvailableItem()
        {
            // Arrange
            var currentTime = new DateTime(2020, 4, 17, 8, 0, 0);
            var expectedDto = CreateDeliveryTimeDto(DeliveryType.Regular, _expectedStart, _expectedFinish, true);
            var sut         = new DeliveryTimeService(new DeliveryTimeInMemoryRepository());
            await sut.Add(CreateRegularDeliveryTime("14:00", "18:00", 0));

            // Act
            var result = await sut.Get(currentTime, 0);

            // Assert
            result.Should().ContainSingle();
            result.Single().Should().BeEquivalentTo(expectedDto);
        }
        public async Task Given_RegularDeliveryTime_WhenDeliveryTimeIsOpen_ShouldReturnSingleAvailableItem()
        {
            // Arrange
            var currentTime         = new DateTime(2020, 4, 18, 15, 0, 0);
            var actualDeliveryTimes = CreateDeliveryTime();

            var repository = new DeliveryTimeInMemoryRepository();

            foreach (var actualDeliveryTime in actualDeliveryTimes)
            {
                await repository.Add(actualDeliveryTime);
            }

            var sut = new DeliveryTimeService(repository);

            // Act
            var result = await sut.Get(currentTime, 3);

            // Assert
            var expectedDeliveryTimesDto = CreateExpectedDeliveryTimeDto();

            result.Should().BeEquivalentTo(expectedDeliveryTimesDto);
        }