public void PurchaseServiceBuyProductWorksCorrectly() { //These could be mocked out, but since they are simple in memory //instaces there is no point. ISessionService sessionService = new InMemorySessionService(); IItemRepository itemRepository = new ItemRepository(); IPurchaseService purchaseService = new PurchaseService(itemRepository, sessionService); Guid sessionId = Guid.NewGuid(); double initialTallyValue = 2; sessionService.StoreCurrentTally(sessionId, initialTallyValue); purchaseService.BuyProduct(sessionId, 1); Assert.True(sessionService.GetStoredTally(sessionId) == (initialTallyValue - itemRepository.GetItem(1).Price)); }