Beispiel #1
0
        public void BuyContiguousTickets_SequencialTest()
        {
            // Initialize our box office
            var boxOffice = new TicketBoxOffice(4, 8);

            // Purchase some random seats
            Assert.IsNotNull(boxOffice.BuyTicketAtSeat(0, 3));
            Assert.IsNotNull(boxOffice.BuyTicketAtSeat(1, 5));
            Assert.IsNotNull(boxOffice.BuyTicketAtSeat(2, 2));
            Assert.IsNotNull(boxOffice.BuyTicketAtSeat(2, 6));
            //Assert.IsNotNull(boxOffice.BuyTicketAtSeat(3, 7));

            // Verify they're sold
            Assert.IsNull(boxOffice.BuyTicketAtSeat(2, 6));

            var tickets = boxOffice.BuyContiguousTickets(1);

            Assert.IsNotNull(tickets);
            Assert.AreEqual(1, tickets.Count);

            tickets = boxOffice.BuyContiguousTickets(3);
            Assert.IsNotNull(tickets);
            Assert.AreEqual(3, tickets.Count);

            tickets = boxOffice.BuyContiguousTickets(8);
            Assert.IsNotNull(tickets);
            Assert.AreEqual(8, tickets.Count);
        }
Beispiel #2
0
        private void BuyContiguousTickets_ConcurrentTest_impl()
        {
            // Initialize our box office
            var boxOffice = new TicketBoxOffice(4, 8);

            // Purchase some random seats
            Parallel.Invoke(
                () => Assert.IsNotNull(boxOffice.BuyTicketAtSeat(0, 3)),
                () => Assert.IsNotNull(boxOffice.BuyTicketAtSeat(1, 5)),
                () => Assert.IsNotNull(boxOffice.BuyTicketAtSeat(2, 2)),
                () => Assert.IsNotNull(boxOffice.BuyTicketAtSeat(2, 6))
                );

            // Verify they're sold
            Assert.IsNull(boxOffice.BuyTicketAtSeat(2, 6));

            Parallel.Invoke(
                () => {
                var tickets = boxOffice.BuyContiguousTickets(1);
                Assert.IsNotNull(tickets);
                Assert.AreEqual(1, tickets.Count);
            },
                () => {
                var tickets = boxOffice.BuyContiguousTickets(3);
                Assert.IsNotNull(tickets);
                Assert.AreEqual(3, tickets.Count);
            },
                () => {
                var tickets = boxOffice.BuyContiguousTickets(8);
                Assert.IsNotNull(tickets);
                Assert.AreEqual(8, tickets.Count);
            }
                );
        }