trait Topic extends AnyRef
Testkit utility to mock broker's topic. Useful when doing integration tests for services that do eventing (in or out) to a broker's topic.
Note: messages written to the topic with this utility are not readable with the expect* methods, unless they have been properly forwarded through an eventing.out flow to the same topic.
- Annotations
- @ApiMayChange()
- Source
- EventingTestKit.scala
- Alphabetic
- By Inheritance
- Topic
- AnyRef
- Any
- by any2stringadd
- by StringFormat
- by Ensuring
- by ArrowAssoc
- Hide All
- Show All
- Public
- Protected
Abstract Value Members
- abstract def clear(): Seq[Message[_]]
Clear the topic so any existing messages are not considered on subsequent expect call.
Clear the topic so any existing messages are not considered on subsequent expect call.
- returns
the list of the unread messages when the topic was cleared.
- abstract def expectN(total: Int, timeout: FiniteDuration): Seq[Message[_]]
Waits for a given amount of unread messages to be received before returning up to a given timeout.
Waits for a given amount of unread messages to be received before returning up to a given timeout. If no message is received, a timeout exception is thrown.
- total
number of messages to wait for before returning
- timeout
maximum amount of time to wait for the messages
- returns
collection of messages, each message including the deserialized payload object and metadata
- abstract def expectN(total: Int): Seq[Message[_]]
Waits for a given amount of unread messages to be received before returning.
Waits for a given amount of unread messages to be received before returning. If no message is received, a timeout exception is thrown.
- total
number of messages to wait for before returning
- returns
collection of messages, each message including the deserialized payload object and metadata
- abstract def expectN(): Seq[Message[_]]
Waits for a default amount of time before returning all unread messages in the topic.
Waits for a default amount of time before returning all unread messages in the topic. If no message is received, a timeout exception is thrown.
- returns
collection of messages, each message including the deserialized payload object and metadata
- abstract def expectNone(timeout: FiniteDuration): Unit
Waits for given amount of time.
Waits for given amount of time. If a message arrives in the meantime or has arrived before but was not consumed, the test fails.
- timeout
amount of time to wait for a message
- abstract def expectNone(): Unit
Waits for predefined amount of time (see kalix.javasdk.testkit.impl.TopicImpl.DefaultTimeout).
Waits for predefined amount of time (see kalix.javasdk.testkit.impl.TopicImpl.DefaultTimeout). If a message arrives in the meantime or has arrived before but was not consumed, the test fails.
- abstract def expectOne(timeout: FiniteDuration): Message[_]
Waits for a specific amount and returns the next unread message on this topic.
Waits for a specific amount and returns the next unread message on this topic. Note the message might have been received before this method was called. If no message is received, a timeout exception is thrown.
- timeout
amount of time to wait for a message if it was not received already
- returns
message including ByteString payload and metadata
- abstract def expectOne(): Message[_]
Waits and returns the next unread message on this topic.
Waits and returns the next unread message on this topic. Note the message might have been received before this method was called. If no message is received, a timeout exception is thrown.
- returns
message including ByteString payload and metadata
- abstract def expectOneRaw(timeout: FiniteDuration): Message[ByteString]
Waits and returns the next unread message on this topic.
Waits and returns the next unread message on this topic. Note the message might have been received before this method was called. If no message is received, a timeout exception is thrown.
- timeout
amount of time to wait for a message
- returns
a Message with a ByteString payload
- abstract def expectOneRaw(): Message[ByteString]
Waits and returns the next unread message on this topic.
Waits and returns the next unread message on this topic. Note the message might have been received before this method was called. If no message is received, a timeout exception is thrown.
- returns
a Message with a ByteString payload
- abstract def expectOneTyped[T <: GeneratedMessage](timeout: FiniteDuration)(implicit t: ClassTag[T]): Message[T]
Waits and returns the next unread message on this topic and automatically parses and casts it to the specified given type.
Waits and returns the next unread message on this topic and automatically parses and casts it to the specified given type. Note the message might have been received before this method was called. If no message is received, a timeout exception is thrown.
- T
a given domain type
- timeout
amount of time to wait for a message if it was not received already
- returns
a Message of type T
- abstract def expectOneTyped[T <: GeneratedMessage](implicit t: ClassTag[T]): Message[T]
Waits and returns the next unread message on this topic and automatically parses and casts it to the specified given type.
Waits and returns the next unread message on this topic and automatically parses and casts it to the specified given type.
- T
a given domain type
- t
class tag used to cast the deserialized object
- returns
a Message of type T
- abstract def publish[T <: GeneratedMessage](messages: List[Message[T]]): Unit
Publish multiple messages to this topic for the purposes of testing eventing.in flows into a specific service.
Publish multiple messages to this topic for the purposes of testing eventing.in flows into a specific service.
- messages
to be published in the topic
- abstract def publish[T <: GeneratedMessage](message: T, subject: String): Unit
Simulate the publishing of a message to this topic for the purposes of testing eventing.in flows into a specific service.
Simulate the publishing of a message to this topic for the purposes of testing eventing.in flows into a specific service.
- message
to be published in the topic
- subject
to identify the entity
- abstract def publish[T <: GeneratedMessage](message: Message[T]): Unit
Simulate the publishing of a message to this topic for the purposes of testing eventing.in flows into a specific service.
Simulate the publishing of a message to this topic for the purposes of testing eventing.in flows into a specific service.
- message
to be published in the topic
- abstract def publish(message: ByteString, metadata: Metadata): Unit
Simulate the publishing of a raw message to this topic for the purposes of testing eventing.in flows into a specific service.
Simulate the publishing of a raw message to this topic for the purposes of testing eventing.in flows into a specific service.
- message
raw bytestring to be published in the topic
- metadata
associated with the message
- abstract def publish(message: ByteString): Unit
Simulate the publishing of a raw message to this topic for the purposes of testing eventing.in flows into a specific service.
Simulate the publishing of a raw message to this topic for the purposes of testing eventing.in flows into a specific service.
- message
raw bytestring to be published in the topic
Concrete Value Members
- final def !=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def ##: Int
- Definition Classes
- AnyRef → Any
- def +(other: String): String
- def ->[B](y: B): (Topic, B)
- final def ==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def asInstanceOf[T0]: T0
- Definition Classes
- Any
- def clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.CloneNotSupportedException]) @native()
- def ensuring(cond: (Topic) => Boolean, msg: => Any): Topic
- def ensuring(cond: (Topic) => Boolean): Topic
- def ensuring(cond: Boolean, msg: => Any): Topic
- def ensuring(cond: Boolean): Topic
- final def eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def equals(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef → Any
- final def getClass(): Class[_ <: AnyRef]
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
- def hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
- final def isInstanceOf[T0]: Boolean
- Definition Classes
- Any
- final def ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- final def notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
- final def notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
- final def synchronized[T0](arg0: => T0): T0
- Definition Classes
- AnyRef
- def toString(): String
- Definition Classes
- AnyRef → Any
- final def wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException]) @native()
Deprecated Value Members
- def finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.Throwable]) @Deprecated
- Deprecated
(Since version 9)
- def formatted(fmtstr: String): String
- Implicit
- This member is added by an implicit conversion from Topic toStringFormat[Topic] performed by method StringFormat in scala.Predef.
- Definition Classes
- StringFormat
- Annotations
- @deprecated @inline()
- Deprecated
(Since version 2.12.16) Use
formatString.format(value)
instead ofvalue.formatted(formatString)
, or use thef""
string interpolator. In Java 15 and later,formatted
resolves to the new method in String which has reversed parameters.
- def →[B](y: B): (Topic, B)
- Implicit
- This member is added by an implicit conversion from Topic toArrowAssoc[Topic] performed by method ArrowAssoc in scala.Predef.
- Definition Classes
- ArrowAssoc
- Annotations
- @deprecated
- Deprecated
(Since version 2.13.0) Use
->
instead. If you still wish to display it as one character, consider using a font with programming ligatures such as Fira Code.