@@ -813,6 +813,36 @@ public void tagProjectsWhenAlreadyTaggedTest() {
813
813
assertThat (project .getTags ()).satisfiesExactly (projectTag -> assertThat (projectTag .getName ()).isEqualTo ("foo" ));
814
814
}
815
815
816
+ @ Test
817
+ public void tagProjectsExtraTagTest () {
818
+ initializeWithPermissions (Permissions .PORTFOLIO_MANAGEMENT );
819
+
820
+ final var projectA = new Project ();
821
+ projectA .setName ("acme-app-a" );
822
+ qm .persist (projectA );
823
+
824
+ final var projectB = new Project ();
825
+ projectB .setName ("acme-app-b" );
826
+ qm .persist (projectB );
827
+
828
+ final Tag tagFoo = qm .createTag ("foo" );
829
+ qm .bind (projectA , List .of (tagFoo ));
830
+
831
+ final Tag tagBar = qm .createTag ("bar" );
832
+ qm .bind (projectB , List .of (tagBar ));
833
+
834
+ final Response response = jersey .target (V1_TAG + "/bar/project" )
835
+ .request ()
836
+ .header (X_API_KEY , apiKey )
837
+ .post (Entity .json (List .of (projectA .getUuid ())));
838
+ assertThat (response .getStatus ()).isEqualTo (204 );
839
+
840
+ qm .getPersistenceManager ().evictAll ();
841
+ List <Tag > tagsA = projectA .getTags ();
842
+ assertThat (tagsA ).satisfiesExactlyInAnyOrder ( projectTag -> assertThat (projectTag .getName ()).isEqualTo ("foo" ),
843
+ projectTag -> assertThat (projectTag .getName ()).isEqualTo ("bar" ));
844
+ }
845
+
816
846
@ Test
817
847
public void untagProjectsTest () {
818
848
initializeWithPermissions (Permissions .PORTFOLIO_MANAGEMENT );
0 commit comments