79 lines
2.0 KiB
Plaintext
79 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] by using the same setup and annotations that we used in xref:servlet/test/method.adoc#test-method[Testing Method Security].
|
|
The following minimal sample shows 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()
|
|
}
|
|
}
|
|
----
|
|
======
|