@@ -531,8 +531,9 @@ public void testProjectsDelta() {
531531 .metadata (Metadata .builder (state0 .metadata ()).put (ReservedStateMetadata .builder ("test" ).build ()))
532532 .build ();
533533 ClusterChangedEvent event = new ClusterChangedEvent ("test" , state1 , state0 );
534- assertTrue (event .projectDelta ().hasNoChange ());
535- assertThat (event .projectDelta ().common (), equalTo (Set .of (ProjectId .DEFAULT )));
534+ assertThat (event .addedProjects (), empty ());
535+ assertThat (event .removedProjects (), empty ());
536+ assertThat (event .commonProjects (), equalTo (Set .of (ProjectId .DEFAULT )));
536537
537538 // Add projects
538539 final List <ProjectId > projectIds = randomList (1 , 5 , ESTestCase ::randomUniqueProjectId );
@@ -542,9 +543,9 @@ public void testProjectsDelta() {
542543 }
543544 final var state2 = ClusterState .builder (state1 ).metadata (metadataBuilder .build ()).build ();
544545 event = new ClusterChangedEvent ("test" , state2 , state1 );
545- assertThat (event .projectDelta (). added (), containsInAnyOrder (projectIds .toArray ()));
546- assertThat (event .projectDelta (). removed (), empty ());
547- assertThat (event .projectDelta (). common (), equalTo (Set .of (ProjectId .DEFAULT )));
546+ assertThat (event .addedProjects (), containsInAnyOrder (projectIds .toArray ()));
547+ assertThat (event .removedProjects (), empty ());
548+ assertThat (event .commonProjects (), equalTo (Set .of (ProjectId .DEFAULT )));
548549
549550 // Add more projects and delete one
550551 final var removedProjectIds = randomNonEmptySubsetOf (projectIds );
@@ -562,31 +563,38 @@ public void testProjectsDelta() {
562563 final var state3 = ClusterState .builder (state2 ).metadata (metadataBuilder .build ()).routingTable (routingTableBuilder .build ()).build ();
563564
564565 event = new ClusterChangedEvent ("test" , state3 , state2 );
565- assertThat (event .projectDelta (). added (), containsInAnyOrder (moreProjectIds .toArray ()));
566- assertThat (event .projectDelta (). removed (), containsInAnyOrder (removedProjectIds .toArray ()));
566+ assertThat (event .addedProjects (), containsInAnyOrder (moreProjectIds .toArray ()));
567+ assertThat (event .removedProjects (), containsInAnyOrder (removedProjectIds .toArray ()));
567568 assertThat (
568- event .projectDelta (). common (),
569+ event .commonProjects (),
569570 equalTo (Sets .union (Sets .difference (Set .copyOf (projectIds ), Set .copyOf (removedProjectIds )), Set .of (ProjectId .DEFAULT )))
570571 );
571572
573+ // An update without project membership changes
574+ final var state4 = ClusterState .builder (state3 ).version (state3 .version () + 1 ).build ();
575+ event = new ClusterChangedEvent ("test" , state4 , state3 );
576+ assertThat (event .addedProjects (), empty ());
577+ assertThat (event .removedProjects (), empty ());
578+ assertThat (event .commonProjects (), equalTo (state4 .metadata ().projects ().keySet ()));
579+
572580 // Remove all projects
573- final List <ProjectId > remainingProjects = state3 .metadata ()
581+ final List <ProjectId > remainingProjects = state4 .metadata ()
574582 .projects ()
575583 .keySet ()
576584 .stream ()
577585 .filter (projectId -> ProjectId .DEFAULT .equals (projectId ) == false )
578586 .toList ();
579- metadataBuilder = Metadata .builder (state3 .metadata ());
580- routingTableBuilder = GlobalRoutingTable .builder (state3 .globalRoutingTable ());
587+ metadataBuilder = Metadata .builder (state4 .metadata ());
588+ routingTableBuilder = GlobalRoutingTable .builder (state4 .globalRoutingTable ());
581589 for (ProjectId projectId : remainingProjects ) {
582590 metadataBuilder .removeProject (projectId );
583591 routingTableBuilder .removeProject (projectId );
584592 }
585- final var state4 = ClusterState .builder (state3 ).metadata (metadataBuilder .build ()).routingTable (routingTableBuilder .build ()).build ();
586- event = new ClusterChangedEvent ("test" , state4 , state3 );
587- assertThat (event .projectDelta (). added (), empty ());
588- assertThat (event .projectDelta (). removed (), containsInAnyOrder (remainingProjects .toArray ()));
589- assertThat (event .projectDelta (). common (), equalTo (Set .of (ProjectId .DEFAULT )));
593+ final var state5 = ClusterState .builder (state4 ).metadata (metadataBuilder .build ()).routingTable (routingTableBuilder .build ()).build ();
594+ event = new ClusterChangedEvent ("test" , state5 , state4 );
595+ assertThat (event .addedProjects (), empty ());
596+ assertThat (event .removedProjects (), containsInAnyOrder (remainingProjects .toArray ()));
597+ assertThat (event .commonProjects (), equalTo (Set .of (ProjectId .DEFAULT )));
590598 }
591599
592600 private static class CustomClusterMetadata2 extends TestClusterCustomMetadata {
0 commit comments