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 PerformanceTestReportWithMultipleCooks() { 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 RoundRobinHandleOrder(new List<IHandleOrders>() { new Cook(queuedCashier, new FakeIngredientsStore()), new Cook(queuedCashier, new FakeIngredientsStore()), new Cook(queuedCashier, new FakeIngredientsStore()) }, "multiple cooks"), "cook"); var waiter = new Waiter(cook); var monitor = new StatsMonitor(new List<IStatisticTrigger>() { cook, queuedCashier, manager }); for (int i = 0; i < 10000; ++i) { waiter.CreateOrderWithTable(i); } Thread.Sleep(10000); int paidClients = 0; while (paidClients != 10000) { for (int i = 0; i < 10000; ++i) { bool result = cashier.PayFor(i); if (result) { paidClients++; } } } Thread.Sleep(100000); }