public async void GetSchemesExternalHandlerHandleAsync_GivenGetSchemeExternalRequest_ReturnListOfSchemesThatAreApprovedOrWithdrawn() { using (var database = new DatabaseWrapper()) { var context = database.WeeeContext; var mapper = new SchemeMap(A.Fake <IMapper>(), A.Fake <IMap <Address, AddressData> >(), A.Fake <IMap <Contact, ContactData> >()); var name = "Test Name" + Guid.NewGuid(); var tradingName = "Test Trading Name" + Guid.NewGuid(); const string crn = "ABC12345"; var organisationApproved = Organisation.CreateRegisteredCompany(name, crn, tradingName); organisationApproved.OrganisationStatus = OrganisationStatus.Complete; var organisationPending = Organisation.CreateRegisteredCompany(name, crn, tradingName); organisationPending.OrganisationStatus = OrganisationStatus.Complete; var organisationWithdrawn = Organisation.CreateRegisteredCompany(name, crn, tradingName); organisationWithdrawn.OrganisationStatus = OrganisationStatus.Complete; var organisationRejected = Organisation.CreateRegisteredCompany(name, crn, tradingName); organisationRejected.OrganisationStatus = OrganisationStatus.Complete; context.Organisations.Add(organisationApproved); context.Organisations.Add(organisationPending); context.Organisations.Add(organisationWithdrawn); context.Organisations.Add(organisationRejected); await context.SaveChangesAsync(); var schemeApproved = new Scheme(organisationApproved.Id); schemeApproved.SetStatus(SchemeStatus.Approved); context.Schemes.Add(schemeApproved); var schemeApprovedData = mapper.Map(schemeApproved); var schemePending = new Scheme(organisationPending.Id); schemePending.SetStatus(SchemeStatus.Pending); context.Schemes.Add(schemePending); var schemeWithdrawn = new Scheme(organisationWithdrawn.Id); schemeWithdrawn.SetStatus(SchemeStatus.Approved); schemeWithdrawn.SetStatus(SchemeStatus.Withdrawn); context.Schemes.Add(schemeWithdrawn); var schemeWithdrawnData = mapper.Map(schemeWithdrawn); var schemeRejected = new Scheme(organisationRejected.Id); schemeRejected.SetStatus(SchemeStatus.Rejected); context.Schemes.Add(schemeRejected); await context.SaveChangesAsync(); var dataAccess = new GetSchemesDataAccess(database.WeeeContext); var results = await dataAccess.GetCompleteSchemes(); var handler = new GetSchemesExternalHandler(dataAccess, mapper, A.Fake <IWeeeAuthorization>()); var request = new GetSchemesExternal(); var schemeDataList = new List <SchemeData>(); var result = await handler.HandleAsync(request); } }
public async Task GetSchemesDataAccess_GetCompleteSchemes_ReturnsOnlySchemesWithCompleteOrganisations() { using (DatabaseWrapper database = new DatabaseWrapper()) { // Arrange ModelHelper helper = new ModelHelper(database.Model); var organisation1 = helper.CreateOrganisation(); organisation1.OrganisationType = 3; organisation1.OrganisationStatus = 2; // Complete organisation var scheme1 = helper.CreateScheme(organisation1); var organisation2 = helper.CreateOrganisation(); organisation2.OrganisationType = 1; organisation2.OrganisationStatus = 2; // Complete organisation var scheme2 = helper.CreateScheme(organisation2); var organisation3 = helper.CreateOrganisation(); organisation3.OrganisationType = 1; organisation3.OrganisationStatus = 1; // Incomplete organisation var scheme3 = helper.CreateScheme(organisation3); var organisation4 = helper.CreateOrganisation(); organisation4.OrganisationType = 2; organisation4.OrganisationStatus = 1; // Incomplete organisation var scheme4 = helper.CreateScheme(organisation4); database.Model.SaveChanges(); var dataAccess = new GetSchemesDataAccess(database.WeeeContext); // Act var result = await dataAccess.GetCompleteSchemes(); // Assert Assert.Contains(result, r => r.Id == scheme1.Id); Assert.Contains(result, r => r.Id == scheme2.Id); Assert.DoesNotContain(result, r => r.Id == scheme3.Id); Assert.DoesNotContain(result, r => r.Id == scheme4.Id); } }
public async Task GetSchemesDataAccess_GetCompleteSchemes_ReturnsOnlySchemesWithCompleteOrganisations() { using (DatabaseWrapper database = new DatabaseWrapper()) { // Arrange ModelHelper helper = new ModelHelper(database.Model); var organisation1 = helper.CreateOrganisation(); organisation1.OrganisationType = 3; organisation1.OrganisationStatus = 2; // Complete organisation var scheme1 = helper.CreateScheme(organisation1); var organisation2 = helper.CreateOrganisation(); organisation2.OrganisationType = 1; organisation2.OrganisationStatus = 2; // Complete organisation var scheme2 = helper.CreateScheme(organisation2); var organisation3 = helper.CreateOrganisation(); organisation3.OrganisationType = 1; organisation3.OrganisationStatus = 1; // Incomplete organisation var scheme3 = helper.CreateScheme(organisation3); var organisation4 = helper.CreateOrganisation(); organisation4.OrganisationType = 2; organisation4.OrganisationStatus = 1; // Incomplete organisation var scheme4 = helper.CreateScheme(organisation4); database.Model.SaveChanges(); var dataAccess = new GetSchemesDataAccess(database.WeeeContext); // Act var result = await dataAccess.GetCompleteSchemes(); // Assert Assert.Contains(result, r => r.Id == scheme1.Id); Assert.Contains(result, r => r.Id == scheme2.Id); Assert.DoesNotContain(result, r => r.Id == scheme3.Id); Assert.DoesNotContain(result, r => r.Id == scheme4.Id); } }