Skip to content

Commit c0270f9

Browse files
committed
refaktorer AivenKafkaErrorHandlerTest
1 parent d4d8e71 commit c0270f9

File tree

1 file changed

+72
-86
lines changed

1 file changed

+72
-86
lines changed

src/test/kotlin/no/nav/helse/flex/config/kafka/AivenKafkaErrorHandlerTest.kt

Lines changed: 72 additions & 86 deletions
Original file line numberDiff line numberDiff line change
@@ -1,156 +1,142 @@
11
package no.nav.helse.flex.config.kafka
22

3-
import ch.qos.logback.classic.spi.ILoggingEvent
4-
import ch.qos.logback.core.read.ListAppender
3+
import no.nav.helse.flex.testutils.fangLogger
54
import no.nav.helse.flex.utils.LogMarker
65
import no.nav.helse.flex.utils.logger
76
import org.amshove.kluent.*
87
import org.apache.kafka.clients.consumer.ConsumerRecord
9-
import org.junit.jupiter.api.AfterEach
108
import org.junit.jupiter.api.Nested
119
import org.junit.jupiter.api.Test
12-
import org.slf4j.Marker
1310
import org.springframework.kafka.listener.ListenerExecutionFailedException
14-
import ch.qos.logback.classic.Logger as LogbackLogger
1511

