public void AddOrdersForTableByWorker_persists_data_by_calling_save_changes_on_db_context()
        {
            var menu = new List <MenuItem>();

            menu.Add(new MenuItem()
            {
                ID          = 1,
                DisplayName = "menu item",
                Price       = 19.95,
                Kind        = MenuItemKind.MEAL
            });

            var numSaveCalls = 0;

            var mockContext = new MockDBContextFactory().WithBuiltinMenuItems(menu).WithSaveChangesCallback(() => ++ numSaveCalls).Create();

            var repository = new RestourantRepository(mockContext);

            var orders = new List <Models.SubmittedOrderItem>();

            orders.Add(new Models.SubmittedOrderItem()
            {
                MenuItemID = menu[0].ID, Quantity = 1
            });

            repository.AddOrdersForTableByWorker(orders, 1, EmployeeRole.WAITER);

            Assert.AreEqual(1, numSaveCalls);
            Assert.AreEqual(menu[0].ID, mockContext.OrdersWithMenu.First().Item.ID);
        }
        public void AddOrdersForTableByWorker_failes_when_invalid_order_id_specified()
        {
            var menu = new List <MenuItem>();

            menu.Add(new MenuItem()
            {
                ID          = 1,
                DisplayName = "menu item",
                Price       = 19.99,
                Kind        = MenuItemKind.DRINK
            });

            var mockContext = new MockDBContextFactory().WithBuiltinMenuItems(menu).Create();

            var repository = new RestourantRepository(mockContext);

            var orders = new List <Models.SubmittedOrderItem>();

            orders.Add(new Models.SubmittedOrderItem()
            {
                MenuItemID = 15, Quantity = 1
            });

            repository.AddOrdersForTableByWorker(orders, 1, EmployeeRole.WAITER);
        }