Exemplo n.º 1
0
        public async Task BarberHours_IsAvailableAsync_DaysOfWeekExpected(DayOfWeek dayOfWeek, int hour, bool expectedAvailability)
        {
            IHoursRepository repository  = new MemoryHoursRepository();
            BarberHours      barberHours = new BarberHours(repository);
            var            date          = DateTime.Now.This(dayOfWeek).Date;
            var            inputDateTime = new DateTime(date.Year, date.Month, date.Day, hour, 0, 0);
            Mock <IBarber> barberMock    = new Mock <IBarber>();

            barberMock.Setup(s => s.Type).Returns(HoursType.Barber);
            bool actualAvailability = await barberHours.IsAvailableAsync(barberMock.Object, inputDateTime);

            Assert.Equal(expectedAvailability, actualAvailability);
        }
Exemplo n.º 2
0
        public async Task BarberHours_LoadAsync_DaysOfWeekExpectedHours(DayOfWeek dayOfWeek, int expectedOpeningHour, int expectedClosingHour)
        {
            IHoursRepository repository     = new MemoryHoursRepository();
            BarberHours      barberHours    = new BarberHours(repository);
            var            expectedDateTime = DateTime.Now.This(dayOfWeek);
            Mock <IBarber> barberMock       = new Mock <IBarber>();

            barberMock.Setup(s => s.Type).Returns(HoursType.Barber);
            await barberHours.LoadAsync(barberMock.Object, expectedDateTime);

            Assert.Equal(expectedOpeningHour, barberHours.OpeningHour);
            Assert.Equal(expectedClosingHour, barberHours.ClosingHour);
            Assert.Equal(expectedDateTime.Date, barberHours.OpeningDateTime().Date);
            Assert.Equal(expectedDateTime.Date, barberHours.ClosingDateTime().Date);
        }
Exemplo n.º 3
0
        public async Task AppointmentRequest_IsAvaiableNowJessica_True()
        {
            var  hoursRepository       = new MemoryHoursRepository();
            var  appointmentRepository = new MemoryAppointmentRepository();
            var  barbersRepository     = new MemoryBarbersRepository(appointmentRepository, hoursRepository);
            var  storeHours            = new ShopHours(hoursRepository);
            var  barberHours           = new BarberHours(hoursRepository);
            Shop shop = new Shop(appointmentRepository, storeHours, barbersRepository);
            AppointmentRequest request       = new AppointmentRequest(shop);
            Barber             initialBarber = new Barber(shop, appointmentRepository, barberHours);

            request.StartDateTime     = DateTime.Now;
            initialBarber.DisplayName = "Jessica";
            request.RequestedBarber   = initialBarber;
            request.Service           = new BarberService()
            {
                DisplayName = "Short Hair Cut", Duration = TimeSpan.FromMinutes(30)
            };

            AppointmentAvailabilityResponse response = await request.IsAvailableAsync();

            Assert.True(response.IsAvailable, $"{initialBarber.DisplayName} should be availabe on {request.StartDateTime}");
        }