public void _04_AddOrder_ShouldAddAnOrderToTheOrdersCollectionAndInvokeTheOrderCreatedEvent() { AssertHasOrdersPropertyWithBackingField(); AssertHasOrderCreatedEvent(); //Arrange bool eventRaised = false; int numberOfBurgers = Random.Next(1, 11); _eventInfo.AddEventHandler(_frontDesk, new OrderCreatedHandler((sender, args) => { eventRaised = true; Assert.That(args.Order.NumberOfBurgers, Is.EqualTo(numberOfBurgers), "The 'NumberOfBurgers' of the added order is not correct."); })); //Act _frontDesk.AddOrder(numberOfBurgers); //Assert var orders = (ReadOnlyObservableCollection <IOrder>)_ordersProperty.GetValue(_frontDesk); Assert.That(orders.Count, Is.EqualTo(1), "The added order cannot be found in the 'Orders' property."); Assert.That(orders.First().NumberOfBurgers, Is.EqualTo(numberOfBurgers), "The 'NumberOfBurgers' of the added order is not correct."); Assert.That(eventRaised, Is.True, "The 'OrderCreated' event was not invoked."); }
public void ShouldListenForCreatedOrdersAndAddThemInAQueue() { Queue <IOrder> queue = GetAndAssertQueueFieldValue(); _frontDesk.AddOrder(1); Assert.That(queue.Count, Is.EqualTo(1), "When the 'AddOrder' method of the 'Frontdesk' is invoked, the queue should contain exactly one order."); }