@@ -128,9 +128,9 @@ public class WebApplicationResourceDeleteTest {
128128 private static final VitamLogger LOGGER = VitamLoggerFactory .getInstance (WebApplicationResourceDeleteTest .class );
129129
130130 private static final String CONTEXT_NAME = "Name" ;
131- private static final String ADMIN_CONTEXT = "admin-context" ;
131+ private static final String [] CONTEXTS_TO_SAVE = { "admin-context" , "vitamui-context" } ;
132132 private static final String SECURITY_PROFIL_NAME = "Name" ;
133- private static final String SECURITY_PROFIL_NAME_TO_SAVE = "admin-security-profile" ;
133+ private static final String [] SECURITY_PROFILES_TO_SAVE = { "admin-security-profile" , "vitamui-security-profile" } ;
134134 // Take it from conf file
135135 private static final String DEFAULT_WEB_APP_CONTEXT = "/ihm-recette" ;
136136 private static final String CREDENTIALS = "{\" token\" : {\" principal\" : \" myName\" , \" credentials\" : \" myName\" }}" ;
@@ -588,16 +588,18 @@ public void testDeleteMasterdataContextOK() {
588588 VitamThreadUtils .getVitamSession ().setTenantId (TENANT_ID );
589589
590590 final GUID adminContext = addAdminContextData (FunctionalAdminCollections .CONTEXT );
591- // Needs two contexts for testing purposes (admin context won't be deleted)
592- final GUID idContext2 = addData (FunctionalAdminCollections .CONTEXT );
591+ final GUID vitamuiContext = addVitamuiContextData ( FunctionalAdminCollections . CONTEXT );
592+ final GUID idContextToDelete = addData (FunctionalAdminCollections .CONTEXT );
593593 assertTrue (existsData (FunctionalAdminCollections .CONTEXT , adminContext .getId ()));
594- assertTrue (existsData (FunctionalAdminCollections .CONTEXT , idContext2 .getId ()));
594+ assertTrue (existsData (FunctionalAdminCollections .CONTEXT , vitamuiContext .getId ()));
595+ assertTrue (existsData (FunctionalAdminCollections .CONTEXT , idContextToDelete .getId ()));
595596 given ().header (GlobalDataRest .X_TENANT_ID , TENANT_ID ).header (GlobalDataRest .X_CSRF_TOKEN , tokenCSRF )
596597 .header (GlobalDataRest .X_REQUEST_ID , VitamThreadUtils .getVitamSession ().getRequestId ())
597598 .cookie (COOKIE ).expect ().statusCode (Status .OK .getStatusCode ()).when ()
598599 .delete ("delete/masterdata/context" );
599600 assertTrue (existsData (FunctionalAdminCollections .CONTEXT , adminContext .getId ()));
600- assertFalse (existsData (FunctionalAdminCollections .CONTEXT , idContext2 .getId ()));
601+ assertTrue (existsData (FunctionalAdminCollections .CONTEXT , vitamuiContext .getId ()));
602+ assertFalse (existsData (FunctionalAdminCollections .CONTEXT , idContextToDelete .getId ()));
601603 } catch (final Exception e ) {
602604 LOGGER .error (e );
603605 fail ("Exception using mongoDbAccess" );
@@ -611,16 +613,18 @@ public void testDeleteMasterdataSecuryityProfilOK() {
611613 VitamThreadUtils .getVitamSession ().setTenantId (TENANT_ID );
612614
613615 final GUID adminSecurity = addAdminSecurityData (FunctionalAdminCollections .SECURITY_PROFILE );
614- // Needs two contexts for testing purposes (admin context won't be deleted)
615- final GUID idSecurity = addData (FunctionalAdminCollections .SECURITY_PROFILE );
616+ final GUID vitamuiSecurity = addVitamuiSecurityData ( FunctionalAdminCollections . SECURITY_PROFILE );
617+ final GUID idSecurityToDelete = addData (FunctionalAdminCollections .SECURITY_PROFILE );
616618 assertTrue (existsData (FunctionalAdminCollections .SECURITY_PROFILE , adminSecurity .getId ()));
617- assertTrue (existsData (FunctionalAdminCollections .SECURITY_PROFILE , idSecurity .getId ()));
619+ assertTrue (existsData (FunctionalAdminCollections .SECURITY_PROFILE , vitamuiSecurity .getId ()));
620+ assertTrue (existsData (FunctionalAdminCollections .SECURITY_PROFILE , idSecurityToDelete .getId ()));
618621 given ().header (GlobalDataRest .X_TENANT_ID , TENANT_ID ).header (GlobalDataRest .X_CSRF_TOKEN , tokenCSRF )
619622 .header (GlobalDataRest .X_REQUEST_ID , VitamThreadUtils .getVitamSession ().getRequestId ())
620623 .cookie (COOKIE ).expect ().statusCode (Status .OK .getStatusCode ()).when ()
621- .delete ("delete/masterdata/securityProfil " );
624+ .delete ("delete/masterdata/securityProfile " );
622625 assertTrue (existsData (FunctionalAdminCollections .SECURITY_PROFILE , adminSecurity .getId ()));
623- assertFalse (existsData (FunctionalAdminCollections .SECURITY_PROFILE , idSecurity .getId ()));
626+ assertTrue (existsData (FunctionalAdminCollections .SECURITY_PROFILE , vitamuiSecurity .getId ()));
627+ assertFalse (existsData (FunctionalAdminCollections .SECURITY_PROFILE , idSecurityToDelete .getId ()));
624628 } catch (final Exception e ) {
625629 LOGGER .error (e );
626630 fail ("Exception using mongoDbAccess" );
@@ -652,9 +656,11 @@ public void testDeleteAllOk()
652656 assertTrue (existsData (FunctionalAdminCollections .ACCESSION_REGISTER_SUMMARY , idRegisterSummary .getId ()));
653657 assertTrue (existsData (FunctionalAdminCollections .ACCESSION_REGISTER_DETAIL , idRegisterDetail .getId ()));
654658 final GUID adminContext = addAdminContextData (FunctionalAdminCollections .CONTEXT );
655- final GUID idContext2 = addData (FunctionalAdminCollections .CONTEXT );
659+ final GUID vitamuiContext = addVitamuiContextData (FunctionalAdminCollections .CONTEXT );
660+ final GUID idContextToDelete = addData (FunctionalAdminCollections .CONTEXT );
656661 assertTrue (existsData (FunctionalAdminCollections .CONTEXT , adminContext .getId ()));
657- assertTrue (existsData (FunctionalAdminCollections .CONTEXT , idContext2 .getId ()));
662+ assertTrue (existsData (FunctionalAdminCollections .CONTEXT , vitamuiContext .getId ()));
663+ assertTrue (existsData (FunctionalAdminCollections .CONTEXT , idContextToDelete .getId ()));
658664
659665 final GUID idOntology = addData (FunctionalAdminCollections .ONTOLOGY );
660666 assertTrue (existsData (FunctionalAdminCollections .ONTOLOGY , idOntology .getId ()));
@@ -675,10 +681,10 @@ public void testDeleteAllOk()
675681 assertFalse (existsData (FunctionalAdminCollections .AGENCIES , idAgency .getId ()));
676682 assertFalse (existsData (FunctionalAdminCollections .ACCESSION_REGISTER_SUMMARY , idRegisterSummary .getId ()));
677683 assertFalse (existsData (FunctionalAdminCollections .ACCESSION_REGISTER_DETAIL , idRegisterDetail .getId ()));
678- assertFalse (existsData (FunctionalAdminCollections .PROFILE , idProfile .getId ()));
679- assertFalse (existsData (FunctionalAdminCollections .CONTEXT , idContext2 .getId ()));
680- //Admin context must still exist
684+ assertFalse (existsData (FunctionalAdminCollections .CONTEXT , idContextToDelete .getId ()));
685+ //Admin and VitamUI contexts must still exist
681686 assertTrue (existsData (FunctionalAdminCollections .CONTEXT , adminContext .getId ()));
687+ assertTrue (existsData (FunctionalAdminCollections .CONTEXT , vitamuiContext .getId ()));
682688 } catch (final ReferentialException | InvalidParseOperationException | DocumentAlreadyExistsException e ) {
683689 LOGGER .error (e );
684690 fail ("Exception using mongoDbAccess" );
@@ -754,7 +760,7 @@ private GUID addData(FunctionalAdminCollections collection)
754760 case RULES :
755761 data1 .put ("RuleId" , "APP-00001" );
756762 data1 .put ("RuleType" , "AppraisalRule" );
757- data1 .put ("RuleValue" , "Dossier individuel d’ agent civil" );
763+ data1 .put ("RuleValue" , "Dossier individuel d' agent civil" );
758764 data1 .put ("RuleDuration" , "80" );
759765 data1 .put ("RuleMeasurement" , "Year" );
760766 data1 .put ("CreationDate" , "2019-02-10" );
@@ -849,7 +855,7 @@ public GUID addData(LogbookCollections collection) {
849855 public GUID addAdminContextData (FunctionalAdminCollections collection )
850856 throws ReferentialException , InvalidCreateOperationException , InvalidGuidOperationException ,
851857 InvalidParseOperationException , SchemaValidationException , DocumentAlreadyExistsException {
852- final Query query = QueryHelper .or ().add (QueryHelper .eq (CONTEXT_NAME , ADMIN_CONTEXT ));
858+ final Query query = QueryHelper .or ().add (QueryHelper .eq (CONTEXT_NAME , CONTEXTS_TO_SAVE [ 0 ] ));
853859 JsonNode select = query .getCurrentObject ();
854860 DbRequestResult result = mongoDbAccessAdmin .findDocuments (select , FunctionalAdminCollections .CONTEXT );
855861 GUID adminContext ;
@@ -858,26 +864,52 @@ public GUID addAdminContextData(FunctionalAdminCollections collection)
858864 } else {
859865 adminContext = GUIDFactory .newGUID ();
860866 final ObjectNode data1 = JsonHandler .createObjectNode ().put ("_id" , adminContext .getId ());
861- data1 .put (CONTEXT_NAME , ADMIN_CONTEXT );
867+ data1 .put (CONTEXT_NAME , CONTEXTS_TO_SAVE [ 0 ] );
862868 data1 .put ("Identifier" , "Identifier" );
863869 data1 .put ("CreationDate" , "2019-02-13" );
864870 data1 .put ("LastUpdate" , "2019-02-13" );
865871 data1 .put ("EnableControl" , true );
866872 final ObjectNode permissionNode = JsonHandler .createObjectNode ();
867873 permissionNode .put ("tenant" , TENANT_ID );
868874 data1 .set ("Permissions" , JsonHandler .createArrayNode ().add (permissionNode ));
869- data1 .put ("SecurityProfile" , "admin-security-profile" );
875+ data1 .put ("SecurityProfile" , SECURITY_PROFILES_TO_SAVE [ 0 ] );
870876 data1 .put ("Status" , "ACTIVE" );
871877 mongoDbAccessAdmin .insertDocument (data1 , collection ).close ();
872878 }
873879 return adminContext ;
874880 }
875881
882+ public GUID addVitamuiContextData (FunctionalAdminCollections collection )
883+ throws ReferentialException , InvalidCreateOperationException , InvalidGuidOperationException ,
884+ InvalidParseOperationException , SchemaValidationException , DocumentAlreadyExistsException {
885+ final Query query = QueryHelper .or ().add (QueryHelper .eq (CONTEXT_NAME , CONTEXTS_TO_SAVE [1 ]));
886+ JsonNode select = query .getCurrentObject ();
887+ DbRequestResult result = mongoDbAccessAdmin .findDocuments (select , FunctionalAdminCollections .CONTEXT );
888+ GUID vitamuiContext ;
889+ if (result .getCount () > 0 ) {
890+ vitamuiContext = GUIDReader .getGUID (result .getDocuments (Context .class , ContextModel .class ).get (0 ).getId ());
891+ } else {
892+ vitamuiContext = GUIDFactory .newGUID ();
893+ final ObjectNode data1 = JsonHandler .createObjectNode ().put ("_id" , vitamuiContext .getId ());
894+ data1 .put (CONTEXT_NAME , CONTEXTS_TO_SAVE [1 ]);
895+ data1 .put ("Identifier" , "Identifier" );
896+ data1 .put ("CreationDate" , "2019-02-13" );
897+ data1 .put ("LastUpdate" , "2019-02-13" );
898+ data1 .put ("EnableControl" , true );
899+ final ObjectNode permissionNode = JsonHandler .createObjectNode ();
900+ permissionNode .put ("tenant" , TENANT_ID );
901+ data1 .set ("Permissions" , JsonHandler .createArrayNode ().add (permissionNode ));
902+ data1 .put ("SecurityProfile" , SECURITY_PROFILES_TO_SAVE [1 ]);
903+ data1 .put ("Status" , "ACTIVE" );
904+ mongoDbAccessAdmin .insertDocument (data1 , collection ).close ();
905+ }
906+ return vitamuiContext ;
907+ }
876908
877909 public GUID addAdminSecurityData (FunctionalAdminCollections collection )
878910 throws ReferentialException , InvalidCreateOperationException , InvalidGuidOperationException ,
879911 InvalidParseOperationException , SchemaValidationException , DocumentAlreadyExistsException {
880- final Query query = QueryHelper .or ().add (QueryHelper .eq (SECURITY_PROFIL_NAME , SECURITY_PROFIL_NAME_TO_SAVE ));
912+ final Query query = QueryHelper .or ().add (QueryHelper .eq (SECURITY_PROFIL_NAME , SECURITY_PROFILES_TO_SAVE [ 0 ] ));
881913 JsonNode select = query .getCurrentObject ();
882914 DbRequestResult result = mongoDbAccessAdmin .findDocuments (select , FunctionalAdminCollections .SECURITY_PROFILE );
883915 GUID adminContext ;
@@ -886,7 +918,7 @@ public GUID addAdminSecurityData(FunctionalAdminCollections collection)
886918 } else {
887919 adminContext = GUIDFactory .newGUID ();
888920 final ObjectNode data1 = JsonHandler .createObjectNode ().put ("_id" , adminContext .getId ());
889- data1 .put (SECURITY_PROFIL_NAME , SECURITY_PROFIL_NAME_TO_SAVE );
921+ data1 .put (SECURITY_PROFIL_NAME , SECURITY_PROFILES_TO_SAVE [ 0 ] );
890922 data1 .put ("Identifier" , "admin-security-profile" );
891923 data1 .set ("Permissions" , new ArrayNode (null ));
892924 data1 .put ("FullAccess" , true );
@@ -895,6 +927,27 @@ public GUID addAdminSecurityData(FunctionalAdminCollections collection)
895927 return adminContext ;
896928 }
897929
930+ public GUID addVitamuiSecurityData (FunctionalAdminCollections collection )
931+ throws ReferentialException , InvalidCreateOperationException , InvalidGuidOperationException ,
932+ InvalidParseOperationException , SchemaValidationException , DocumentAlreadyExistsException {
933+ final Query query = QueryHelper .or ().add (QueryHelper .eq (SECURITY_PROFIL_NAME , SECURITY_PROFILES_TO_SAVE [1 ]));
934+ JsonNode select = query .getCurrentObject ();
935+ DbRequestResult result = mongoDbAccessAdmin .findDocuments (select , FunctionalAdminCollections .SECURITY_PROFILE );
936+ GUID vitamuiContext ;
937+ if (result .getCount () > 0 ) {
938+ vitamuiContext = GUIDReader .getGUID (result .getDocuments (Context .class , ContextModel .class ).get (0 ).getId ());
939+ } else {
940+ vitamuiContext = GUIDFactory .newGUID ();
941+ final ObjectNode data1 = JsonHandler .createObjectNode ().put ("_id" , vitamuiContext .getId ());
942+ data1 .put (SECURITY_PROFIL_NAME , SECURITY_PROFILES_TO_SAVE [1 ]);
943+ data1 .put ("Identifier" , "vitamui-security-profile" );
944+ data1 .set ("Permissions" , new ArrayNode (null ));
945+ data1 .put ("FullAccess" , true );
946+ mongoDbAccessAdmin .insertDocument (data1 , collection ).close ();
947+ }
948+ return vitamuiContext ;
949+ }
950+
898951 public boolean existsData (FunctionalAdminCollections collection , String id ) {
899952 return mongoDbAccessAdmin .getDocumentById (id , collection ) != null ;
900953 }
0 commit comments