-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathDifferentVersionsSpec.scala
38 lines (28 loc) · 1.2 KB
/
DifferentVersionsSpec.scala
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
package com.psisoyev.example
import com.dimafeng.testcontainers.lifecycle.and
import com.dimafeng.testcontainers.{PulsarContainer, TestContainersForAll}
import com.sksamuel.pulsar4s.{PulsarClient, Topic}
import munit.FunSuite
class DifferentVersionsSpec extends FunSuite with TestContainersForAll {
type Containers = PulsarContainer and PulsarContainer
override def startContainers(): and[PulsarContainer, PulsarContainer] = {
val pulsarContainer = PulsarContainer.Def("2.2.0").start()
val pulsarContainerNew = PulsarContainer.Def("2.5.0").start()
pulsarContainer and pulsarContainerNew
}
val message = "hello"
test("Send and receive a message") {
withContainers { case pulsarContainer and pulsarContainerNew =>
List(pulsarContainer, pulsarContainerNew)
.map(container => scenario(container.pulsarBrokerUrl()))
.foreach(result => assert(result == Right(message)))
}
}
def scenario(brokerUrl: String): Either[Throwable, String] = {
val client: PulsarClient = PulsarClient(brokerUrl)
val topic = Topic("non-persistent://sample/standalone/test/123")
val service = new MyPulsarService(client, topic)
service.send(message)
service.receive
}
}