Skip to content

Commit 1880fc6

Browse files
committed
Add test for inheritance in frameworks context
1 parent 8686ad0 commit 1880fc6

File tree

6 files changed

+30
-4
lines changed

6 files changed

+30
-4
lines changed

projects/kediatr-core/src/testFixtures/kotlin/com/trendyol/kediatr/framewokUseCases/MediatorUseCases.kt

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -79,4 +79,11 @@ abstract class MediatorUseCases : MediatorDIConvention {
7979
val result = testMediator.send(TestQuery(1))
8080
result shouldBe "hello 1"
8181
}
82+
83+
@Test
84+
fun inheritance_for_command_handler() = runTest {
85+
val command = TestCommandForInheritance()
86+
testMediator.send(command)
87+
command.invocationCount() shouldBe 1
88+
}
8289
}

projects/kediatr-core/src/testFixtures/kotlin/com/trendyol/kediatr/framewokUseCases/models.kt

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -139,3 +139,13 @@ class TestQueryHandler(
139139
return "hello " + query.id
140140
}
141141
}
142+
143+
class TestCommandForInheritance : Command, EnrichedWithMetadata()
144+
145+
abstract class MyCommandHandlerBaseForSpecificCommand : CommandHandler<TestCommandForInheritance>
146+
147+
class TestInheritedCommandHandlerForSpecificCommand : MyCommandHandlerBaseForSpecificCommand() {
148+
override suspend fun handle(command: TestCommandForInheritance) {
149+
command.incrementInvocationCount()
150+
}
151+
}

projects/kediatr-koin-starter/src/test/kotlin/com/trendyol/kediatr/koin/MediatorTests.kt

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,10 @@ package com.trendyol.kediatr.koin
33
import com.trendyol.kediatr.*
44
import com.trendyol.kediatr.framewokUseCases.*
55
import org.junit.jupiter.api.extension.RegisterExtension
6-
import org.koin.dsl.*
7-
import org.koin.test.*
6+
import org.koin.dsl.bind
7+
import org.koin.dsl.module
8+
import org.koin.test.KoinTest
9+
import org.koin.test.inject
810
import org.koin.test.junit5.KoinTestExtension
911

1012
class MediatorTests : KoinTest, MediatorUseCases() {
@@ -22,6 +24,7 @@ class MediatorTests : KoinTest, MediatorUseCases() {
2224
single { TestNotificationHandler(get()) } bind NotificationHandler::class
2325
single { TestBrokenCommandHandler(get()) } bind CommandHandler::class
2426
single { TestPipelineCommandHandler(get()) } bind CommandHandler::class
27+
single { TestInheritedCommandHandlerForSpecificCommand() } bind CommandHandler::class
2528
}
2629
)
2730
}

projects/kediatr-quarkus-starter/src/test/kotlin/com/trendyol/kediatr/quarkus/MediatorTests.kt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,10 @@ class MediatorTests : MediatorUseCases() {
2525
@Produces
2626
fun handler4(mediator: Mediator): TestPipelineCommandHandler = TestPipelineCommandHandler(mediator)
2727

28+
@Produces
29+
fun handler5(): TestInheritedCommandHandlerForSpecificCommand =
30+
TestInheritedCommandHandlerForSpecificCommand()
31+
2832
@Produces
2933
fun notificationHandler(mediator: Mediator) = TestNotificationHandler(mediator)
3034

projects/kediatr-spring-boot-2x-starter/src/test/kotlin/com/trendyol/kediatr/spring/MediatorTests.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,8 @@ import org.springframework.boot.test.context.SpringBootTest
1515
TestNotificationHandler::class,
1616
TestBrokenCommandHandler::class,
1717
TestPipelineCommandHandler::class,
18-
TestCommandWithResultCommandHandler::class
18+
TestCommandWithResultCommandHandler::class,
19+
TestInheritedCommandHandlerForSpecificCommand::class
1920
]
2021
)
2122
class MediatorTests : MediatorUseCases() {

projects/kediatr-spring-boot-3x-starter/src/test/kotlin/com/trendyol/kediatr/spring/MediatorTests.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,8 @@ import org.springframework.boot.test.context.SpringBootTest
1515
TestNotificationHandler::class,
1616
TestBrokenCommandHandler::class,
1717
TestPipelineCommandHandler::class,
18-
TestCommandWithResultCommandHandler::class
18+
TestCommandWithResultCommandHandler::class,
19+
TestInheritedCommandHandlerForSpecificCommand::class
1920
]
2021
)
2122
class MediatorTests : MediatorUseCases() {

0 commit comments

Comments
 (0)