public void DispatcherHandlerTest() { var dispatcher = new Dispatcher(); var reportingStore = new ReportingStore(); var assistantManagerDispatcher = new DispatcherHandleOrder(dispatcher, "assistant"); var cashierDispatcher = new DispatcherHandleOrder(dispatcher, "cashier"); var cashier = new Cashier(cashierDispatcher, new FakeOrdersStore()); var cookDispatcher = new DispatcherHandleOrder(dispatcher, "cook"); var waiterDispatcher = new DispatcherHandleOrder(dispatcher, "waiter"); var waiter = new Waiter(waiterDispatcher); dispatcher.Subscribe("waiter", new QueuedHandleOrders(new Cook(cookDispatcher, new FakeIngredientsStore()), "cook")); dispatcher.Subscribe("cook", cashier); dispatcher.Subscribe("cashier", new QueuedHandleOrders(new AssistantManager(assistantManagerDispatcher, new FakePriceTable()), "assistant")); dispatcher.Subscribe("assistant", new QueuedHandleOrders(new Manger(reportingStore), "manager")); waiter.CreateOrder(); Thread.Sleep(100); cashier.PayFor(123); Thread.Sleep(1000); Assert.That(reportingStore.StoredOrders.Count, Is.EqualTo(1)); }
public void Should_Be_Able_To_Create_Order() { var handler = new FakeOrdersHandler(); var myWaiter = new Waiter(handler); myWaiter.CreateOrder(); Assert.That(handler.OrdersToBeHandled.Count, Is.EqualTo(1)); }
public void IntegrationTest() { var reportingStore = new ReportingStore(); var manager = new QueuedHandleOrders(new Manger(reportingStore), "manager"); var cashier = new Cashier(manager, new FakeOrdersStore()); var queuedCashier = new QueuedHandleOrders(cashier, "cashier"); var cook = new QueuedHandleOrders(new Cook(queuedCashier, new FakeIngredientsStore()), "cook"); var waiter = new Waiter(cook); waiter.CreateOrder(); Thread.Sleep(3000); cashier.PayFor(123); Thread.Sleep(10000); Assert.That(reportingStore.StoredOrders.Count, Is.EqualTo(1)); }
public void MidgetMonitorTest() { var dispatcher = new Dispatcher(); var reportingStore = new ReportingStore(); var notifyDispatcher = new NotifyDispatcher(dispatcher); IScheduler theScheduler = new NeverTimesOut(); var cashier = new Cashier(notifyDispatcher, new FakeOrdersStore()); var midgetHouse = new MidgetHouse(dispatcher, theScheduler); var waiter = new Waiter(midgetHouse); dispatcher.Subscribe("cook", new QueuedHandleOrders(new Cook(notifyDispatcher, new FakeIngredientsStore()), "cook")); dispatcher.Subscribe("cashier", cashier); dispatcher.Subscribe("assistant", new QueuedHandleOrders(new AssistantManager(notifyDispatcher, new FakePriceTable()), "assistant")); dispatcher.Subscribe("manger", new QueuedHandleOrders(new Manger(reportingStore), "manager")); dispatcher.SubscribeMidgetInfo("midgetObserver", new MidgetObserver()); waiter.CreateOrder(); Thread.Sleep(2000); cashier.PayFor(123); Thread.Sleep(1000); Assert.That(reportingStore.StoredOrders.Count, Is.EqualTo(1)); }
public void ObserverNotifyTest() { var dispatcher = new Dispatcher(); var reportingStore = new ReportingStore(); var assistantManagerDispatcher = new DispatcherHandleOrder(dispatcher, "assistant"); var cashierDispatcher = new DispatcherHandleOrder(dispatcher, "cashier"); var cashier = new Cashier(cashierDispatcher, new FakeOrdersStore()); var cookDispatcher = new DispatcherHandleOrder(dispatcher, "cook"); var waiterDispatcher = new DispatcherHandleOrder(dispatcher, "waiter"); var waiter = new Waiter(waiterDispatcher); dispatcher.Subscribe("waiter", new QueuedHandleOrders(new Cook(cookDispatcher, new FakeIngredientsStore()), "cook")); dispatcher.Subscribe("cook", cashier); dispatcher.Subscribe("cashier", new QueuedHandleOrders(new AssistantManager(assistantManagerDispatcher, new FakePriceTable()), "assistant")); dispatcher.Subscribe("assistant", new QueuedHandleOrders(new Manger(reportingStore), "manager")); dispatcher.SubscribeByCorrelationId("#1", new DelegateObserver((order) => Console.WriteLine("Document changed: {0}", order.TotalTax))); waiter.CreateOrder(); Thread.Sleep(300); cashier.PayFor(123); Thread.Sleep(2000); Assert.That(reportingStore.StoredOrders.Count, Is.EqualTo(1)); }