Add comprehensive tests of Kotlin extensions
This commit also removes extensions hidden by Java API (varargs).
This commit is contained in:
@@ -0,0 +1,38 @@
|
||||
package org.springframework.web.reactive.function
|
||||
|
||||
import org.junit.Assert.assertNotNull
|
||||
import org.junit.Test
|
||||
import org.junit.runner.RunWith
|
||||
import org.mockito.junit.MockitoJUnitRunner
|
||||
|
||||
|
||||
/**
|
||||
* Tests for [BodyExtractors] Kotlin extensions
|
||||
*
|
||||
* @author Sebastien Deleuze
|
||||
*/
|
||||
@RunWith(MockitoJUnitRunner::class)
|
||||
class BodyExtractorsExtensionsTests {
|
||||
|
||||
@Test
|
||||
fun `toMono with KClass`() {
|
||||
assertNotNull(toMono(Foo::class))
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `toMono with reified type parameter`() {
|
||||
assertNotNull(toMono<Foo>())
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `toFlux with KClass`() {
|
||||
assertNotNull(toFlux(Foo::class))
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `toFlux with reified type parameter`() {
|
||||
assertNotNull(toFlux<Foo>())
|
||||
}
|
||||
|
||||
class Foo
|
||||
}
|
||||
@@ -0,0 +1,32 @@
|
||||
package org.springframework.web.reactive.function
|
||||
|
||||
import com.nhaarman.mockito_kotlin.mock
|
||||
import org.junit.Assert.assertNotNull
|
||||
import org.junit.Test
|
||||
import org.junit.runner.RunWith
|
||||
import org.mockito.junit.MockitoJUnitRunner
|
||||
import org.reactivestreams.Publisher
|
||||
|
||||
|
||||
/**
|
||||
* Tests for [BodyExtractors] Kotlin extensions
|
||||
*
|
||||
* @author Sebastien Deleuze
|
||||
*/
|
||||
@RunWith(MockitoJUnitRunner::class)
|
||||
class BodyInsertersExtensionsTests {
|
||||
|
||||
@Test
|
||||
fun `fromPublisher with reified type parameters`() {
|
||||
val publisher = mock<Publisher<Foo>>()
|
||||
assertNotNull(fromPublisher(publisher))
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `fromServerSentEvents with reified type parameters`() {
|
||||
val publisher = mock<Publisher<Foo>>()
|
||||
assertNotNull(fromServerSentEvents(publisher))
|
||||
}
|
||||
|
||||
class Foo
|
||||
}
|
||||
@@ -0,0 +1,47 @@
|
||||
package org.springframework.web.reactive.function.client
|
||||
|
||||
import org.junit.Test
|
||||
import org.junit.runner.RunWith
|
||||
import org.mockito.Answers
|
||||
import org.mockito.Mock
|
||||
import org.mockito.Mockito
|
||||
import org.mockito.Mockito.verify
|
||||
import org.mockito.junit.MockitoJUnitRunner
|
||||
|
||||
/**
|
||||
* Mock object based tests for [ClientResponse] Kotlin extensions
|
||||
*
|
||||
* @author Sebastien Deleuze
|
||||
*/
|
||||
@RunWith(MockitoJUnitRunner::class)
|
||||
class ClientResponseExtensionsTests {
|
||||
|
||||
@Mock(answer = Answers.RETURNS_MOCKS)
|
||||
lateinit var response: ClientResponse
|
||||
|
||||
@Test
|
||||
fun `bodyToMono with KClass`() {
|
||||
response.bodyToMono(Foo::class)
|
||||
verify(response, Mockito.times(1)).bodyToMono(Foo::class.java)
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `bodyToMono with reified type parameters`() {
|
||||
response.bodyToMono<Foo>()
|
||||
verify(response, Mockito.times(1)).bodyToMono(Foo::class.java)
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `bodyToFlux with KClass`() {
|
||||
response.bodyToFlux(Foo::class)
|
||||
verify(response, Mockito.times(1)).bodyToFlux(Foo::class.java)
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `bodyToFlux with reified type parameters`() {
|
||||
response.bodyToFlux<Foo>()
|
||||
verify(response, Mockito.times(1)).bodyToFlux(Foo::class.java)
|
||||
}
|
||||
|
||||
class Foo
|
||||
}
|
||||
@@ -0,0 +1,84 @@
|
||||
package org.springframework.web.reactive.function.client
|
||||
|
||||
import com.nhaarman.mockito_kotlin.mock
|
||||
import org.junit.Test
|
||||
import org.junit.runner.RunWith
|
||||
import org.mockito.Answers
|
||||
import org.mockito.Mock
|
||||
import org.mockito.Mockito
|
||||
import org.mockito.Mockito.verify
|
||||
import org.mockito.junit.MockitoJUnitRunner
|
||||
import org.reactivestreams.Publisher
|
||||
|
||||
/**
|
||||
* Mock object based tests for [WebClient] Kotlin extensions
|
||||
*
|
||||
* @author Sebastien Deleuze
|
||||
*/
|
||||
@RunWith(MockitoJUnitRunner::class)
|
||||
class WebClientExtensionsTests {
|
||||
|
||||
@Mock(answer = Answers.RETURNS_MOCKS)
|
||||
lateinit var requestBodySpec: WebClient.RequestBodySpec
|
||||
|
||||
@Mock(answer = Answers.RETURNS_MOCKS)
|
||||
lateinit var responseSpec: WebClient.ResponseSpec
|
||||
|
||||
|
||||
@Test
|
||||
fun `RequestBodySpec#body with Publisher and reified type parameters`() {
|
||||
val body = mock<Publisher<Foo>>()
|
||||
requestBodySpec.body(body)
|
||||
verify(requestBodySpec, Mockito.times(1)).body(body, Foo::class.java)
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `ResponseSpec#bodyToMono with KClass`() {
|
||||
responseSpec.bodyToMono(Foo::class)
|
||||
verify(responseSpec, Mockito.times(1)).bodyToMono(Foo::class.java)
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `ResponseSpec#bodyToMono with reified type parameters`() {
|
||||
responseSpec.bodyToMono<Foo>()
|
||||
verify(responseSpec, Mockito.times(1)).bodyToMono(Foo::class.java)
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `ResponseSpec#bodyToFlux with KClass`() {
|
||||
responseSpec.bodyToFlux(Foo::class)
|
||||
verify(responseSpec, Mockito.times(1)).bodyToFlux(Foo::class.java)
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `ResponseSpec#bodyToFlux with reified type parameters`() {
|
||||
responseSpec.bodyToFlux<Foo>()
|
||||
verify(responseSpec, Mockito.times(1)).bodyToFlux(Foo::class.java)
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `ResponseSpec#toEntity with KClass`() {
|
||||
responseSpec.toEntity(Foo::class)
|
||||
verify(responseSpec, Mockito.times(1)).toEntity(Foo::class.java)
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `ResponseSpec#toEntity with reified type parameters`() {
|
||||
responseSpec.toEntity<Foo>()
|
||||
verify(responseSpec, Mockito.times(1)).toEntity(Foo::class.java)
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `ResponseSpec#toEntityList with KClass`() {
|
||||
responseSpec.toEntityList(Foo::class)
|
||||
verify(responseSpec, Mockito.times(1)).toEntityList(Foo::class.java)
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `ResponseSpec#toEntityList with reified type parameters`() {
|
||||
responseSpec.toEntityList<Foo>()
|
||||
verify(responseSpec, Mockito.times(1)).toEntityList(Foo::class.java)
|
||||
}
|
||||
|
||||
class Foo
|
||||
}
|
||||
@@ -27,6 +27,11 @@ import reactor.core.publisher.Mono
|
||||
import reactor.test.StepVerifier
|
||||
import java.net.URI
|
||||
|
||||
/**
|
||||
* Tests for [RouterFunction] Kotlin DSL
|
||||
*
|
||||
* @author Sebastien Deleuze
|
||||
*/
|
||||
class RouterFunctionExtensionsTests {
|
||||
|
||||
@Test
|
||||
|
||||
@@ -0,0 +1,50 @@
|
||||
package org.springframework.web.reactive.function.client
|
||||
|
||||
import org.junit.Test
|
||||
import org.junit.runner.RunWith
|
||||
import org.mockito.Answers
|
||||
import org.mockito.Mock
|
||||
import org.mockito.Mockito
|
||||
import org.mockito.Mockito.verify
|
||||
import org.mockito.junit.MockitoJUnitRunner
|
||||
import org.springframework.web.reactive.function.server.ServerRequest
|
||||
import org.springframework.web.reactive.function.server.bodyToFlux
|
||||
import org.springframework.web.reactive.function.server.bodyToMono
|
||||
|
||||
/**
|
||||
* Mock object based tests for [ServerRequest] Kotlin extensions
|
||||
*
|
||||
* @author Sebastien Deleuze
|
||||
*/
|
||||
@RunWith(MockitoJUnitRunner::class)
|
||||
class ServerRequestExtensionsTests {
|
||||
|
||||
@Mock(answer = Answers.RETURNS_MOCKS)
|
||||
lateinit var request: ServerRequest
|
||||
|
||||
@Test
|
||||
fun `bodyToMono with KClass`() {
|
||||
request.bodyToMono(Foo::class)
|
||||
verify(request, Mockito.times(1)).bodyToMono(Foo::class.java)
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `bodyToMono with reified type parameters`() {
|
||||
request.bodyToMono<Foo>()
|
||||
verify(request, Mockito.times(1)).bodyToMono(Foo::class.java)
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `bodyToFlux with KClass`() {
|
||||
request.bodyToFlux(Foo::class)
|
||||
verify(request, Mockito.times(1)).bodyToFlux(Foo::class.java)
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `bodyToFlux with reified type parameters`() {
|
||||
request.bodyToFlux<Foo>()
|
||||
verify(request, Mockito.times(1)).bodyToFlux(Foo::class.java)
|
||||
}
|
||||
|
||||
class Foo
|
||||
}
|
||||
@@ -0,0 +1,32 @@
|
||||
package org.springframework.web.reactive.function.server
|
||||
|
||||
import com.nhaarman.mockito_kotlin.mock
|
||||
import org.junit.Test
|
||||
import org.junit.runner.RunWith
|
||||
import org.mockito.Answers
|
||||
import org.mockito.Mock
|
||||
import org.mockito.Mockito
|
||||
import org.mockito.junit.MockitoJUnitRunner
|
||||
import org.reactivestreams.Publisher
|
||||
|
||||
/**
|
||||
* Mock object based tests for [ServerResponse] Kotlin extensions
|
||||
*
|
||||
* @author Sebastien Deleuze
|
||||
*/
|
||||
@RunWith(MockitoJUnitRunner::class)
|
||||
class ServerResponseExtensionsTests {
|
||||
|
||||
@Mock(answer = Answers.RETURNS_MOCKS)
|
||||
lateinit var bodyBuilder: ServerResponse.BodyBuilder
|
||||
|
||||
|
||||
@Test
|
||||
fun `BodyBuilder#body with Publisher and reified type parameters`() {
|
||||
val body = mock<Publisher<Foo>>()
|
||||
bodyBuilder.body(body)
|
||||
Mockito.verify(bodyBuilder, Mockito.times(1)).body(body, Foo::class.java)
|
||||
}
|
||||
|
||||
class Foo
|
||||
}
|
||||
Reference in New Issue
Block a user