@Test public void shouldNotAllowNewClientsWhenClosed() { // given LockClientStateHolder lockClientStateHolder = new LockClientStateHolder(); // when lockClientStateHolder.stopClient(); // then assertFalse( lockClientStateHolder.hasActiveClients() ); try { lockClientStateHolder.incrementActiveClients( new NoOpClient() ); fail( "Exception expected" ); } catch ( Exception e ) { assertThat( e, instanceOf( LockClientStoppedException.class ) ); } }
@Test public void shouldAllowIncrementDecrementClientsWhileNotClosed() { // given LockClientStateHolder lockClientStateHolder = new LockClientStateHolder(); // expect assertFalse( lockClientStateHolder.hasActiveClients() ); lockClientStateHolder.incrementActiveClients( new NoOpClient() ); assertTrue( lockClientStateHolder.hasActiveClients() ); lockClientStateHolder.incrementActiveClients( new NoOpClient() ); lockClientStateHolder.incrementActiveClients( new NoOpClient() ); lockClientStateHolder.decrementActiveClients(); lockClientStateHolder.decrementActiveClients(); lockClientStateHolder.decrementActiveClients(); assertFalse( lockClientStateHolder.hasActiveClients() ); }
@Test public void shouldBeAbleToDecrementActiveItemAndDetectWhenFree() { // given LockClientStateHolder lockClientStateHolder = new LockClientStateHolder(); // when lockClientStateHolder.incrementActiveClients(new NoOpClient()); lockClientStateHolder.incrementActiveClients(new NoOpClient()); lockClientStateHolder.decrementActiveClients(); lockClientStateHolder.incrementActiveClients(new NoOpClient()); // expect assertTrue( lockClientStateHolder.hasActiveClients() ); // and when lockClientStateHolder.stopClient(); // expect assertTrue( lockClientStateHolder.hasActiveClients() ); lockClientStateHolder.decrementActiveClients(); assertTrue( lockClientStateHolder.hasActiveClients() ); lockClientStateHolder.decrementActiveClients(); assertFalse( lockClientStateHolder.hasActiveClients() ); }
@Test public void shouldBeAbleToResetAndReuseClientState() { // given LockClientStateHolder lockClientStateHolder = new LockClientStateHolder(); // when lockClientStateHolder.incrementActiveClients( new NoOpClient() ); lockClientStateHolder.incrementActiveClients( new NoOpClient() ); lockClientStateHolder.decrementActiveClients(); // expect assertTrue(lockClientStateHolder.hasActiveClients()); // and when lockClientStateHolder.stopClient(); // expect assertTrue( lockClientStateHolder.hasActiveClients() ); assertTrue( lockClientStateHolder.isStopped() ); // and when lockClientStateHolder.reset(); // expect assertFalse( lockClientStateHolder.hasActiveClients() ); assertFalse( lockClientStateHolder.isStopped() ); // when lockClientStateHolder.incrementActiveClients( new NoOpClient() ); assertTrue( lockClientStateHolder.hasActiveClients() ); assertFalse( lockClientStateHolder.isStopped() ); }