@Test public void testExceptionInRemoveListenerIsWrapped() throws Exception { BlobStoreConfigurationListener listener = EasyMock.createMock("listener", BlobStoreConfigurationListener.class); BlobStoreInfo goodInfo = prepForRemove(); this.config.addBlobStoreListener(listener); GeoWebCacheException ex = new GeoWebCacheException("TEST"); listener.handleRemoveBlobStore(goodInfo); EasyMock.expectLastCall().andThrow(ex); EasyMock.replay(listener); exception.expect( allOf( instanceOf(ConfigurationPersistenceException.class), hasProperty("cause", sameInstance(ex)))); this.removeInfo(this.config, "test"); }
@Test public void testExceptionInRemoveListenerDoesntBlockOtherListeners() throws Exception { BlobStoreConfigurationListener listener1 = EasyMock.createMock("listener", BlobStoreConfigurationListener.class); BlobStoreConfigurationListener listener2 = EasyMock.createMock("listener", BlobStoreConfigurationListener.class); BlobStoreInfo goodInfo = prepForRemove(); this.config.addBlobStoreListener(listener1); this.config.addBlobStoreListener(listener2); GeoWebCacheException ex1 = new GeoWebCacheException("TEST1"); listener1.handleRemoveBlobStore(goodInfo); EasyMock.expectLastCall().andThrow(ex1); listener2.handleRemoveBlobStore(goodInfo); EasyMock.expectLastCall().once(); EasyMock.replay(listener1, listener2); try { this.removeInfo(this.config, "test"); } catch (ConfigurationPersistenceException ex3) { // Do Nothing } EasyMock.verify(listener2); }
@Test public void testExceptionInRemoveListenerNotRolledBack() throws Exception { BlobStoreConfigurationListener listener = EasyMock.createMock("listener", BlobStoreConfigurationListener.class); BlobStoreInfo goodInfo = prepForRemove(); this.config.addBlobStoreListener(listener); GeoWebCacheException ex = new GeoWebCacheException("TEST"); listener.handleRemoveBlobStore(goodInfo); EasyMock.expectLastCall().andThrow(ex); EasyMock.replay(listener); try { this.removeInfo(this.config, "test"); } catch (ConfigurationPersistenceException ex2) { // Do Nothing } assertThat(this.getInfo(config, "test"), notPresent()); }
BlobStoreConfigurationListener listener2 = EasyMock.createMock("listener", BlobStoreConfigurationListener.class); BlobStoreInfo goodInfo = prepForRemove(); this.config.addBlobStoreListener(listener1); this.config.addBlobStoreListener(listener2);