public void GetBookingChargesWithValidBookingExpectBookingItemsReturned() { //Arrange var bookingItemManager = new BookingItemManager(); const int BOOKING_ID = 1; var bookingItems = new List<BookingItem> { new BookingItem { Id = 1, ItemType = ItemTypeEnum.Charge }, new BookingItem { Id = 2, ItemType = ItemTypeEnum.Discount }, new BookingItem { Id = 3, ItemType = ItemTypeEnum.Breakfast } }; var bookingItemDao = MockRepository.GenerateMock<IBookingItemDao>(); bookingItemManager.BookingItemDao = bookingItemDao; bookingItemDao.Stub(b => b.GetByBooking(BOOKING_ID)).Return(bookingItems); bookingItemDao.Expect(b => b.GetConstituentsByItemId(Arg<int>.Is.Equal(1))).Return(new List<BookingConstituent>()).Repeat.Once(); bookingItemDao.Expect(b => b.GetConstituentsByItemId(Arg<int>.Is.Equal(2))).Return(new List<BookingConstituent>()).Repeat.Once(); // Act var bookingItemsReturned = bookingItemManager.GetBookingCharges(BOOKING_ID); // Assert Assert.IsNotNull(bookingItemsReturned, "BookingItems are null."); Assert.AreEqual(2, bookingItemsReturned.Count, "BookingItems returned are not correct."); foreach (var bookingItem in bookingItemsReturned) { Assert.IsTrue(bookingItem.ItemType == ItemTypeEnum.Charge || bookingItem.ItemType == ItemTypeEnum.Discount, "Booking item type returned is not correct."); } bookingItemDao.VerifyAllExpectations(); }