1612
class AivenKafkaErrorHandlerTest {
17-
private val logger = AivenKafkaErrorHandler.logger()
18-
private val logListAppender =
19-
ListAppender<ILoggingEvent>()
20-
.also {
21-
(logger as? LogbackLogger)?.addAppender(it)
22-
}.apply {
23-
start()
24-
}
25-
26-
@AfterEach
27-
fun afterEach() {
28-
logListAppender.list.clear()
29-
}
30-
3113
@Test
3214
fun `logger exception`() {
33-
AivenKafkaErrorHandler.loggFeilende(
34-
thrownException = RuntimeException(),
35-
records = mutableListOf(Testdata.lagConsumerRecord()),
36-
)
37-
logListAppender.eventerUtenMarkers().shouldHaveSingleItem()
15+
fangLogger(AivenKafkaErrorHandler.logger()) {
16+
AivenKafkaErrorHandler.loggFeilende(
17+
thrownException = RuntimeException(),
18+
records = mutableListOf(Testdata.lagConsumerRecord()),
19+
)
20+
}.logEventerUtenMarkers().shouldHaveSingleItem()
3821
}
3922

4023
@Test
4124
fun `logger 'message' kun til secure logs`() {
42-
AivenKafkaErrorHandler.loggFeilende(
43-
thrownException = RuntimeException("Feil melding"),
44-
records = mutableListOf(Testdata.lagConsumerRecord()),
45-
)
46-
logListAppender.eventerUtenMarkers().first().run {
47-
message shouldNotContain "Feil melding"
48-
}
49-
logListAppender.eventerMedMarker(LogMarker.SECURE_LOGS).first().run {
50-
message shouldContain "Feil melding"
25+
fangLogger(AivenKafkaErrorHandler.logger()) {
26+
AivenKafkaErrorHandler.loggFeilende(
27+
thrownException = RuntimeException("Feil melding"),
28+
records = mutableListOf(Testdata.lagConsumerRecord()),
29+
)
30+
}.run {
31+
logEventerUtenMarkers().first().run {
32+
message shouldNotContain "Feil melding"
33+
}
34+
logEventerMedMarker(LogMarker.SECURE_LOGS).first().run {
35+
message shouldContain "Feil melding"
36+
}
5137
}
5238
}
5339

5440
@Test
5541
fun `logger også til secure logs`() {
56-
AivenKafkaErrorHandler.loggFeilende(
57-
thrownException = RuntimeException(),
58-
records = mutableListOf(Testdata.lagConsumerRecord()),
59-
)
60-
logListAppender.eventerMedMarker(LogMarker.SECURE_LOGS).shouldHaveSingleItem()
42+
fangLogger(AivenKafkaErrorHandler.logger()) {
43+
AivenKafkaErrorHandler.loggFeilende(
44+
thrownException = RuntimeException(),
45+
records = mutableListOf(Testdata.lagConsumerRecord()),
46+
)
47+
}.logEventerMedMarker(LogMarker.SECURE_LOGS).shouldHaveSingleItem()
6148
}
6249

6350
@Nested
6451
inner class HandterKafkaErrorHandlerException {
6552
@Test
6653
fun `logger insensitiveMessage`() {
67-
AivenKafkaErrorHandler.loggFeilende(
68-
thrownException = KafkaErrorHandlerException(insensitiveMessage = "Usikker melding"),
69-
records = mutableListOf(Testdata.lagConsumerRecord()),
70-
)
71-
logListAppender.eventerUtenMarkers().first().run {
54+
fangLogger(AivenKafkaErrorHandler.logger()) {
55+
AivenKafkaErrorHandler.loggFeilende(
56+
thrownException = KafkaErrorHandlerException(insensitiveMessage = "Usikker melding"),
57+
records = mutableListOf(Testdata.lagConsumerRecord()),
58+
)
59+
}.logEventerUtenMarkers().first().run {
7260
message shouldStartWith "Usikker melding"
7361
}
7462
}
7563

7664
@Test
7765
fun `logger kjede av insensitiveMessage`() {
78-
AivenKafkaErrorHandler.loggFeilende(
79-
thrownException =
80-
KafkaErrorHandlerException(
81-
insensitiveMessage = "Første melding",
82-
cause =
83-
KafkaErrorHandlerException(
84-
insensitiveMessage = "Annen melding",
85-
),
86-
),
87-
records = mutableListOf(Testdata.lagConsumerRecord()),
88-
)
89-
logListAppender.eventerUtenMarkers().first().run {
66+
fangLogger(AivenKafkaErrorHandler.logger()) {
67+
AivenKafkaErrorHandler.loggFeilende(
68+
thrownException =
69+
KafkaErrorHandlerException(
70+
insensitiveMessage = "Første melding",
71+
cause =
72+
KafkaErrorHandlerException(
73+
insensitiveMessage = "Annen melding",
74+
),
75+
),
76+
records = mutableListOf(Testdata.lagConsumerRecord()),
77+
)
78+
}.logEventerUtenMarkers().first().run {
9079
message shouldContain "Første melding"
9180
message shouldContain "Annen melding"
9281
}
9382
}
9483

9584
@Test
9685
fun `logger årsak type`() {
97-
AivenKafkaErrorHandler.loggFeilende(
98-
thrownException = KafkaErrorHandlerException(cause = RuntimeException()),
99-
records = mutableListOf(Testdata.lagConsumerRecord()),
100-
)
101-
logListAppender.eventerUtenMarkers().first().run {
86+
fangLogger(AivenKafkaErrorHandler.logger()) {
87+
AivenKafkaErrorHandler.loggFeilende(
88+
thrownException = KafkaErrorHandlerException(cause = RuntimeException()),
89+
records = mutableListOf(Testdata.lagConsumerRecord()),
90+
)
91+
}.logEventerUtenMarkers().first().run {
10292
message shouldNotContain "KafkaErrorHandlerException"
10393
message shouldContain "RuntimeException"
10494
}
10595
}
10696

10797
@Test
10898
fun `logger årsak type neders i kjede`() {
109-
AivenKafkaErrorHandler.loggFeilende(
110-
thrownException =
111-
KafkaErrorHandlerException(
112-
cause =
113-
KafkaErrorHandlerException(cause = RuntimeException()),
114-
),
115-
records = mutableListOf(Testdata.lagConsumerRecord()),
116-
)
117-
logListAppender.eventerUtenMarkers().first().run {
99+
fangLogger(AivenKafkaErrorHandler.logger()) {
100+
AivenKafkaErrorHandler.loggFeilende(
101+
thrownException =
102+
KafkaErrorHandlerException(
103+
cause =
104+
KafkaErrorHandlerException(cause = RuntimeException()),
105+
),
106+
records = mutableListOf(Testdata.lagConsumerRecord()),
107+
)
108+
}.logEventerUtenMarkers().first().run {
118109
message shouldNotContain "KafkaErrorHandlerException"
119110
message shouldContain "RuntimeException"
120111
}
121112
}
122113

123114
@Test
124115
fun `logger årsak melding til secure logs`() {
125-
AivenKafkaErrorHandler.loggFeilende(
126-
thrownException = KafkaErrorHandlerException(cause = RuntimeException("Årsak melding")),
127-
records = mutableListOf(Testdata.lagConsumerRecord()),
128-
)
129-
logListAppender.eventerMedMarker(LogMarker.SECURE_LOGS).first().run {
116+
fangLogger(AivenKafkaErrorHandler.logger()) {
117+
AivenKafkaErrorHandler.loggFeilende(
118+
thrownException = KafkaErrorHandlerException(cause = RuntimeException("Årsak melding")),
119+
records = mutableListOf(Testdata.lagConsumerRecord()),
120+
)
121+
}.logEventerMedMarker(LogMarker.SECURE_LOGS).first().run {
130122
throwableProxy.message shouldBeEqualTo "Årsak melding"
131123
}
132124
}
133125

134126
@Test
135127
fun `logger kun årsak av ListenerExecutionFailedException`() {
136-
AivenKafkaErrorHandler.loggFeilende(
137-
thrownException = ListenerExecutionFailedException("", RuntimeException("Årsak melding")),
138-
records = mutableListOf(Testdata.lagConsumerRecord()),
139-
)
140-
logListAppender.eventerUtenMarkers().first().run {
128+
fangLogger(AivenKafkaErrorHandler.logger()) {
129+
AivenKafkaErrorHandler.loggFeilende(
130+
thrownException = ListenerExecutionFailedException("", RuntimeException("Årsak melding")),
131+
records = mutableListOf(Testdata.lagConsumerRecord()),
132+
)
133+
}.logEventerUtenMarkers().first().run {
141134
message shouldNotContain "ListenerExecutionFailedException"
142135
message shouldContain "RuntimeException"
143136
}
144137
}
145138
}
146139

147-
private fun ListAppender<ILoggingEvent>.eventerUtenMarkers(): List<ILoggingEvent> = this.list.filter { it.markerList.isNullOrEmpty() }
148-
149-
private fun ListAppender<ILoggingEvent>.eventerMedMarker(marker: Marker): List<ILoggingEvent> =
150-
this.list.filter {
151-
it.markerList != null && marker in it.markerList
152-
}
153-
154140
private object Testdata {
155141
fun lagConsumerRecord(): ConsumerRecord<String, String> =
156142
ConsumerRecord(

0 commit comments

Comments
 (0)