mirror of
				https://github.com/spring-projects/spring-security.git
				synced 2025-10-31 06:38:42 +00:00 
			
		
		
		
	
		
			
	
	
		
			76 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
		
		
			
		
	
	
			76 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
|  | [[test-erms]] | ||
|  | = Testing Method Security | ||
|  | 
 | ||
|  | For example, we can test our example from xref:reactive/authorization/method.adoc#jc-erms[EnableReactiveMethodSecurity] using the same setup and annotations we did in xref:servlet/test/method.adoc#test-method[Testing Method Security]. | ||
|  | Here is a minimal sample of what we can do: | ||
|  | 
 | ||
|  | ==== | ||
|  | .Java | ||
|  | [source,java,role="primary"] | ||
|  | ---- | ||
|  | @RunWith(SpringRunner.class) | ||
|  | @ContextConfiguration(classes = HelloWebfluxMethodApplication.class) | ||
|  | public class HelloWorldMessageServiceTests { | ||
|  | 	@Autowired | ||
|  | 	HelloWorldMessageService messages; | ||
|  | 
 | ||
|  | 	@Test | ||
|  | 	public void messagesWhenNotAuthenticatedThenDenied() { | ||
|  | 		StepVerifier.create(this.messages.findMessage()) | ||
|  | 			.expectError(AccessDeniedException.class) | ||
|  | 			.verify(); | ||
|  | 	} | ||
|  | 
 | ||
|  | 	@Test | ||
|  | 	@WithMockUser | ||
|  | 	public void messagesWhenUserThenDenied() { | ||
|  | 		StepVerifier.create(this.messages.findMessage()) | ||
|  | 			.expectError(AccessDeniedException.class) | ||
|  | 			.verify(); | ||
|  | 	} | ||
|  | 
 | ||
|  | 	@Test | ||
|  | 	@WithMockUser(roles = "ADMIN") | ||
|  | 	public void messagesWhenAdminThenOk() { | ||
|  | 		StepVerifier.create(this.messages.findMessage()) | ||
|  | 			.expectNext("Hello World!") | ||
|  | 			.verifyComplete(); | ||
|  | 	} | ||
|  | } | ||
|  | ---- | ||
|  | 
 | ||
|  | .Kotlin | ||
|  | [source,kotlin,role="secondary"] | ||
|  | ---- | ||
|  | @RunWith(SpringRunner::class) | ||
|  | @ContextConfiguration(classes = [HelloWebfluxMethodApplication::class]) | ||
|  | class HelloWorldMessageServiceTests { | ||
|  |     @Autowired | ||
|  |     lateinit var messages: HelloWorldMessageService | ||
|  | 
 | ||
|  |     @Test | ||
|  |     fun messagesWhenNotAuthenticatedThenDenied() { | ||
|  |         StepVerifier.create(messages.findMessage()) | ||
|  |             .expectError(AccessDeniedException::class.java) | ||
|  |             .verify() | ||
|  |     } | ||
|  | 
 | ||
|  |     @Test | ||
|  |     @WithMockUser | ||
|  |     fun messagesWhenUserThenDenied() { | ||
|  |         StepVerifier.create(messages.findMessage()) | ||
|  |             .expectError(AccessDeniedException::class.java) | ||
|  |             .verify() | ||
|  |     } | ||
|  | 
 | ||
|  |     @Test | ||
|  |     @WithMockUser(roles = ["ADMIN"]) | ||
|  |     fun messagesWhenAdminThenOk() { | ||
|  |         StepVerifier.create(messages.findMessage()) | ||
|  |             .expectNext("Hello World!") | ||
|  |             .verifyComplete() | ||
|  |     } | ||
|  | } | ||
|  | ---- | ||
|  | ==== |