@Test public void testWithHomeFolderPojo() throws CvqException, CvqObjectNotFoundException, FileNotFoundException, IOException { SecurityContext.setCurrentSite(localAuthorityName, SecurityContext.FRONT_OFFICE_CONTEXT); // create a vo card request (to create home folder and associates) CreationBean cb = gimmeAnHomeFolderWithRequest(); SecurityContext.setCurrentEcitizen(cb.getLogin()); // get the home folder id HomeFolder homeFolder = homeFolderService.getById(cb.getHomeFolderId()); assertNotNull(homeFolder); Long homeFolderId = homeFolder.getId(); assertNotNull(homeFolderId); // fill and create the request ////////////////////////////// MilitaryCensusRequest request = fillMeARequest(); request.setRequesterId(SecurityContext.getCurrentUserId()); request.setHomeFolderId(homeFolderId); MilitaryCensusRequestFeeder.setSubject( request, requestService.getSubjectPolicy(), null, homeFolder); Long requestId = requestWorkflowService.create(request, null); MilitaryCensusRequest requestFromDb = (MilitaryCensusRequest) requestSearchService.getById(requestId, true); assertEquals(requestId, requestFromDb.getId()); assertNotNull(requestFromDb.getRequesterId()); assertNotNull(requestFromDb.getRequesterLastName()); if (requestFromDb.getSubjectId() != null) assertNotNull(requestFromDb.getSubjectLastName()); completeValidateAndDelete(requestFromDb); HomeFolder homeFolderAfterDelete = homeFolderService.getById(homeFolderId); assertNotNull(homeFolderAfterDelete); assertNotNull(homeFolderService.getHomeFolderResponsible(homeFolderAfterDelete.getId())); }
@Test public void testWithoutHomeFolder() throws CvqException, CvqObjectNotFoundException, FileNotFoundException, IOException { if (!requestService.supportUnregisteredCreation()) return; startTransaction(); SecurityContext.setCurrentSite(localAuthorityName, SecurityContext.FRONT_OFFICE_CONTEXT); MilitaryCensusRequest request = fillMeARequest(); Address address = BusinessObjectsFactory.gimmeAdress("12", "Rue d'Aligre", "Paris", "75012"); Adult requester = BusinessObjectsFactory.gimmeAdult( TitleType.MISTER, "LASTNAME", "requester", address, FamilyStatusType.MARRIED); requester.setPassword("requester"); requester.setAdress(address); homeFolderService.addHomeFolderRole(requester, RoleType.HOME_FOLDER_RESPONSIBLE); MilitaryCensusRequestFeeder.setSubject( request, requestService.getSubjectPolicy(), requester, null); Long requestId = requestWorkflowService.create(request, requester, null); // close current session and re-open a new one continueWithNewTransaction(); // start testing request creation ///////////////////////////////// MilitaryCensusRequest requestFromDb = (MilitaryCensusRequest) requestSearchService.getById(requestId, true); assertEquals(requestId, requestFromDb.getId()); assertNotNull(requestFromDb.getRequesterId()); assertNotNull(requestFromDb.getRequesterLastName()); if (requestFromDb.getSubjectId() != null) assertNotNull(requestFromDb.getSubjectLastName()); Long homeFolderId = requestFromDb.getHomeFolderId(); Long requesterId = requestFromDb.getRequesterId(); // close current session and re-open a new one continueWithNewTransaction(); completeValidateAndDelete(requestFromDb); // close current session and re-open a new one continueWithNewTransaction(); try { homeFolderService.getById(homeFolderId); fail("should not have found home folder"); } catch (CvqObjectNotFoundException confe) { // great, that was expected } try { individualService.getById(requesterId); fail("should not have found requester"); } catch (CvqObjectNotFoundException confe) { // great, that was expected } SecurityContext.resetCurrentSite(); commitTransaction(); }
protected MilitaryCensusRequest fillMeARequest() { MilitaryCensusRequest request = new MilitaryCensusRequest(); request.setFatherBirthDepartment(InseeDepartementCodeType.NONE); request.setChildProfession("ChildProfession"); request.setChildStatus(FamilyStatusType.MARRIED); request.setAliveChildren(BigInteger.valueOf(1)); request.setAffectionOrDisease(Boolean.valueOf(true)); request.setStatePupil(Boolean.valueOf(true)); request.setChildTitle(TitleType.MISTER); request.setChildMail("ChildMail"); request.setChildDiploma(ChildDiplomaType.B_A_C); request.setMotherBirthCountry(CountryType.UNKNOWN); request.setFatherBirthCity("FatherBirthCity"); request.setFatherBirthDate(new Date()); if ("FatherFirstName".length() > 38) request.setFatherFirstName("FatherFirstName".substring(0, 38)); else request.setFatherFirstName("FatherFirstName"); request.setMotherBirthCity("MotherBirthCity"); request.setFatherNationality(FullNationalityType.NONE); request.setMotherBirthDate(new Date()); if ("MotherFirstName".length() > 38) request.setMotherFirstName("MotherFirstName".substring(0, 38)); else request.setMotherFirstName("MotherFirstName"); request.setChildBirthCountry(CountryType.UNKNOWN); request.setMotherNationality(FullNationalityType.NONE); request.setHighlyInfirm(Boolean.valueOf(true)); request.setChildSpeciality("ChildSpeciality"); request.setChildOtherCountry(FullNationalityType.NONE); request.setChildrenInCharge(BigInteger.valueOf(1)); request.setJapdExemption(Boolean.valueOf(true)); request.setChildSituation(ChildSituationType.COLLEGE); if ("MaidenName".length() > 38) request.setMaidenName("MaidenName".substring(0, 38)); else request.setMaidenName("MaidenName"); if ("ChildPhone".length() > 10) request.setChildPhone("ChildPhone".substring(0, 10)); else request.setChildPhone("ChildPhone"); if ("MotherLastName".length() > 38) request.setMotherLastName("MotherLastName".substring(0, 38)); else request.setMotherLastName("MotherLastName"); if ("FatherLastName".length() > 38) request.setFatherLastName("FatherLastName".substring(0, 38)); else request.setFatherLastName("FatherLastName"); request.setPrefectPupilDepartment(InseeDepartementCodeType.NONE); request.setMotherBirthDepartment(InseeDepartementCodeType.NONE); request.setChildResidenceCountry(CountryType.UNKNOWN); request.setOtherSituation("OtherSituation"); request.setPrefectPupil(Boolean.valueOf(true)); request.setChildCountry(FullNationalityType.NONE); if ("ChildConvention".length() > 255) request.setChildConvention("ChildConvention".substring(0, 255)); else request.setChildConvention("ChildConvention"); request.setFatherBirthCountry(CountryType.UNKNOWN); // Means Of Contact MeansOfContact meansOfContact = meansOfContactService.getMeansOfContactByType(MeansOfContactEnum.EMAIL); request.setMeansOfContact(meansOfContact); MilitaryCensusRequestFeeder.feed(request); return request; }
protected void completeValidateAndDelete(MilitaryCensusRequest request) throws CvqException, IOException { // add a document to the request /////////////////////////////// Document doc = new Document(); doc.setEcitizenNote("Ma carte d'identité !"); doc.setDepositOrigin(DepositOrigin.ECITIZEN); doc.setDepositType(DepositType.PC); doc.setHomeFolderId(request.getHomeFolderId()); doc.setIndividualId(request.getRequesterId()); doc.setDocumentType( documentTypeService.getDocumentTypeByType(IDocumentTypeService.IDENTITY_RECEIPT_TYPE)); Long documentId = documentService.create(doc); requestDocumentService.addDocument(request.getId(), documentId); Set<RequestDocument> documentsSet = requestDocumentService.getAssociatedDocuments(request.getId()); assertEquals(documentsSet.size(), 1); // FIXME : test list of pending / in-progress registrations Critere testCrit = new Critere(); testCrit.setAttribut(Request.SEARCH_BY_HOME_FOLDER_ID); testCrit.setComparatif(Critere.EQUALS); testCrit.setValue(request.getHomeFolderId()); Set<Critere> testCritSet = new HashSet<Critere>(); testCritSet.add(testCrit); List<Request> allRequests = requestSearchService.get(testCritSet, null, null, -1, 0, false); assertNotNull(allRequests); // close current session and re-open a new one continueWithNewTransaction(); SecurityContext.setCurrentSite(localAuthorityName, SecurityContext.BACK_OFFICE_CONTEXT); SecurityContext.setCurrentAgent(agentNameWithCategoriesRoles); requestWorkflowService.updateRequestState(request.getId(), RequestState.COMPLETE, null); requestWorkflowService.updateRequestState(request.getId(), RequestState.VALIDATED, null); // close current session and re-open a new one continueWithNewTransaction(); byte[] generatedCertificate = requestSearchService.getCertificate(request.getId(), RequestState.PENDING); if (generatedCertificate == null) fail("No certificate found"); // Write tele-service xml data file File xmlFile = File.createTempFile("tmp" + request.getId(), ".xml"); FileOutputStream xmlFos = new FileOutputStream(xmlFile); xmlFos.write(requestSearchService.getById(request.getId(), true).modelToXmlString().getBytes()); File file = File.createTempFile("tmp" + request.getId(), ".pdf"); FileOutputStream fos = new FileOutputStream(file); fos.write(generatedCertificate); // close current session and re-open a new one continueWithNewTransaction(); // delete request requestWorkflowService.delete(request.getId()); }