@Test public void removeConfigurersWhenMultipleConfigurersThenConfigurersRemoved() throws Exception { DelegateSecurityConfigurer configurer1 = new DelegateSecurityConfigurer(); DelegateSecurityConfigurer configurer2 = new DelegateSecurityConfigurer(); TestConfiguredSecurityBuilder builder = new TestConfiguredSecurityBuilder(mock(ObjectPostProcessor.class), true); builder.apply(configurer1); builder.apply(configurer2); List<DelegateSecurityConfigurer> removedConfigurers = builder.removeConfigurers(DelegateSecurityConfigurer.class); assertThat(removedConfigurers).hasSize(2); assertThat(removedConfigurers).containsExactly(configurer1, configurer2); assertThat(builder.getConfigurers(DelegateSecurityConfigurer.class)).isEmpty(); }
@Test public void getConfigurersWhenMultipleConfigurersThenConfigurersReturned() throws Exception { DelegateSecurityConfigurer configurer1 = new DelegateSecurityConfigurer(); DelegateSecurityConfigurer configurer2 = new DelegateSecurityConfigurer(); TestConfiguredSecurityBuilder builder = new TestConfiguredSecurityBuilder(mock(ObjectPostProcessor.class), true); builder.apply(configurer1); builder.apply(configurer2); List<DelegateSecurityConfigurer> configurers = builder.getConfigurers(DelegateSecurityConfigurer.class); assertThat(configurers).hasSize(2); assertThat(configurers).containsExactly(configurer1, configurer2); assertThat(builder.getConfigurers(DelegateSecurityConfigurer.class)).hasSize(2); }
@Test public void buildWhenConfigurerAppliesAnotherConfigurerThenObjectStillBuilds() throws Exception { DelegateSecurityConfigurer.CONFIGURER = mock(SecurityConfigurer.class); this.builder.apply(new DelegateSecurityConfigurer()); this.builder.build(); verify(DelegateSecurityConfigurer.CONFIGURER).init(this.builder); verify(DelegateSecurityConfigurer.CONFIGURER).configure(this.builder); }
@Test(expected = IllegalStateException.class) public void removeConfigurerWhenMultipleConfigurersThenThrowIllegalStateException() throws Exception { TestConfiguredSecurityBuilder builder = new TestConfiguredSecurityBuilder(mock(ObjectPostProcessor.class), true); builder.apply(new DelegateSecurityConfigurer()); builder.apply(new DelegateSecurityConfigurer()); builder.removeConfigurer(DelegateSecurityConfigurer.class); }
@Test(expected = IllegalStateException.class) public void getConfigurerWhenMultipleConfigurersThenThrowIllegalStateException() throws Exception { TestConfiguredSecurityBuilder builder = new TestConfiguredSecurityBuilder(mock(ObjectPostProcessor.class), true); builder.apply(new DelegateSecurityConfigurer()); builder.apply(new DelegateSecurityConfigurer()); builder.getConfigurer(DelegateSecurityConfigurer.class); }