public void Restock_ShouldRestock() { // Arrange var daoMock = new Mock <IJSonDao>(); daoMock.Setup(d => d.Denominations).Returns(_standardDenoms); var denomService = new DenominationService(daoMock.Object); var newStock = new List <DenominationModel> { new DenominationModel { Denomination = 100, Count = 10 }, new DenominationModel { Denomination = 50, Count = 10 }, new DenominationModel { Denomination = 20, Count = 10 }, new DenominationModel { Denomination = 10, Count = 10 }, new DenominationModel { Denomination = 5, Count = 10 }, new DenominationModel { Denomination = 1, Count = 10 }, }; // Act var result = denomService.Restock(newStock); // Assert // Returned value. Assert.Equal(6, result.Count()); foreach (var denom in result) { Assert.Equal(20, denom.Count); } // Value from datastore. var storedDenoms = denomService.GetDenominations().ToList(); Assert.Equal(6, storedDenoms.Count()); foreach (var denom in storedDenoms) { Assert.Equal(20, denom.Count); } }
public void Restock_ShouldNotRestockNegativeCounts() { // Arrange var daoMock = new Mock <IJSonDao>(); daoMock.Setup(d => d.Denominations).Returns(_standardDenoms); // Should NOT attempt to update datastore if can't restock. daoMock.Verify(d => d.Update(It.IsAny <List <DenominationModel> >()), Times.Never); var denomService = new DenominationService(daoMock.Object); var newStock = new List <DenominationModel> { new DenominationModel { Denomination = 100, Count = -20 } }; // Act // Assert Assert.Throws <InvalidAtmOperationException>(() => denomService.Restock(newStock)); }