public async Task MaintenanceBooking() { //Init var classroomRepo = new TestClassroomRepository(); var userRepo = new TestUserRepository(); var bookingRepo = new TestBookingRepository(); var managementService = new ManagementService(); var bookingService = new BookingService(bookingRepo, classroomRepo); var notifier = new TestNotifier(); //Given var user = TestUserRepository.GenerateUser(); var booking = new Booking { Classroom = "H.1.110", Week = 25, WeekDay = 2, StartBlock = 1, EndBlock = 10, Type = BookingType.Maintenance, Owner = user.UserId, }; //When var actualBookingResult = await managementService.MaintenanceBooking(classroomRepo, bookingRepo, userRepo, bookingService, booking, user.UserId, notifier); //Then Assert.AreEqual(BookingAvailability.Success, actualBookingResult); }
public async Task MaintenanceBookingWithRealBlocking() { //Init var classroomRepo = new TestClassroomRepository(); var userRepo = new TestUserRepository(); var bookingRepo = new TestBookingRepository(); var managementService = new ManagementService(); var bookingService = new BookingService(bookingRepo, classroomRepo); var notifier = new TestNotifier(); //Given var user = TestUserRepository.GenerateUser(); var user2 = TestUserRepository.GenerateUser("TESTUSER2", TimeTableRole.Management); userRepo.Users.Add(user); userRepo.Users.Add(user2); var bookingBlocking = new Booking { Classroom = "H.1.110", Week = 25, WeekDay = 2, StartBlock = 2, EndBlock = 4, Type = 0, Owner = user2.UserId, }; bookingRepo.Bookings.Add(bookingBlocking); //When var booking = new Booking { Classroom = "H.1.110", Week = 25, WeekDay = 2, StartBlock = 1, EndBlock = 10, Type = BookingType.Maintenance, Owner = user.UserId, }; var actualBookingResult = await managementService.MaintenanceBooking(classroomRepo, bookingRepo, userRepo, bookingService, booking, user.UserId, notifier); //Then Assert.AreEqual(BookingAvailability.Booked, actualBookingResult); }
public void TestAvailability() { var classroomRepository = new TestClassroomRepository { //Given Courses = new List <Course> { new Course() { Week = 1, WeekDay = 1, StartBlock = 2, EndBlock = 5, Rooms = new List <Classroom>() { new Classroom { RoomId = "H.1.110" } } }, new Course() { Week = 1, WeekDay = 1, StartBlock = 7, EndBlock = 9, Rooms = new List <Classroom>() { new Classroom { RoomId = "H.1.110" } } } } }; var bookings = new List <Booking>(); var bookingRepository = new TestBookingRepository(bookings); var service = new BookingService(bookingRepository, classroomRepository); var existingLessons = classroomRepository.GetCoursesByRoomAndWeek("H.1.110", 1); //When var booking1 = GenerateBooking("H.1.110", 1, 1, 1, 1); // 1-1 out 2-5 and 7-9 -> 0 var booking2 = GenerateBooking("H.1.110", 3, 5, 1, 1); // 3-5 in 2-5 and under 7-9 -> 1 var booking3 = GenerateBooking("H.1.110", 3, 9, 1, 1); // 3-9 in 2-5 and 7-9 -> 2 var booking4 = GenerateBooking("H.1.110", 8, 10, 1, 1); // 8-11 out 2-5 and in 7-9 -> 1 //Then var availability1 = service.CourseAvailability(existingLessons, booking1); Assert.AreEqual(0, availability1.Count, "A1 failed"); var availability2 = service.CourseAvailability(existingLessons, booking2); Assert.AreEqual(1, availability2.Count, "A2 failed"); var availability3 = service.CourseAvailability(existingLessons, booking3); Assert.AreEqual(2, availability3.Count, "A3 failed"); var availability4 = service.CourseAvailability(existingLessons, booking4); Assert.AreEqual(1, availability4.Count, "A4 failed"); }