public async Task <bool> HandleAsync(RemoveAatfSite message) { authorization.EnsureCanAccessExternalArea(); var site = await genericDataAccess.GetById <AatfAddress>(message.SiteId); var weeeReusedSiteId = (await genericDataAccess.GetSingleByExpression <WeeeReusedSite>(new WeeeReusedByAddressIdSpecification(message.SiteId))).Id; var weeeReusedSite = await genericDataAccess.GetById <WeeeReusedSite>(weeeReusedSiteId); genericDataAccess.Remove(weeeReusedSite); genericDataAccess.Remove(site); await context.SaveChangesAsync(); return(true); }
public async Task HandleAsync_GivenGetSentOnAatfSiteRequest_DataAccessIsCalled() { var siteAddressId = Guid.NewGuid(); var weeeReusedSiteId = Guid.NewGuid(); var siteAddress = new AatfAddress(); var weeeReusedSite = new WeeeReusedSite(); var weeeReusedSiteReturned = new WeeeReusedSite(); A.CallTo(() => genericDataAccess.GetById <AatfAddress>(siteAddressId)).Returns(siteAddress); A.CallTo(() => genericDataAccess.GetSingleByExpression <WeeeReusedSite>(A <WeeeReusedByAddressIdSpecification> .That.Matches(w => w.SiteId == siteAddressId))).Returns(weeeReusedSite); A.CallTo(() => genericDataAccess.GetById <WeeeReusedSite>(weeeReusedSite.Id)).Returns(weeeReusedSiteReturned); await handler.HandleAsync(new RemoveAatfSite(siteAddressId)); A.CallTo(() => genericDataAccess.Remove(weeeReusedSiteReturned)).MustHaveHappened(Repeated.Exactly.Once) .Then(A.CallTo(() => genericDataAccess.Remove(siteAddress)).MustHaveHappened(Repeated.Exactly.Once)) .Then(A.CallTo(() => context.SaveChangesAsync()).MustHaveHappened(Repeated.Exactly.Once)); }