123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778 |
- [[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:
- [tabs]
- ======
- Java::
- +
- [source,java,role="primary"]
- ----
- @ExtendWith(SpringExtension.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"]
- ----
- @ExtendWith(SpringExtension.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()
- }
- }
- ----
- ======
|