Beispiel #1
0
        public void TwoConsecutiveBookingsNotOverlapped()
        {
            var r = new Room
            {
                Id      = 100,
                MaxSeat = 10,
                Name    = "Room 100"
            };
            var b1 = new Booking
            {
                Id        = 55,
                From      = DateTime.Parse("9:00"),
                To        = DateTime.Parse("10:00"),
                Attendees = 10,
                Name      = "Weekly Meetup",
                By        = "Someone"
            };
            var b2 = new Booking
            {
                Id        = 56,
                From      = DateTime.Parse("10:00"),
                To        = DateTime.Parse("11:00"),
                Attendees = 10,
                Name      = "Weekly Meetup",
                By        = "Another one"
            };

            r.AddBooking(b1);
            r.AddBooking(b2);

            Assert.Equal(2, r.Bookings.Count);
        }
        public void Setup()
        {
            room = new Room(10, "SingleRoom")
            {
            };

            room.AddBooking(new DateTime(2020, 04, 01), new DateTime(2020, 04, 05));
            room.AddBooking(new DateTime(2020, 04, 07), new DateTime(2020, 04, 10));
        }
Beispiel #3
0
        public void Setup()
        {
            room = new Room(1, 10, "SingleBed");
            room.AddBooking(
                new DateTime(2020, 04, 15), new DateTime(2020, 04, 20)
                );

            room.AddBooking(
                new DateTime(2020, 04, 23), new DateTime(2020, 04, 27)
                );
        }
Beispiel #4
0
        public void BookingOnDifferentDateIsNotAllowed()
        {
            var r = new Room
            {
                Id      = 100,
                MaxSeat = 10,
                Name    = "Room 100"
            };
            var dt1 = DateTime.Now;
            var dt2 = dt1.AddDays(1);
            var b   = new Booking
            {
                Id        = 55,
                From      = dt1,
                To        = dt2,
                Attendees = 10,
                Name      = "Weekly Meetup",
                By        = "Someone"
            };

            var ex = Assert.Throws <Exception>(() =>
            {
                r.AddBooking(b);
            });

            Assert.Contains("Booking failed",
                            ex.Message);
            Assert.Equal(0, r.Bookings.Count);
        }
Beispiel #5
0
 public void BookClosedMeeting()
 {
     if (this.CurState == State.Closed)
     {
         Room bestRoom = this.Slots[0].Location.GetBestFittingRoomForCapacity(this.Slots[0].Date, (uint)this.Users.Count);
         bestRoom.AddBooking(this.Slots[0].Date);
     }
 }
Beispiel #6
0
        public void BookingCannotBeOverlapped()
        {
            var r = new Room
            {
                Id      = 100,
                MaxSeat = 10,
                Name    = "Room 100"
            };
            var b1 = new Booking
            {
                Id        = 55,
                From      = DateTime.Parse("9:00"),
                To        = DateTime.Parse("12:00"),
                Attendees = 10,
                Name      = "Weekly Meetup",
                By        = "Someone"
            };
            var b2 = new Booking
            {
                Id        = 56,
                From      = DateTime.Parse("11:00"),
                To        = DateTime.Parse("15:00"),
                Attendees = 10,
                Name      = "Weekly Meetup",
                By        = "Another one"
            };

            r.AddBooking(b1);

            var ex = Assert.Throws <Exception>(() => {
                r.AddBooking(b2);
            });

            Assert.Contains("Booking failed",
                            ex.Message);
            Assert.Equal(1, r.Bookings.Count);
        }
Beispiel #7
0
            public void Close(Slot chosenSlot, uint numUsers)
            {
                this.CurState = State.Closed;

                Room bestRoom = chosenSlot.Location.GetBestFittingRoomForCapacity(chosenSlot.Date, numUsers);

                bestRoom.AddBooking(chosenSlot.Date);

                //FIXME Use this when we are sending the Vector clocks!!!
                Users.Sort();

                this.UsersNotJoined = Users.GetRange((int)numUsers, Users.Count - (int)numUsers);
                Users = Users.GetRange(0, (int)numUsers);

                this.Slots = new List <Slot> {
                    new ClosedSlot(chosenSlot, bestRoom, Users)
                };
            }
Beispiel #8
0
            public void BasicUsage()
            {
                var r = new Room
                {
                    Id      = 100,
                    MaxSeat = 10,
                    Name    = "Room 100"
                };
                var b = new Booking
                {
                    Id        = 55,
                    From      = DateTime.Now,
                    To        = DateTime.Now.AddHours(2.5),
                    Attendees = 10,
                    Name      = "Weekly Meetup",
                    By        = "Someone"
                };

                var success = r.AddBooking(b);

                Assert.True(success);
                Assert.Equal(1, r.Bookings.Count);
                Assert.Same(r, b.Room);
            }