public async Task HandleAsync_GivenFacilityType_CorrectReturnsReturned(Core.AatfReturn.FacilityType facilityType) { var organisationId = Guid.NewGuid(); var returns = A.CollectionOfFake <Return>(2); foreach (var @return in returns) { @return.FacilityType = Domain.AatfReturn.FacilityType.Ae; } var aatfReturn = A.Fake <Return>(); aatfReturn.FacilityType = Domain.AatfReturn.FacilityType.Aatf; returns.Add(aatfReturn); A.CallTo(() => returns.ElementAt(0).Id).Returns(Guid.NewGuid()); A.CallTo(() => returns.ElementAt(1).Id).Returns(Guid.NewGuid()); A.CallTo(() => returns.ElementAt(2).Id).Returns(Guid.NewGuid()); A.CallTo(() => returnDataAccess.GetByOrganisationId(organisationId)).Returns(returns); var result = await handler.HandleAsync(new GetReturns(organisationId, facilityType)); if (facilityType == Core.AatfReturn.FacilityType.Ae) { A.CallTo((() => populatedReturn.GetReturnData(returns.ElementAt(0).Id, false))).MustHaveHappened(Repeated.Exactly.Once); A.CallTo((() => populatedReturn.GetReturnData(returns.ElementAt(1).Id, false))).MustHaveHappened(Repeated.Exactly.Once); } if (facilityType == Core.AatfReturn.FacilityType.Aatf) { A.CallTo((() => populatedReturn.GetReturnData(returns.ElementAt(2).Id, false))).MustHaveHappened(Repeated.Exactly.Once); } }
public async Task HandleAsync_GivenOrganisation_ReturnQuarterShouldBeMapped(Core.AatfReturn.FacilityType facilityType) { var message = new GetReturns(Guid.NewGuid(), facilityType); var returnQuarter = new Quarter(2019, QuarterType.Q1); A.CallTo(() => returnFactory.GetReturnQuarter(message.OrganisationId, message.Facility)).Returns(returnQuarter); var result = await handler.HandleAsync(message); result.ReturnQuarter.Should().Be(returnQuarter); }
public async Task HandleAsync_GivenOrganisation_ReturnQuarterShouldBeRetrieved(Core.AatfReturn.FacilityType facilityType) { var message = new GetReturns(Guid.NewGuid(), facilityType); var result = await handler.HandleAsync(message); A.CallTo(() => returnFactory.GetReturnQuarter(message.OrganisationId, message.Facility)).MustHaveHappenedOnceExactly(); }