예제 #1
0
        public void CancelSingleFlight()
        {
            var wc  = new MyWC.MyWC_Accessor();
            var tm  = new MyTM.MyTM();
            var rmf = new MyRM.MyRM();
            var rmc = new MyRM.MyRM();
            var rmr = new MyRM.MyRM();

            MyWC_Accessor.TransactionManager = tm;

            rmf.SetName("flight");
            rmf.TransactionManager = tm;

            rmc.SetName("car");
            rmc.TransactionManager = tm;

            rmr.SetName("room");
            rmr.TransactionManager = tm;

            tm.Register(rmf);
            tm.Register(rmc);
            tm.Register(rmr);

            MyWC.MyWC.Flights            = tm.GetResourceMananger("flight");
            MyWC.MyWC.Cars               = tm.GetResourceMananger("car");
            MyWC.MyWC.Rooms              = tm.GetResourceMananger("room");
            MyWC.MyWC.TransactionManager = tm;

            var context = new Transaction();

            wc.AddSeats(context, "SEA-JFK", 1000, 200);
            wc.Commit(context);

            var c1 = new Customer();

            Assert.IsTrue(wc.ReserveItinerary(c1, new[] { "SEA-JFK" }, "NY", false, false));

            context = new Transaction();
            Assert.AreEqual(c1, wc.ListCustomers(context)[0]);
            Assert.IsFalse(String.IsNullOrEmpty(wc.QueryItinerary(context, c1)), "Itinerary not found");
            wc.Commit(context);

            context = new Transaction();
            Assert.AreEqual(1000 - 1, wc.QueryFlight(context, "SEA-JFK"));
            wc.Commit(context);

            wc.CancelItinerary(c1);

            context = new Transaction();
            Assert.AreEqual(1000, wc.QueryFlight(context, "SEA-JFK"));
            wc.Commit(context);
        }
예제 #2
0
        public void Reservation()
        {
            var wc  = new MyWC.MyWC_Accessor();
            var tm  = new MyTM.MyTM();
            var rmf = new MyRM.MyRM();
            var rmc = new MyRM.MyRM();
            var rmr = new MyRM.MyRM();

            MyWC_Accessor.TransactionManager = tm;

            rmf.SetName("flight");
            rmf.TransactionManager = tm;

            rmc.SetName("car");
            rmc.TransactionManager = tm;

            rmr.SetName("room");
            rmr.TransactionManager = tm;

            tm.Register(rmf);
            tm.Register(rmc);
            tm.Register(rmr);

            MyWC.MyWC.Flights            = tm.GetResourceMananger("flight");
            MyWC.MyWC.Cars               = tm.GetResourceMananger("car");
            MyWC.MyWC.Rooms              = tm.GetResourceMananger("room");
            MyWC.MyWC.TransactionManager = tm;

            var context = wc.Start();

            wc.AddSeats(context, "SEA-JFK", 3000, 300);
            wc.AddSeats(context, "JFK-STV", 3000, 300);
            wc.AddCars(context, "NY", 2000, 200);
            wc.AddRooms(context, "NY", 1000, 100);
            wc.Commit(context);

            var c1 = new Customer();
            var c2 = new Customer();

            Assert.IsTrue(wc.ReserveItinerary(c1, new[] { "SEA-JFK", "JFK-STV" }, "NY", true, true));
            Assert.IsTrue(wc.ReserveItinerary(c2, new[] { "SEA-JFK" }, "NY", true, true));

            context = wc.Start();
            Assert.AreEqual(c1, wc.ListCustomers(context)[0]);
            Assert.AreEqual(c2, wc.ListCustomers(context)[1]);
            wc.Commit(context);

            context = wc.Start();
            Assert.AreEqual(3000 - 2, wc.QueryFlight(context, "SEA-JFK"));
            Assert.AreEqual(3000 - 1, wc.QueryFlight(context, "JFK-STV"));
            Assert.AreEqual(1000 - 2, wc.QueryRoom(context, "NY"));
            wc.Commit(context);

            wc.CancelItinerary(c1);
            wc.CancelItinerary(c2);

            context = wc.Start();
            Assert.AreEqual(1000, wc.QueryRoom(context, "NY"));
            Assert.AreEqual(3000, wc.QueryFlight(context, "SEA-JFK"));
            Assert.AreEqual(3000, wc.QueryFlight(context, "JFK-STV"));
            wc.Commit(context);
        }
