@@ -5,21 +5,14 @@ import io.mockk.clearMocks
5
5
import io.mockk.every
6
6
import io.mockk.mockk
7
7
import io.mockk.verify
8
- import kotlinx.coroutines.isActive
9
8
import no.nav.syfo.trengeroppfolging.TrengerOppfolgingService
10
9
import no.nav.syfo.personstatus.db.getPersonOversiktStatusList
11
10
import no.nav.syfo.personstatus.domain.PersonOversiktStatus
12
- import no.nav.syfo.testutil.ExternalMockEnvironment
13
- import no.nav.syfo.testutil.UserConstants
14
- import no.nav.syfo.testutil.createPersonOversiktStatus
15
- import no.nav.syfo.testutil.dropData
11
+ import no.nav.syfo.testutil.*
16
12
import no.nav.syfo.testutil.generator.generateKafkaHuskelapp
17
13
import no.nav.syfo.testutil.generator.huskelappConsumerRecord
18
14
import no.nav.syfo.testutil.generator.huskelappTopicPartition
19
- import org.amshove.kluent.shouldBeEqualTo
20
- import org.amshove.kluent.shouldBeFalse
21
- import org.amshove.kluent.shouldBeNull
22
- import org.amshove.kluent.shouldBeTrue
15
+ import org.amshove.kluent.*
23
16
import org.apache.kafka.clients.consumer.ConsumerRecords
24
17
import org.apache.kafka.clients.consumer.KafkaConsumer
25
18
import org.spekframework.spek2.Spek
@@ -32,10 +25,14 @@ class TrengerOppfolgingConsumerSpek : Spek({
32
25
start()
33
26
34
27
val externalMockEnvironment = ExternalMockEnvironment .instance
28
+ val internalMockEnvironment = InternalMockEnvironment .instance
35
29
val database = externalMockEnvironment.database
36
30
37
31
val kafkaConsumerMock = mockk<KafkaConsumer <String , KafkaHuskelapp >>()
38
- val trengerOppfolgingService = TrengerOppfolgingService (database)
32
+ val trengerOppfolgingService = TrengerOppfolgingService (
33
+ database = database,
34
+ personBehandlendeEnhetService = internalMockEnvironment.personBehandlendeEnhetService
35
+ )
39
36
val trengerOppfolgingConsumer = TrengerOppfolgingConsumer (trengerOppfolgingService)
40
37
41
38
val frist = LocalDate .now().plusWeeks(1)
@@ -95,6 +92,70 @@ class TrengerOppfolgingConsumerSpek : Spek({
95
92
pPersonOversiktStatus.trengerOppfolging.shouldBeTrue()
96
93
pPersonOversiktStatus.trengerOppfolgingFrist.shouldBeNull()
97
94
}
95
+ it("updates PersonOversiktStatus tildeltEnhet for personident from kafka record with active huskelapp") {
96
+ val activeHuskelappNoFrist = generateKafkaHuskelapp(isActive = true, frist = null)
97
+ mockIncomingKafkaRecord(
98
+ kafkaRecord = activeHuskelappNoFrist,
99
+ kafkaConsumerMock = kafkaConsumerMock,
100
+ )
101
+
102
+ trengerOppfolgingConsumer.pollAndProcessRecords(
103
+ kafkaConsumer = kafkaConsumerMock,
104
+ )
105
+
106
+ verify(exactly = 1) {
107
+ kafkaConsumerMock.commitSync()
108
+ }
109
+
110
+ val pPersonOversiktStatusList =
111
+ database.connection.use { it.getPersonOversiktStatusList(UserConstants .ARBEIDSTAKER_FNR ) }
112
+ pPersonOversiktStatusList.size shouldBeEqualTo 1
113
+ val pPersonOversiktStatus = pPersonOversiktStatusList.first()
114
+ pPersonOversiktStatus.enhet.shouldNotBeNull()
115
+ }
116
+ it("does not update PersonOversiktStatus tildeltEnhet for personident from kafka record with inactive huskelapp") {
117
+ val inactiveHuskelappNoFrist = generateKafkaHuskelapp(isActive = false, frist = null)
118
+ mockIncomingKafkaRecord(
119
+ kafkaRecord = inactiveHuskelappNoFrist,
120
+ kafkaConsumerMock = kafkaConsumerMock,
121
+ )
122
+
123
+ trengerOppfolgingConsumer.pollAndProcessRecords(
124
+ kafkaConsumer = kafkaConsumerMock,
125
+ )
126
+
127
+ verify(exactly = 1) {
128
+ kafkaConsumerMock.commitSync()
129
+ }
130
+
131
+ val pPersonOversiktStatusList =
132
+ database.connection.use { it.getPersonOversiktStatusList(UserConstants .ARBEIDSTAKER_FNR ) }
133
+ pPersonOversiktStatusList.size shouldBeEqualTo 1
134
+ val pPersonOversiktStatus = pPersonOversiktStatusList.first()
135
+ pPersonOversiktStatus.enhet.shouldBeNull()
136
+ }
137
+ it("does not update PersonOversiktStatus tildeltEnhet for personident from kafka record with active huskelapp and failing call to behandlende enhet") {
138
+ val personIdent = UserConstants .ARBEIDSTAKER_ENHET_ERROR_PERSONIDENT .value
139
+ val activeHuskelappNoFrist = generateKafkaHuskelapp(isActive = true, frist = null, personIdent = personIdent)
140
+ mockIncomingKafkaRecord(
141
+ kafkaRecord = activeHuskelappNoFrist,
142
+ kafkaConsumerMock = kafkaConsumerMock,
143
+ )
144
+
145
+ trengerOppfolgingConsumer.pollAndProcessRecords(
146
+ kafkaConsumer = kafkaConsumerMock,
147
+ )
148
+
149
+ verify(exactly = 1) {
150
+ kafkaConsumerMock.commitSync()
151
+ }
152
+
153
+ val pPersonOversiktStatusList =
154
+ database.connection.use { it.getPersonOversiktStatusList(personIdent) }
155
+ pPersonOversiktStatusList.size shouldBeEqualTo 1
156
+ val pPersonOversiktStatus = pPersonOversiktStatusList.first()
157
+ pPersonOversiktStatus.enhet.shouldBeNull()
158
+ }
98
159
}
99
160
describe("existing PersonOversikStatus for personident") {
100
161
it("updates trenger_oppfolging and trenger_oppfolging_frist from kafka record with active huskelapp and frist") {
@@ -124,7 +185,7 @@ class TrengerOppfolgingConsumerSpek : Spek({
124
185
pPersonOversiktStatus.trengerOppfolgingFrist shouldBeEqualTo frist
125
186
}
126
187
it("updates to trenger_oppfolging false and trenger_oppfolging_frist null from kafka record with inactive huskelapp and frist") {
127
- val inActiveHuskelappWithFrist = generateKafkaHuskelapp(isActive = false, frist = frist)
188
+ val inactiveHuskelappWithFrist = generateKafkaHuskelapp(isActive = false, frist = frist)
128
189
val personident = UserConstants .ARBEIDSTAKER_FNR
129
190
database.createPersonOversiktStatus(
130
191
personOversiktStatus = PersonOversiktStatus (
@@ -134,7 +195,7 @@ class TrengerOppfolgingConsumerSpek : Spek({
134
195
)
135
196
)
136
197
mockIncomingKafkaRecord(
137
- kafkaRecord = inActiveHuskelappWithFrist ,
198
+ kafkaRecord = inactiveHuskelappWithFrist ,
138
199
kafkaConsumerMock = kafkaConsumerMock,
139
200
)
140
201
@@ -149,12 +210,12 @@ class TrengerOppfolgingConsumerSpek : Spek({
149
210
database.connection.use { it.getPersonOversiktStatusList(personident) }
150
211
pPersonOversiktStatusList.size shouldBeEqualTo 1
151
212
val pPersonOversiktStatus = pPersonOversiktStatusList.first()
152
- pPersonOversiktStatus.fnr shouldBeEqualTo inActiveHuskelappWithFrist .personIdent
213
+ pPersonOversiktStatus.fnr shouldBeEqualTo inactiveHuskelappWithFrist .personIdent
153
214
pPersonOversiktStatus.trengerOppfolging.shouldBeFalse()
154
215
pPersonOversiktStatus.trengerOppfolgingFrist.shouldBeNull()
155
216
}
156
217
it("updates to trenger_oppfolging false and trenger_oppfolging_frist null from kafka record with inactive huskelapp and no frist") {
157
- val inActiveHuskelappNoFrist = generateKafkaHuskelapp(isActive = false, frist = null)
218
+ val inactiveHuskelappNoFrist = generateKafkaHuskelapp(isActive = false, frist = null)
158
219
val personident = UserConstants .ARBEIDSTAKER_FNR
159
220
database.createPersonOversiktStatus(
160
221
personOversiktStatus = PersonOversiktStatus (
@@ -164,7 +225,7 @@ class TrengerOppfolgingConsumerSpek : Spek({
164
225
)
165
226
)
166
227
mockIncomingKafkaRecord(
167
- kafkaRecord = inActiveHuskelappNoFrist ,
228
+ kafkaRecord = inactiveHuskelappNoFrist ,
168
229
kafkaConsumerMock = kafkaConsumerMock,
169
230
)
170
231
@@ -179,7 +240,7 @@ class TrengerOppfolgingConsumerSpek : Spek({
179
240
database.connection.use { it.getPersonOversiktStatusList(personident) }
180
241
pPersonOversiktStatusList.size shouldBeEqualTo 1
181
242
val pPersonOversiktStatus = pPersonOversiktStatusList.first()
182
- pPersonOversiktStatus.fnr shouldBeEqualTo inActiveHuskelappNoFrist .personIdent
243
+ pPersonOversiktStatus.fnr shouldBeEqualTo inactiveHuskelappNoFrist .personIdent
183
244
pPersonOversiktStatus.trengerOppfolging.shouldBeFalse()
184
245
pPersonOversiktStatus.trengerOppfolgingFrist.shouldBeNull()
185
246
}
0 commit comments