@Test
  public void testUnauthenticatedUseCases() throws CvqException, IOException {

    SecurityContext.setCurrentSite(localAuthorityName, SecurityContext.FRONT_OFFICE_CONTEXT);

    DocumentType documentType =
        documentTypeService.getDocumentTypeByType(IDocumentTypeService.ADOPTION_JUDGMENT_TYPE);
    Document document = new Document(null, "coucou", documentType, DocumentState.PENDING);
    documentService.create(document);

    continueWithNewTransaction();

    document = documentService.getById(document.getId());
    assertEquals("coucou", document.getEcitizenNote());

    document.setEcitizenNote("hello buddy");
    documentService.modify(document);

    continueWithNewTransaction();

    document = documentService.getById(document.getId());
    assertEquals("hello buddy", document.getEcitizenNote());

    try {
      documentService.addPage(document.getId(), getImageDocumentBinary());
    } catch (CvqModelException cme) {
      fail("thrown cvq model exception : " + cme.getI18nKey());
    }

    continueWithNewTransaction();

    document = documentService.getById(document.getId());
    try {
      documentService.modifyPage(document.getId(), 0, new byte[] {});
    } catch (CvqModelException cme) {
      fail("thrown cvq model exception : " + cme.getI18nKey());
    }

    continueWithNewTransaction();

    document = documentService.getById(document.getId());
    assertEquals(1, document.getDatas().size());

    documentService.deletePage(document.getId(), 0);

    continueWithNewTransaction();

    document = documentService.getById(document.getId());
    assertEquals(0, document.getDatas().size());

    documentService.delete(document.getId());

    continueWithNewTransaction();
    // TODO: test deletion
  }
 protected void completeValidateAndDelete(TicketBookingRequest 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());
 }