예제 #3
0
        public void Reservation()
        {
            var wc = new MyWC.MyWC_Accessor();
            var tm = new MyTM.MyTM();
            var rmf = new MyRM.MyRM();
            var rmc = new MyRM.MyRM();
            var rmr = new MyRM.MyRM();
            MyWC_Accessor.TransactionManager = tm;

            rmf.SetName("flight");
            rmf.TransactionManager = tm;

            rmc.SetName("car");
            rmc.TransactionManager = tm;

            rmr.SetName("room");
            rmr.TransactionManager = tm;

            tm.Register(rmf);
            tm.Register(rmc);
            tm.Register(rmr);

            MyWC.MyWC.Flights = tm.GetResourceMananger("flight");
            MyWC.MyWC.Cars = tm.GetResourceMananger("car");
            MyWC.MyWC.Rooms = tm.GetResourceMananger("room");
            MyWC.MyWC.TransactionManager = tm;

            var context = wc.Start();
            wc.AddSeats(context, "SEA-JFK", 3000, 300);
            wc.AddSeats(context, "JFK-STV", 3000, 300);
            wc.AddCars(context, "NY", 2000, 200);
            wc.AddRooms(context, "NY", 1000, 100);
            wc.Commit(context);

            var c1 = new Customer();
            var c2 = new Customer();
            Assert.IsTrue(wc.ReserveItinerary(c1, new[] {"SEA-JFK", "JFK-STV"}, "NY", true, true));
            Assert.IsTrue(wc.ReserveItinerary(c2, new[] {"SEA-JFK"}, "NY", true, true));

            context = wc.Start();
            Assert.AreEqual(c1, wc.ListCustomers(context)[0]);
            Assert.AreEqual(c2, wc.ListCustomers(context)[1]);
            wc.Commit(context);

            context = wc.Start();
            Assert.AreEqual(3000 - 2, wc.QueryFlight(context, "SEA-JFK"));
            Assert.AreEqual(3000 - 1, wc.QueryFlight(context, "JFK-STV"));
            Assert.AreEqual(1000 - 2, wc.QueryRoom(context, "NY"));
            wc.Commit(context);

            wc.CancelItinerary(c1);
            wc.CancelItinerary(c2);

            context = wc.Start();
            Assert.AreEqual(1000, wc.QueryRoom(context, "NY"));
            Assert.AreEqual(3000, wc.QueryFlight(context, "SEA-JFK"));
            Assert.AreEqual(3000, wc.QueryFlight(context, "JFK-STV"));
            wc.Commit(context);
        }
예제 #4
0
        public void CancelSingleFlight()
        {
            var wc = new MyWC.MyWC_Accessor();
            var tm = new MyTM.MyTM();
            var rmf = new MyRM.MyRM();
            var rmc = new MyRM.MyRM();
            var rmr = new MyRM.MyRM();
            MyWC_Accessor.TransactionManager = tm;

            rmf.SetName("flight");
            rmf.TransactionManager = tm;

            rmc.SetName("car");
            rmc.TransactionManager = tm;

            rmr.SetName("room");
            rmr.TransactionManager = tm;

            tm.Register(rmf);
            tm.Register(rmc);
            tm.Register(rmr);

            MyWC.MyWC.Flights = tm.GetResourceMananger("flight");
            MyWC.MyWC.Cars = tm.GetResourceMananger("car");
            MyWC.MyWC.Rooms = tm.GetResourceMananger("room");
            MyWC.MyWC.TransactionManager = tm;

            var context = new Transaction();
            wc.AddSeats(context, "SEA-JFK", 1000, 200);
            wc.Commit(context);

            var c1 = new Customer();
            Assert.IsTrue(wc.ReserveItinerary(c1, new[] { "SEA-JFK" }, "NY", false, false));

            context = new Transaction();
            Assert.AreEqual(c1, wc.ListCustomers(context)[0]);
            Assert.IsFalse(String.IsNullOrEmpty(wc.QueryItinerary(context, c1)), "Itinerary not found");
            wc.Commit(context);

            context = new Transaction();
            Assert.AreEqual(1000 - 1, wc.QueryFlight(context, "SEA-JFK"));
            wc.Commit(context);

            wc.CancelItinerary(c1);

            context = new Transaction();
            Assert.AreEqual(1000, wc.QueryFlight(context, "SEA-JFK"));
            wc.Commit(context);
        }