11package io.github.tobi.laa.spring.boot.embedded.redis.junit.extension
22
3- import io.github.tobi.laa.spring.boot.embedded.redis.IntegrationTest
43import io.github.tobi.laa.spring.boot.embedded.redis.cluster.EmbeddedRedisCluster
54import io.github.tobi.laa.spring.boot.embedded.redis.cluster.EmbeddedRedisCluster.Shard
5+ import io.github.tobi.laa.spring.boot.embedded.redis.cluster.RedisClusterContextCustomizer
66import io.github.tobi.laa.spring.boot.embedded.redis.cluster.RedisShardCustomizer
77import io.github.tobi.laa.spring.boot.embedded.redis.highavailability.EmbeddedRedisHighAvailability
88import io.github.tobi.laa.spring.boot.embedded.redis.highavailability.EmbeddedRedisHighAvailability.Sentinel
9+ import io.github.tobi.laa.spring.boot.embedded.redis.highavailability.RedisHighAvailabilityContextCustomizer
910import io.github.tobi.laa.spring.boot.embedded.redis.highavailability.RedisHighAvailabilityCustomizer
1011import io.github.tobi.laa.spring.boot.embedded.redis.standalone.EmbeddedRedisStandalone
12+ import io.github.tobi.laa.spring.boot.embedded.redis.standalone.RedisStandaloneContextCustomizer
1113import io.github.tobi.laa.spring.boot.embedded.redis.standalone.RedisStandaloneCustomizer
14+ import io.mockk.every
15+ import io.mockk.mockkConstructor
16+ import io.mockk.unmockkConstructor
1217import org.assertj.core.api.ListAssert
13- import org.junit.jupiter.api.DisplayName
18+ import org.junit.jupiter.api.*
1419import org.junit.jupiter.api.Named.named
15- import org.junit.jupiter.api.Test
20+ import org.junit.jupiter.api.TestInstance.Lifecycle.PER_CLASS
1621import org.junit.jupiter.api.extension.ExtensionContext
1722import org.junit.jupiter.params.ParameterizedTest
1823import org.junit.jupiter.params.provider.Arguments
@@ -31,11 +36,30 @@ import redis.embedded.core.RedisServerBuilder
3136import java.util.stream.Stream
3237
3338@DisplayName(" Testing the validations of embedded Redis annotations" )
39+ @TestInstance(PER_CLASS )
3440internal class RedisValidationExtensionTest {
3541
3642 private lateinit var testKitBuilder: EngineTestKit .Builder
3743 private lateinit var results: EngineExecutionResults
3844
45+ @BeforeAll
46+ fun mockContextCustomizers () {
47+ mockkConstructor(RedisClusterContextCustomizer ::class )
48+ mockkConstructor(RedisHighAvailabilityContextCustomizer ::class )
49+ mockkConstructor(RedisStandaloneContextCustomizer ::class )
50+
51+ every { anyConstructed<RedisClusterContextCustomizer >().customizeContext(any(), any()) } answers { }
52+ every { anyConstructed<RedisHighAvailabilityContextCustomizer >().customizeContext(any(), any()) } answers { }
53+ every { anyConstructed<RedisStandaloneContextCustomizer >().customizeContext(any(), any()) } answers { }
54+ }
55+
56+ @AfterAll
57+ fun unmockContextCustomizers () {
58+ unmockkConstructor(RedisClusterContextCustomizer ::class )
59+ unmockkConstructor(RedisHighAvailabilityContextCustomizer ::class )
60+ unmockkConstructor(RedisStandaloneContextCustomizer ::class )
61+ }
62+
3963 @DisplayName(" Test classes annotated with more than one embedded Redis annotation should fail" )
4064 @ParameterizedTest(name = " Test class annotated with {0} should fail" )
4165 @ArgumentsSource(ClassesWithMultipleAnnotationsProvider ::class )
@@ -530,7 +554,6 @@ internal class RedisValidationExtensionTest {
530554 @EmbeddedRedisCluster(ports = [1 , 2 , 2 ])
531555 internal class ClusterWithDuplicatePorts : WithDummyTest ()
532556
533- @IntegrationTest
534557 @EmbeddedRedisCluster(ports = [0 , 0 , 1 ])
535558 internal class ClusterPortZeroSpecifiedMultipleTimes : WithDummyTest ()
536559
@@ -735,11 +758,11 @@ internal class RedisValidationExtensionTest {
735758 internal class DupPortsTwoSentinels : WithDummyTest ()
736759 }
737760
738- @IntegrationTest
739761 @EmbeddedRedisHighAvailability(ports = [0 , 0 , 1 ], sentinels = [Sentinel (port = 0 )])
740762 internal class HighAvailabilityPortZeroSpecifiedMultipleTimes : WithDummyTest ()
741763
742764 internal abstract class WithDummyTest {
765+
743766 @Test
744767 fun dummy () {
745768 }
0 commit comments