public void UpdateOrderItem_updates_all_fields_and_calls_save_changes()
        {
            var orders = new List <OrderItem>();

            orders.Add(new OrderItem
            {
                ID        = 1,
                Delivered = false,
                Item      = null,
                Payed     = false,
                Quantity  = 1,
                Table     = 12
            });

            var numSaveCalls = 0;

            var mockContext = new MockDBContextFactory().WithBuiltinOrderItems(orders).WithSaveChangesCallback(() => ++ numSaveCalls).Create();

            var repository = new RestourantRepository(mockContext);

            repository.UpdateOrderItem(new OrderItem()
            {
                ID = 1, Delivered = true, Item = new MenuItem(), Payed = true, Quantity = 2, Table = 5
            });

            Assert.IsTrue(orders[0].Delivered);
            Assert.IsNotNull(orders[0].Item);
            Assert.IsTrue(orders[0].Payed);
            Assert.AreEqual(2, orders[0].Quantity);
            Assert.AreEqual(5, orders[0].Table);
            Assert.AreEqual(1, numSaveCalls);
        }
        public void UpdateOrderItem_fails_when_item_has_ivalid_id()
        {
            var orders = new List <OrderItem>();

            orders.Add(new OrderItem
            {
                ID        = 1,
                Delivered = false,
                Item      = null,
                Payed     = false,
                Quantity  = 1,
                Table     = 12
            });

            var mockContext = new MockDBContextFactory().WithBuiltinOrderItems(orders).Create();
            var repository  = new RestourantRepository(mockContext);

            repository.UpdateOrderItem(new OrderItem()
            {
                ID = 2
            });
        }