use of gov.ca.cwds.cals.web.rest.rfa.RFA1aApplicantsHistoryResourceTest.APPLICANTS_HISTORY_FIXTURE in project cals-api by ca-cwds.
the class RFA1aFormsResourceTest method testApplicationWithParts.
@Test()
public void testApplicationWithParts() throws Exception {
RFA1aFormDTO postFormRequest = clientTestRule.getMapper().readValue(RFA_1A_FIXTURE, RFA1aFormDTO.class);
RFA1aFormDTO postFormResponse = clientTestRule.target(API.RFA_1A_FORMS).request(MediaType.APPLICATION_JSON).post(Entity.entity(postFormRequest, MediaType.APPLICATION_JSON_TYPE), RFA1aFormDTO.class);
Long formId = postFormResponse.getId();
postFormRequest.setId(formId);
assertEqualsResponse(transformDTOtoJSON(postFormRequest), transformDTOtoJSON(postFormResponse));
ApplicantDTO applicantDTO = clientTestRule.target(API.RFA_1A_FORMS + "/" + formId + "/" + API.RFA_1A_APPLICANTS).request(MediaType.APPLICATION_JSON).post(Entity.entity(APPLICANT_FIXTURE, MediaType.APPLICATION_JSON_TYPE), ApplicantDTO.class);
ApplicantDTO applicantDTO2 = clientTestRule.target(API.RFA_1A_FORMS + "/" + formId + "/" + API.RFA_1A_APPLICANTS).request(MediaType.APPLICATION_JSON).post(Entity.entity(APPLICANT_FIXTURE2, MediaType.APPLICATION_JSON_TYPE), ApplicantDTO.class);
ResidenceDTO residenceDTO = clientTestRule.target(API.RFA_1A_FORMS + "/" + formId + "/" + API.RFA_1A_RESIDENCE).request(MediaType.APPLICATION_JSON).put(Entity.entity(RESIDENCE_FIXTURE, MediaType.APPLICATION_JSON_TYPE), ResidenceDTO.class);
ApplicantsRelationshipDTO applicantsRelationshipDTO = clientTestRule.target(API.RFA_1A_FORMS + "/" + formId + "/" + API.RFA_1A_APPLICANTS_RELATIONSHIP).request(MediaType.APPLICATION_JSON).put(Entity.entity(APPLICANTS_RELATIONSHIP_FIXTURE, MediaType.APPLICATION_JSON_TYPE), ApplicantsRelationshipDTO.class);
MinorChildDTO minorChildDTO = clientTestRule.target(API.RFA_1A_FORMS + "/" + formId + "/" + API.RFA_1A_MINOR_CHILDREN).request(MediaType.APPLICATION_JSON).post(Entity.entity(MINOR_CHILDREN_FIXTURE, MediaType.APPLICATION_JSON_TYPE), MinorChildDTO.class);
OtherAdultDTO otherAdultDTO = clientTestRule.target(API.RFA_1A_FORMS + "/" + formId + "/" + API.RFA_1A_OTHER_ADULTS).request(MediaType.APPLICATION_JSON).post(Entity.entity(OTHER_ADULTS_FIXTURE, MediaType.APPLICATION_JSON_TYPE), OtherAdultDTO.class);
ApplicantsHistoryDTO applicantsHistoryDTO = clientTestRule.target(API.RFA_1A_FORMS + "/" + formId + "/" + API.RFA_1A_APPLICANTS_HISTORY).request(MediaType.APPLICATION_JSON).put(Entity.entity(APPLICANTS_HISTORY_FIXTURE, MediaType.APPLICATION_JSON_TYPE), ApplicantsHistoryDTO.class);
ChildDesiredDTO childDesiredDTO = clientTestRule.target(API.RFA_1A_FORMS + "/" + formId + "/" + API.RFA_1A_CHILD_DESIRED).request(MediaType.APPLICATION_JSON).put(Entity.entity(CHILD_DESIRED_FIXTURE, MediaType.APPLICATION_JSON_TYPE), ChildDesiredDTO.class);
AdoptionHistoryDTO adoptionHistoryDTO = clientTestRule.target(API.RFA_1A_FORMS + "/" + formId + "/" + API.RFA_1A_ADOPTION_HISTORY).request(MediaType.APPLICATION_JSON).put(Entity.entity(ADOPTION_HISTORY_FIXTURE, MediaType.APPLICATION_JSON_TYPE), AdoptionHistoryDTO.class);
ReferencesDTO referencesDTO = clientTestRule.target(API.RFA_1A_FORMS + "/" + formId + "/" + API.RFA_1A_REFERENCES).request(MediaType.APPLICATION_JSON).put(Entity.entity(REFERENCES_FIXTURE, MediaType.APPLICATION_JSON_TYPE), ReferencesDTO.class);
ApplicantsDeclarationDTO applicantsDeclarationDTO = clientTestRule.target(API.RFA_1A_FORMS + "/" + formId + "/" + API.RFA_1A_APPLICANTS_DECLARATION).request(MediaType.APPLICATION_JSON).put(Entity.entity(APPLICANTS_DECLARATION_FIXTURE, MediaType.APPLICATION_JSON_TYPE), ApplicantsDeclarationDTO.class);
RFA1aFormDTO getFormResponse = clientTestRule.target(API.RFA_1A_FORMS + "/" + formId).request(MediaType.APPLICATION_JSON).get(RFA1aFormDTO.class);
assertEqualsResponse(transformDTOtoJSON(postFormResponse), transformDTOtoJSON(getFormResponse));
RFA1aFormDTO expectedRfa1aFormDTO = clientTestRule.getMapper().readValue(RFA_1A_FIXTURE, RFA1aFormDTO.class);
expectedRfa1aFormDTO.setId(formId);
List<ApplicantDTO> applicants = new ArrayList<>();
applicants.add(applicantDTO);
applicants.add(applicantDTO2);
expectedRfa1aFormDTO.setApplicants(applicants);
expectedRfa1aFormDTO.setResidence(residenceDTO);
expectedRfa1aFormDTO.setApplicantsRelationship(applicantsRelationshipDTO);
List<MinorChildDTO> minorChildren = new ArrayList<>();
minorChildren.add(minorChildDTO);
expectedRfa1aFormDTO.setMinorChildren(minorChildren);
List<OtherAdultDTO> otherAdults = new ArrayList<>();
otherAdults.add(otherAdultDTO);
expectedRfa1aFormDTO.setOtherAdults(otherAdults);
expectedRfa1aFormDTO.setApplicantsHistory(applicantsHistoryDTO);
expectedRfa1aFormDTO.setChildDesired(childDesiredDTO);
expectedRfa1aFormDTO.setAdoptionHistory(adoptionHistoryDTO);
expectedRfa1aFormDTO.setReferences(referencesDTO);
expectedRfa1aFormDTO.setApplicantsDeclaration(applicantsDeclarationDTO);
RFA1aFormDTO getExpandedFormResponse = clientTestRule.target(API.RFA_1A_FORMS + "/" + formId + "?" + API.QueryParams.EXPANDED + "=true").request(MediaType.APPLICATION_JSON).get(RFA1aFormDTO.class);
assertEqualsResponse(transformDTOtoJSON(expectedRfa1aFormDTO), transformDTOtoJSON(getExpandedFormResponse));
WebTarget getExpandedCollectionTarget = clientTestRule.target(API.RFA_1A_FORMS + "?" + API.QueryParams.EXPANDED + "=true");
CollectionDTO<RFA1aFormDTO> getExpandedCollectionResponseForm = getExpandedCollectionTarget.request(MediaType.APPLICATION_JSON).get(new GenericType<CollectionDTO<RFA1aFormDTO>>() {
});
Collection<RFA1aFormDTO> filtered = getExpandedCollectionResponseForm.getCollection().stream().filter(b -> b.getId().equals(formId)).collect(Collectors.toCollection(ArrayList::new));
getExpandedCollectionResponseForm.getCollection().clear();
getExpandedCollectionResponseForm.getCollection().addAll(filtered);
List<RFA1aFormDTO> items = new ArrayList<>();
items.add(expectedRfa1aFormDTO);
RFA1aFormCollectionDTO expectedExpandedRfa1aFormCollectionResponse = new RFA1aFormCollectionDTO(items);
assertEqualsResponse(transformDTOtoJSON(expectedExpandedRfa1aFormCollectionResponse), transformDTOtoJSON(getExpandedCollectionResponseForm));
}
Aggregations