Skip to content

Commit 7eca517

Browse files
committed
Improve integration tests
Signed-off-by: Dmitry Sulman <[email protected]>
1 parent 4394496 commit 7eca517

File tree

2 files changed

+22
-1
lines changed

2 files changed

+22
-1
lines changed

logback-access-reactor-netty-spring-boot-starter/src/test/kotlin/io/github/dmitrysulman/logback/access/reactor/netty/autoconfigure/integration/EchoController.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package io.github.dmitrysulman.logback.access.reactor.netty.autoconfigure.integration
22

3+
import org.springframework.http.ResponseEntity
34
import org.springframework.web.bind.annotation.GetMapping
45
import org.springframework.web.bind.annotation.RequestParam
56
import org.springframework.web.bind.annotation.RestController
@@ -9,5 +10,5 @@ class EchoController {
910
@GetMapping("/get")
1011
fun getRequest(
1112
@RequestParam param: String,
12-
): String = param
13+
): ResponseEntity<String> = ResponseEntity.status(200).header("response_header", "response_header_value").body(param)
1314
}

logback-access-reactor-netty-spring-boot-starter/src/test/kotlin/io/github/dmitrysulman/logback/access/reactor/netty/autoconfigure/integration/IntegrationTests.kt

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,13 @@ package io.github.dmitrysulman.logback.access.reactor.netty.autoconfigure.integr
22

33
import io.github.dmitrysulman.logback.access.reactor.netty.EventCaptureAppender
44
import io.github.dmitrysulman.logback.access.reactor.netty.ReactorNettyAccessLogFactory
5+
import io.kotest.matchers.comparables.shouldBeGreaterThan
6+
import io.kotest.matchers.longs.shouldBeGreaterThanOrEqual
57
import io.kotest.matchers.shouldBe
68
import org.junit.jupiter.api.Test
79
import org.springframework.beans.factory.annotation.Autowired
810
import org.springframework.boot.test.context.SpringBootTest
11+
import org.springframework.boot.test.web.server.LocalServerPort
912
import org.springframework.test.web.reactive.server.WebTestClient
1013

1114
@SpringBootTest(
@@ -15,13 +18,16 @@ import org.springframework.test.web.reactive.server.WebTestClient
1518
class IntegrationTests(
1619
@Autowired private val webTestClient: WebTestClient,
1720
@Autowired private val reactorNettyAccessLogFactory: ReactorNettyAccessLogFactory,
21+
@LocalServerPort private val localServerPort: Int,
1822
) {
1923
@Test
2024
fun `smoke test`() {
25+
val now = System.currentTimeMillis()
2126
val value = "test"
2227
webTestClient
2328
.get()
2429
.uri("/get?param={param}", value)
30+
.header("request_header", "request_header_value")
2531
.exchange()
2632
.expectStatus()
2733
.isOk
@@ -33,5 +39,19 @@ class IntegrationTests(
3339
reactorNettyAccessLogFactory.accessContext.getAppender("CAPTURE") as EventCaptureAppender
3440

3541
eventCaptureAppender.list.size shouldBe 1
42+
val accessEvent = eventCaptureAppender.list.first()
43+
accessEvent.requestURL shouldBe "GET /get?param=$value HTTP/1.1"
44+
accessEvent.contentLength shouldBe value.length
45+
accessEvent.localPort shouldBe localServerPort
46+
accessEvent.requestURI shouldBe "/get"
47+
accessEvent.queryString shouldBe "?param=$value"
48+
accessEvent.protocol shouldBe "HTTP/1.1"
49+
accessEvent.method shouldBe "GET"
50+
accessEvent.statusCode shouldBe 200
51+
accessEvent.elapsedTime shouldBeGreaterThanOrEqual 0
52+
accessEvent.timeStamp shouldBeGreaterThan now
53+
accessEvent.remoteUser shouldBe "-"
54+
accessEvent.getRequestHeader("request_header") shouldBe "request_header_value"
55+
accessEvent.getResponseHeader("response_header") shouldBe "response_header_value"
3656
}
3757
}

0 commit comments

Comments
 (0)