@@ -47,7 +47,8 @@ public void testLeaderElectingController() throws ApiException, InterruptedExcep
47
47
record .set (new LeaderElectionRecord ());
48
48
49
49
Semaphore apiClientSem = new Semaphore (0 );
50
- Semaphore controllerSem = new Semaphore (0 );
50
+ Semaphore controllerStartSem = new Semaphore (0 );
51
+ Semaphore controllerStopSem = new Semaphore (0 );
51
52
52
53
when (mockLock .identity ()).thenReturn ("foo" );
53
54
when (mockLock .get ())
@@ -74,15 +75,15 @@ public void testLeaderElectingController() throws ApiException, InterruptedExcep
74
75
75
76
doAnswer (
76
77
invocationOnMock -> {
77
- controllerSem .release ();
78
+ controllerStartSem .release ();
78
79
return null ;
79
80
})
80
81
.when (mockController )
81
82
.run ();
82
83
83
84
doAnswer (
84
85
invocationOnMock -> {
85
- controllerSem .release ();
86
+ controllerStopSem .release ();
86
87
return null ;
87
88
})
88
89
.when (mockController )
@@ -101,12 +102,13 @@ public void testLeaderElectingController() throws ApiException, InterruptedExcep
101
102
Thread controllerThread = new Thread (leaderElectingController ::run );
102
103
controllerThread .start ();
103
104
apiClientSem .acquire (2 );
105
+ controllerStartSem .acquire (1 );
104
106
controllerThread .interrupt ();
105
107
106
108
verify (mockLock , times (1 )).create (any ());
107
109
verify (mockLock , atLeastOnce ()).update (any ());
108
110
109
- controllerSem .acquire (2 );
111
+ controllerStopSem .acquire (1 );
110
112
verify (mockController , times (1 )).run ();
111
113
verify (mockController , times (1 )).shutdown ();
112
114
}
0 commit comments