public async Task HandleAsync_GivenMessageContainingUpdatedAmounts_AmountsAreUpdatedCorrectly() { var updatedValues = new List <ObligatedValue>() { new ObligatedValue(Guid.NewGuid(), A.Dummy <int>(), 1, 2), new ObligatedValue(Guid.NewGuid(), A.Dummy <int>(), 3, 4) }; var message = new EditObligatedReused() { CategoryValues = updatedValues }; var returnAmounts = new List <WeeeReusedAmount>() { new WeeeReusedAmount(A.Fake <WeeeReused>(), A.Dummy <int>(), A.Dummy <decimal?>(), A.Dummy <decimal?>()), new WeeeReusedAmount(A.Fake <WeeeReused>(), A.Dummy <int>(), A.Dummy <decimal?>(), A.Dummy <decimal?>()) }; A.CallTo(() => genericDataAccess.GetById <WeeeReusedAmount>(updatedValues.ElementAt(0).Id)).Returns(returnAmounts.ElementAt(0)); A.CallTo(() => genericDataAccess.GetById <WeeeReusedAmount>(updatedValues.ElementAt(1).Id)).Returns(returnAmounts.ElementAt(1)); await handler.HandleAsync(message); A.CallTo(() => obligatedReusedDataAccess.UpdateAmounts(returnAmounts.ElementAt(0), 1, 2)).MustHaveHappened(Repeated.Exactly.Once); A.CallTo(() => obligatedReusedDataAccess.UpdateAmounts(returnAmounts.ElementAt(1), 3, 4)).MustHaveHappened(Repeated.Exactly.Once); }
public async Task <bool> HandleAsync(EditObligatedReused message) { authorization.EnsureCanAccessExternalArea(); foreach (var obligatedValue in message.CategoryValues) { var value = await genericDataAccess.GetById <WeeeReusedAmount>(obligatedValue.Id); await obligatedReusedDataAccess.UpdateAmounts(value, obligatedValue.HouseholdTonnage, obligatedValue.NonHouseholdTonnage); } return(true); }