private void AddReservationNoOverlap(User user) { var server = new Server(); var room = new Room("room1", "here", 1, true, false, 1); server.database.Users.Add(user); server.database.Rooms.Add(room); server.database.SaveChanges(); var controller = new ReservationsController(server.database); controller.SetUserIdentity(user); var startdate = new DateTime(2000, 1, 1); var enddate = new DateTime(2000, 3, 1); var description = "Reservation"; var result = controller.AddReservation(server.EmailService, startdate, enddate, description, room.Id); Assert.IsType <OkObjectResult>(result); Assert.Equal((result as OkObjectResult).Value, server.database.Reservations.First().Id.ToString()); Assert.True(server.database.Participants.Where(x => x.UserID == user.Id).Where(x => x.IsOwner).Count() == 1); Assert.True(server.database.Participants.Count() == 1); Assert.True(server.database.Reservations.Where(x => x.StartDate == startdate).Where(x => x.EndDate == enddate).Where(x => x.Description == description).Where(x => x.Room == room).Count() == 1); Assert.True(server.database.Reservations.Count() == 1); }
private void ChangeReservationOverlapUnAuthorized(User actor, User owner) { var server = new Server(); var room1 = new Room("room1", "here", 1, true, false, 1); if (actor == owner) { server.database.Users.Add(actor); } else { server.database.Users.Add(actor); server.database.Users.Add(owner); } server.database.Rooms.Add(room1); server.database.SaveChanges(); var controller = new ReservationsController(server.database); controller.SetUserIdentity(owner); var startdate = new DateTime(2000, 1, 1); var enddate = new DateTime(2000, 3, 1); var description = "Reservation"; var otherstartdate = new DateTime(2001, 1, 1); var otherenddate = new DateTime(2001, 3, 1); var tempresult = controller.AddReservation(server.EmailService, startdate, enddate, description, room1.Id); Assert.IsType <OkObjectResult>(tempresult); //IF this is not true, then the addreservation does not work. controller.SetUserIdentity(actor); tempresult = controller.AddReservation(server.EmailService, otherstartdate, otherenddate, description, room1.Id); Assert.IsType <OkObjectResult>(tempresult); var reservation = server.database.Participants.Where(x => x.UserID == owner.Id).First().Reservation; var otherreservation = server.database.Participants.Where(x => x.UserID == actor.Id).First().Reservation; var newstartdate = new DateTime(2000, 2, 1); var neweneddate = new DateTime(2000, 4, 1); var result = controller.ChangeReservation(server.EmailService, otherreservation.Id, newstartdate, neweneddate, null, null, null, true); Assert.IsType <UnauthorizedResult>(result); Assert.Equal(enddate, reservation.EndDate); Assert.Equal(startdate, reservation.StartDate); Assert.Equal(otherenddate, otherreservation.EndDate); Assert.Equal(otherstartdate, otherreservation.StartDate); }
private void ChangeReservationNoOverlapUnauthorized(User actor, User owner, DateTime?newStartTime, DateTime?newEndTime, string newDescription, Room newRoom, bool Force, bool?isActive) { var server = new Server(); var room1 = new Room("room1", "here", 1, true, false, 1); if (actor == owner) { server.database.Users.Add(actor); } else { server.database.Users.Add(actor); server.database.Users.Add(owner); } server.database.Rooms.Add(room1); if (newRoom != null) { server.database.Rooms.Add(newRoom); } server.database.SaveChanges(); var controller = new ReservationsController(server.database); controller.SetUserIdentity(owner); var startdate = new DateTime(2000, 1, 1); var enddate = new DateTime(2000, 3, 1); var description = "Reservation"; var tempresult = controller.AddReservation(server.EmailService, startdate, enddate, description, room1.Id); Assert.IsType <OkObjectResult>(tempresult); //IF this is not true, then the addreservation does not work. controller.SetUserIdentity(actor); var reservation = server.database.Reservations.First(); var result = controller.ChangeReservation(server.EmailService, reservation.Id, newStartTime, newEndTime, newDescription, newRoom == null ? null : (int?)newRoom.Id, isActive, Force); Assert.IsType <UnauthorizedResult>(result); Assert.Equal(startdate, reservation.StartDate); Assert.Equal(enddate, reservation.EndDate); Assert.Equal(description, reservation.Description); Assert.Equal(room1, reservation.Room); Assert.Equal(true, reservation.Active); }
private void OverlapDifferentRooms(Role ActorRole, Role OtherOwnerRole, bool IsMutable, bool Force) { var Actor = new User(ActorRole, "a", true); var OtherOwner = new User(OtherOwnerRole, "b", true); var server = new Server(); var room1 = new Room("room", "here", 1, true, false, 1); var room2 = new Room("room", "here", 1, true, false, 1); var startdate1 = new DateTime(2000, 1, 1); var enddate1 = new DateTime(2000, 1, 3); var otherreservation = new Reservation(startdate1, enddate1, true, IsMutable, "OtherReservation", room1); server.database.Users.Add(Actor); server.database.Users.Add(OtherOwner); server.database.Rooms.Add(room1); server.database.Rooms.Add(room2); server.database.Reservations.Add(otherreservation); server.database.Participants.Add(new Participant(otherreservation, OtherOwner, true, new DateTime(2000, 1, 1))); server.database.SaveChanges(); var controller = new ReservationsController(server.database); controller.SetUserIdentity(Actor); var startdate2 = new DateTime(2000, 1, 2); var enddate2 = new DateTime(2000, 1, 4); var description = "Reservation"; var result = controller.AddReservation(server.EmailService, startdate2, enddate2, description, room2.Id, Force); Assert.IsType <OkObjectResult>(result); var madereservation = server.database.Participants.Where(x => x.UserID == Actor.Id).First().Reservation; Assert.True(otherreservation.StartDate == startdate1 && otherreservation.EndDate == enddate1); Assert.True(otherreservation.Participants.First().User == OtherOwner); Assert.True(madereservation.StartDate == startdate2 && madereservation.EndDate == enddate2); Assert.True(madereservation.Participants.First().User == Actor); }
private Tuple <Server, IActionResult> AddReservationOverlap(User Actor, User OtherOwner, bool IsMutable, bool Force) { var server = new Server(); var room = new Room("room", "here", 1, true, false, 1); var otherreservation = new Reservation(new DateTime(2000, 1, 1), new DateTime(2000, 1, 3), true, IsMutable, "OtherReservation", room); server.database.Users.Add(Actor); server.database.Users.Add(OtherOwner); server.database.Rooms.Add(room); server.database.Reservations.Add(otherreservation); server.database.Participants.Add(new Participant(otherreservation, OtherOwner, true, new DateTime(2000, 1, 1))); server.database.SaveChanges(); var controller = new ReservationsController(server.database); controller.SetUserIdentity(Actor); var startdate = new DateTime(2000, 1, 2); var enddate = new DateTime(2000, 1, 4); var description = "Reservation"; return(new Tuple <Server, IActionResult>(server, controller.AddReservation(server.EmailService, startdate, enddate, description, room.Id, Force))); }