Skip to content

Commit 3409b01

Browse files
authored
Merge pull request #20 from allegro/hermes-mock-without-rules
Hermes mock without rules and with random port
2 parents 04a3c00 + 3305023 commit 3409b01

File tree

5 files changed

+46
-7
lines changed

5 files changed

+46
-7
lines changed

part2.3-message-broker/build.gradle

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,6 @@ dependencies {
2727
testImplementation project(':commons')
2828
testImplementation project(':commons-rest')
2929
testImplementation 'pl.allegro.tech.hermes:hermes-mock:2.5.2'
30-
testImplementation 'org.spockframework:spock-junit4:2.4-M1-groovy-4.0'
3130
testImplementation 'org.spockframework:spock-spring:2.4-M1-groovy-4.0'
3231
}
3332

part2.3-message-broker/src/test/groovy/pl/allegro/tech/workshops/testsparallelexecution/email/messagebroker/EmailsByMessageBrokerResourceTest.groovy

Lines changed: 17 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
11
package pl.allegro.tech.workshops.testsparallelexecution.email.messagebroker
22

3-
import org.junit.ClassRule
3+
import org.spockframework.spring.EnableSharedInjection
4+
import org.springframework.beans.factory.annotation.Autowired
45
import org.springframework.beans.factory.annotation.Value
5-
import pl.allegro.tech.hermes.mock.HermesMockRule
6+
import org.springframework.context.annotation.Import
7+
import pl.allegro.tech.hermes.mock.HermesMock
68
import pl.allegro.tech.workshops.testsparallelexecution.BaseTestWithRest
79
import spock.lang.Shared
810

@@ -12,14 +14,24 @@ import static org.springframework.http.HttpStatus.INTERNAL_SERVER_ERROR
1214
import static org.springframework.http.HttpStatus.OK
1315
import static pl.allegro.tech.hermes.mock.exchange.Response.Builder.aResponse
1416

15-
class EmailsByMessageBrokerResourceTest extends BaseTestWithRest {
17+
@EnableSharedInjection
18+
@Import(HermesMockConfig)
19+
class EmailsByMessageBrokerResourceTest extends BaseTestWithRest implements HermesMockPortSupport {
1620

1721
@Value('${application.services.message-broker.topic}')
1822
private String topic
1923

20-
@ClassRule
2124
@Shared
22-
private HermesMockRule hermesMock = new HermesMockRule(8089)
25+
@Autowired
26+
private HermesMock hermesMock
27+
28+
def setupSpec() {
29+
hermesMock.start()
30+
}
31+
32+
def cleanupSpec() {
33+
hermesMock.stop()
34+
}
2335

2436
private String subject = "New workshops!"
2537

Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
package pl.allegro.tech.workshops.testsparallelexecution.email.messagebroker
2+
3+
import org.springframework.beans.factory.annotation.Value
4+
import org.springframework.boot.test.context.TestConfiguration
5+
import org.springframework.context.annotation.Bean
6+
import pl.allegro.tech.hermes.mock.HermesMock
7+
8+
@TestConfiguration
9+
class HermesMockConfig {
10+
@Bean
11+
HermesMock getHermesMock(@Value('${hermes-mock.port}') int hermesMockPort) {
12+
return new HermesMock.Builder().withPort(hermesMockPort).build()
13+
}
14+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
package pl.allegro.tech.workshops.testsparallelexecution.email.messagebroker
2+
3+
import org.springframework.test.context.DynamicPropertyRegistry
4+
import org.springframework.test.context.DynamicPropertySource
5+
import org.springframework.test.util.TestSocketUtils
6+
7+
trait HermesMockPortSupport {
8+
9+
@DynamicPropertySource
10+
static void configurePort(DynamicPropertyRegistry registry) {
11+
int port = TestSocketUtils.findAvailableTcpPort()
12+
registry.add("hermes-mock.port", () -> port)
13+
}
14+
}
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
1-
application.services.message-broker.url: http://localhost:8089
1+
application.services.message-broker.url: http://localhost:${hermes-mock.port}
22
application.services.message-broker.topic: pl.allegro.tech.workshops.testsparallelexecution.email

0 commit comments

Comments
 (0)