Ejemplo n.º 1
0
        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);
        }