Package org.apache.camel.component.mock
Class MockEndpoint
java.lang.Object
org.apache.camel.support.service.BaseService
org.apache.camel.support.service.ServiceSupport
org.apache.camel.support.DefaultEndpoint
org.apache.camel.component.mock.MockEndpoint
- All Implemented Interfaces:
AutoCloseable
,org.apache.camel.CamelContextAware
,org.apache.camel.ComponentAware
,org.apache.camel.Endpoint
,org.apache.camel.IsSingleton
,org.apache.camel.Service
,org.apache.camel.ShutdownableService
,org.apache.camel.spi.BrowsableEndpoint
,org.apache.camel.spi.HasCamelContext
,org.apache.camel.spi.HasId
,org.apache.camel.spi.NotifyBuilderMatcher
,org.apache.camel.StatefulService
,org.apache.camel.SuspendableService
@UriEndpoint(firstVersion="1.0.0",
scheme="mock",
title="Mock",
syntax="mock:name",
producerOnly=true,
remote=false,
category={CORE,TESTING},
lenientProperties=true)
public class MockEndpoint
extends org.apache.camel.support.DefaultEndpoint
implements org.apache.camel.spi.BrowsableEndpoint, org.apache.camel.spi.NotifyBuilderMatcher
Test routes and mediation rules using mocks.
A Mock endpoint which provides a literate, fluent API for testing routes using a JMock
style API.
The mock endpoint have two sets of methods
- expectedXXX or expectsXXX - To set pre conditions, before the test is executed
- assertXXX - To assert assertions, after the test has been executed
setExpectedMessageCount(int)
with 0, then take extra care, as 0 matches when the tests
start, so you need to set an assert period time to let the test run for a while to make sure there are still no
messages arrived; for that use setAssertPeriod(long)
. An alternative is to use
NotifyBuilder, and use the notifier to know when Camel is
done routing some messages, before you call the assertIsSatisfied()
method on the mocks. This allows you to
not use a fixed assertion period to speed up testing times.
Important: If using expectedMessageCount(int)
and also
expectedBodiesReceived(java.util.List)
or expectedHeaderReceived(String, Object)
then the latter
overrides the number of expected messages based on the number of values provided in the bodies/headers.-
Nested Class Summary
Nested classes/interfaces inherited from interface org.apache.camel.spi.BrowsableEndpoint
org.apache.camel.spi.BrowsableEndpoint.BrowseStatus
-
Field Summary
FieldsFields inherited from class org.apache.camel.support.service.BaseService
BUILT, FAILED, INITIALIZED, INITIALIZING, lock, NEW, SHUTDOWN, SHUTTING_DOWN, STARTED, STARTING, status, STOPPED, STOPPING, SUSPENDED, SUSPENDING
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected void
addReceivedExchange
(org.apache.camel.Exchange copy) Adds the received exchange.Adds an assertion to all the received messagesprotected void
assertEquals
(String message, int expectedValue, int actualValue) protected void
assertEquals
(String message, Object expectedValue, Object actualValue) org.apache.camel.Exchange
assertExchangeReceived
(int index) Asserts that the given index of message is received (starting at zero)protected void
assertFalse
(String message, boolean predicate) Asserts that the givenpredicate
isfalse
, if not anAssertionError
is raised with the give message.void
Validates that the assertions fail on this endpointvoid
assertIsNotSatisfied
(long timeoutForEmptyEndpoints) Validates that the assertions fail on this endpointvoid
assertIsNotSatisfied
(String expectedErrorString) Validates that the assertions fail on this endpoint with the expected error messagevoid
Validates that all the available expectations on this endpoint are satisfied; or throw an exceptionvoid
assertIsSatisfied
(long timeoutForEmptyEndpoints) Validates that all the available expectations on this endpoint are satisfied; or throw an exceptionstatic void
assertIsSatisfied
(long timeout, TimeUnit unit, MockEndpoint... endpoints) static void
assertIsSatisfied
(org.apache.camel.CamelContext context) Asserts that all the expectations on anyMockEndpoint
instances registered in the given context are validstatic void
assertIsSatisfied
(org.apache.camel.CamelContext context, long timeout, TimeUnit unit) Asserts that all the expectations on anyMockEndpoint
instances registered in the given context are validstatic void
assertIsSatisfied
(MockEndpoint... endpoints) void
assertMessagesAscending
(org.apache.camel.Expression expression) Asserts that the messages have ascending values of the given expressionvoid
assertMessagesDescending
(org.apache.camel.Expression expression) Asserts that the messages have descending values of the given expressionprotected void
assertMessagesSorted
(org.apache.camel.Expression expression, boolean ascending) protected void
assertMessagesSorted
(org.apache.camel.Expression expression, boolean ascending, int index) void
assertNoDuplicates
(org.apache.camel.Expression expression) Asserts among all the current received exchanges that there are no duplicate messageprotected void
assertTrue
(String message, boolean predicate) Asserts that the givenpredicate
istrue
, if not anAssertionError
is raised with the give message.static void
assertWait
(long timeout, TimeUnit unit, MockEndpoint... endpoints) void
await()
boolean
org.apache.camel.Consumer
createConsumer
(org.apache.camel.Processor processor) org.apache.camel.Producer
protected void
doAssertIsSatisfied
(long timeoutForEmptyEndpoints) void
expectedBodiesReceived
(Object... bodies) Sets an expectation that the given body values are received by this endpointvoid
expectedBodiesReceived
(List<?> bodies) Adds an expectation that this endpoint receives the given body values in the specified ordervoid
expectedBodiesReceivedInAnyOrder
(Object... bodies) Adds an expectation that this endpoint receives the given body values in any ordervoid
expectedBodiesReceivedInAnyOrder
(List<?> bodies) Adds an expectation that this endpoint receives the given body values in any orderAdds an expectation that the given body value are received by this endpointvoid
expectedExchangePattern
(org.apache.camel.ExchangePattern exchangePattern) Adds an expectation that messages received should have the given exchange patternvoid
expectedFileExists
(String name) Adds an expectation that a file exists with the given namevoid
expectedFileExists
(String name, String content) Adds an expectation that a file exists with the given namevoid
expectedFileExists
(Path name) Adds an expectation that a file exists with the given namevoid
expectedFileExists
(Path name, String content) Adds an expectation that a file exists with the given namevoid
expectedHeaderReceived
(String name, Object value) Sets an expectation that the given header name invalid input: '&' value are received by this endpointvoid
expectedHeaderValuesReceivedInAnyOrder
(String name, Object... values) Adds an expectation that this endpoint receives the given header values in any ordervoid
expectedHeaderValuesReceivedInAnyOrder
(String name, List<?> values) Adds an expectation that this endpoint receives the given header values in any order.void
expectedMessageCount
(int expectedCount) Specifies the expected number of message exchanges that should be received by this endpoint If you want to assert that exactly n messages arrive to this mock endpoint, then see also thesetAssertPeriod(long)
method for further details.void
expectedMessagesMatches
(org.apache.camel.Predicate... predicates) Sets an expectation that the given predicates matches the received messages by this endpointvoid
expectedMinimumMessageCount
(int expectedCount) Specifies the minimum number of expected message exchanges that should be received by this endpointvoid
Sets an expectation that the messages received by this endpoint have no headervoid
expectedPropertyReceived
(String name, Object value) Sets an expectation that the given property name invalid input: '&' value are received by this endpointvoid
expectedPropertyValuesReceivedInAnyOrder
(String name, Object... values) Adds an expectation that this endpoint receives the given property values in any ordervoid
expectedPropertyValuesReceivedInAnyOrder
(String name, List<?> values) Adds an expectation that this endpoint receives the given property values in any order.void
expectedVariableReceived
(String name, Object value) Sets an expectation that the given variable name invalid input: '&' value are received by this endpointvoid
expectedVariableValuesReceivedInAnyOrder
(String name, Object... values) Adds an expectation that this endpoint receives the given variable values in any ordervoid
expectedVariableValuesReceivedInAnyOrder
(String name, List<?> values) Adds an expectation that this endpoint receives the given variable values in any order.void
Adds the expectation which will be invoked when enough messages are receivedAdds an expectation that messages received should have ascending values of the given expression such as a user generated counter valuevoid
expectsAscending
(org.apache.camel.Expression expression) Adds an expectation that messages received should have ascending values of the given expression such as a user generated counter valueAdds an expectation that messages received should have descending values of the given expression such as a user generated counter valuevoid
expectsDescending
(org.apache.camel.Expression expression) Adds an expectation that messages received should have descending values of the given expression such as a user generated counter valuestatic void
expectsMessageCount
(int count, MockEndpoint... endpoints) Adds an expectation that no duplicate messages should be received using the expression to determine the message IDvoid
expectsNoDuplicates
(org.apache.camel.Expression expression) Adds an expectation that no duplicate messages should be received using the expression to determine the message IDprotected void
long
int
List
<org.apache.camel.Exchange> int
int
getName()
int
List
<org.apache.camel.Exchange> org.apache.camel.Processor
int
long
long
int
int
long
void
handle
(org.apache.camel.Exchange exchange) Handles the incoming exchange.boolean
boolean
boolean
boolean
isLog()
boolean
isRemote()
message
(int messageIndex) Adds an assertion to the given message indexboolean
void
notifyBuilderOnExchange
(org.apache.camel.Exchange exchange) void
protected void
onExchange
(org.apache.camel.Exchange exchange) protected void
performAssertions
(org.apache.camel.Exchange exchange, org.apache.camel.Exchange copy) Performs the assertions on the incoming exchange.void
reset()
static void
resetMocks
(org.apache.camel.CamelContext context) Reset all mock endpointsstatic MockEndpoint
A helper method to resolve the mock endpoint of the given URI on the given contextvoid
returnReplyBody
(org.apache.camel.Expression expression) Set the expression which value will be set to the message bodyvoid
returnReplyHeader
(String headerName, org.apache.camel.Expression expression) Set the expression which value will be set to the message headervoid
setAssertPeriod
(long period) Sets a grace period after which the mock endpoint will re-assert to ensure the preliminary assertion is still valid.static void
setAssertPeriod
(org.apache.camel.CamelContext context, long period) Sets the assertion period on all the expectations on anyMockEndpoint
instances registered in the given context.void
setBrowseLimit
(int browseLimit) void
setCopyOnExchange
(boolean copyOnExchange) Sets whether to make a deep copy of the incomingExchange
when received at this mock endpoint.void
setExpectedCount
(int expectedCount) Specifies the expected number of message exchanges that should be received by this endpoint.void
setExpectedMessageCount
(int expectedCount) void
setFailFast
(boolean failFast) Sets whetherassertIsSatisfied()
should fail fast at the first detected failed expectation while it may otherwise wait for all expected messages to arrive before performing expectations verifications.void
setLog
(boolean log) To turn on logging when the mock receives an incoming message.void
setMinimumExpectedMessageCount
(int expectedCount) Specifies the minimum number of expected message exchanges that should be received by this endpointvoid
void
setReporter
(org.apache.camel.Processor reporter) Allows a processor to added to the endpoint to report on progress of the testvoid
setReportGroup
(int reportGroup) A number that is used to turn on throughput logging based on groups of the size.void
setResultMinimumWaitTime
(long resultMinimumWaitTime) Sets the minimum expected amount of time (in millis) theassertIsSatisfied()
will wait on a latch until it is satisfiedvoid
setResultWaitTime
(long resultWaitTime) Sets the maximum amount of time (in millis) theassertIsSatisfied()
will wait on a latch until it is satisfiedvoid
setRetainFirst
(int retainFirst) Specifies to only retain the first nth number of receivedExchange
s.void
setRetainLast
(int retainLast) Specifies to only retain the last nth number of receivedExchange
s.void
setSleepForEmptyTest
(long sleepForEmptyTest) Allows a sleep to be specified to wait to check that this endpoint really is empty whenexpectedMessageCount(int)
is called with zeroprotected void
protected void
waitForCompleteLatch
(long timeout) void
whenAnyExchangeReceived
(org.apache.camel.Processor processor) Set the processor that will be invoked when some message is received.void
whenExchangeReceived
(int index, org.apache.camel.Processor processor) Set the processor that will be invoked when the index message is received.Methods inherited from class org.apache.camel.support.DefaultEndpoint
configureConsumer, configureExchange, configurePollingConsumer, configureProperties, createAsyncProducer, createEndpointUri, createExchange, createExchange, createPollingConsumer, doInit, equals, getCamelContext, getEndpointKey, getEndpointUri, getExceptionHandler, getExchangePattern, getId, getPollingConsumerBlockTimeout, getPollingConsumerQueueSize, hashCode, isAutowiredEnabled, isBridgeErrorHandler, isLazyStartProducer, isPollingConsumerBlockWhenFull, isPollingConsumerCopy, isSingleton, setAutowiredEnabled, setBridgeErrorHandler, setCamelContext, setComponent, setEndpointUri, setEndpointUriIfNotSpecified, setExceptionHandler, setExchangePattern, setLazyStartProducer, setPollingConsumerBlockTimeout, setPollingConsumerBlockWhenFull, setPollingConsumerCopy, setPollingConsumerQueueSize, setProperties, toString
Methods inherited from class org.apache.camel.support.service.BaseService
build, doBuild, doFail, doLifecycleChange, doResume, doShutdown, doStart, doStop, doSuspend, fail, getInternalLock, getStatus, init, isBuild, isInit, isNew, isRunAllowed, isShutdown, isStarted, isStarting, isStartingOrStarted, isStopped, isStopping, isStoppingOrStopped, isSuspended, isSuspending, isSuspendingOrSuspended, resume, shutdown, start, stop, suspend
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
Methods inherited from interface org.apache.camel.spi.BrowsableEndpoint
getBrowseStatus, getExchanges
Methods inherited from interface org.apache.camel.ComponentAware
getComponent, setComponent
Methods inherited from interface org.apache.camel.Endpoint
configureExchange, configureProperties, createAsyncProducer, createExchange, createExchange, createPollingConsumer, getCamelContext, getEndpointBaseUri, getEndpointKey, getEndpointUri, getExchangePattern, isSingletonProducer, setCamelContext
Methods inherited from interface org.apache.camel.IsSingleton
isSingleton
Methods inherited from interface org.apache.camel.Service
build, close, init, start, stop
Methods inherited from interface org.apache.camel.ShutdownableService
shutdown
Methods inherited from interface org.apache.camel.StatefulService
getStatus, isRunAllowed, isStarted, isStarting, isStopped, isStopping, isSuspending
Methods inherited from interface org.apache.camel.SuspendableService
isSuspended, resume, suspend
-
Field Details
-
reporter
protected volatile org.apache.camel.Processor reporter
-
-
Constructor Details
-
MockEndpoint
public MockEndpoint() -
MockEndpoint
-
-
Method Details
-
isRemote
public boolean isRemote()- Specified by:
isRemote
in interfaceorg.apache.camel.Endpoint
-
resolve
A helper method to resolve the mock endpoint of the given URI on the given context- Parameters:
context
- the camel context to try to resolve the mock endpoint fromuri
- the uri of the endpoint to resolve- Returns:
- the endpoint
-
assertWait
public static void assertWait(long timeout, TimeUnit unit, MockEndpoint... endpoints) throws InterruptedException - Throws:
InterruptedException
-
assertIsSatisfied
public static void assertIsSatisfied(long timeout, TimeUnit unit, MockEndpoint... endpoints) throws InterruptedException - Throws:
InterruptedException
-
assertIsSatisfied
- Throws:
InterruptedException
-
assertIsSatisfied
public static void assertIsSatisfied(org.apache.camel.CamelContext context) throws InterruptedException Asserts that all the expectations on anyMockEndpoint
instances registered in the given context are valid- Parameters:
context
- the camel context used to find all the available endpoints to be asserted- Throws:
InterruptedException
-
assertIsSatisfied
public static void assertIsSatisfied(org.apache.camel.CamelContext context, long timeout, TimeUnit unit) throws InterruptedException Asserts that all the expectations on anyMockEndpoint
instances registered in the given context are valid- Parameters:
context
- the camel context used to find all the available endpoints to be assertedtimeout
- timeoutunit
- time unit- Throws:
InterruptedException
-
setAssertPeriod
public static void setAssertPeriod(org.apache.camel.CamelContext context, long period) Sets the assertion period on all the expectations on anyMockEndpoint
instances registered in the given context.- Parameters:
context
- the camel context used to find all the available endpointsperiod
- the period in millis
-
resetMocks
public static void resetMocks(org.apache.camel.CamelContext context) Reset all mock endpoints- Parameters:
context
- the camel context used to find all the available endpoints to reset
-
expectsMessageCount
-
getExchanges
- Specified by:
getExchanges
in interfaceorg.apache.camel.spi.BrowsableEndpoint
-
createConsumer
public org.apache.camel.Consumer createConsumer(org.apache.camel.Processor processor) throws Exception - Specified by:
createConsumer
in interfaceorg.apache.camel.Endpoint
- Throws:
Exception
-
createProducer
- Specified by:
createProducer
in interfaceorg.apache.camel.Endpoint
- Throws:
Exception
-
reset
public void reset() -
handle
Handles the incoming exchange. This method turns this mock endpoint into a bean which you can use in the Camel routes, which allows you to inject MockEndpoint as beans in your routes and use the features of the mock to control the bean.- Parameters:
exchange
- the exchange- Throws:
Exception
- can be thrown
-
whenExchangeReceived
public void whenExchangeReceived(int index, org.apache.camel.Processor processor) Set the processor that will be invoked when the index message is received. -
whenAnyExchangeReceived
public void whenAnyExchangeReceived(org.apache.camel.Processor processor) Set the processor that will be invoked when some message is received. This processor could be overwritten bywhenExchangeReceived(int, Processor)
method. -
returnReplyBody
public void returnReplyBody(org.apache.camel.Expression expression) Set the expression which value will be set to the message body- Parameters:
expression
- expression used to set the message body
-
returnReplyHeader
Set the expression which value will be set to the message header- Parameters:
headerName
- that will be set valueexpression
- expression used to set the message header
-
assertIsSatisfied
Validates that all the available expectations on this endpoint are satisfied; or throw an exception- Throws:
InterruptedException
-
assertIsSatisfied
Validates that all the available expectations on this endpoint are satisfied; or throw an exception- Parameters:
timeoutForEmptyEndpoints
- the timeout in milliseconds that we should wait for the test to be true- Throws:
InterruptedException
-
doAssertIsSatisfied
- Throws:
InterruptedException
-
assertIsNotSatisfied
Validates that the assertions fail on this endpoint- Throws:
InterruptedException
-
assertIsNotSatisfied
Validates that the assertions fail on this endpoint with the expected error message- Parameters:
expectedErrorString
- the message of the assertion failure error- Throws:
InterruptedException
-
assertIsNotSatisfied
Validates that the assertions fail on this endpoint- Parameters:
timeoutForEmptyEndpoints
- the timeout in milliseconds that we should wait for the test to be true- Throws:
InterruptedException
-
expectedMessageCount
public void expectedMessageCount(int expectedCount) Specifies the expected number of message exchanges that should be received by this endpoint If you want to assert that exactly n messages arrive to this mock endpoint, then see also thesetAssertPeriod(long)
method for further details.- Parameters:
expectedCount
- the number of message exchanges that should be expected by this endpoint- See Also:
-
getAssertPeriod
public long getAssertPeriod() -
setAssertPeriod
public void setAssertPeriod(long period) Sets a grace period after which the mock endpoint will re-assert to ensure the preliminary assertion is still valid. This is used, for example, to assert that exactly a number of messages arrive. For example, if the expected count was set to 5, then the assertion is satisfied when five or more messages arrive. To ensure that exactly 5 messages arrive, then you would need to wait a little period to ensure no further message arrives. This is what you can use this method for. By default, this period is disabled.- Parameters:
period
- grace period in millis
-
expectedMinimumMessageCount
public void expectedMinimumMessageCount(int expectedCount) Specifies the minimum number of expected message exchanges that should be received by this endpoint- Parameters:
expectedCount
- the number of message exchanges that should be expected by this endpoint
-
expectedHeaderReceived
Sets an expectation that the given header name invalid input: '&' value are received by this endpoint You can set multiple expectations for different header names. If you set a value of null that means we accept either the header is absent, or its value is null -
expectedNoHeaderReceived
public void expectedNoHeaderReceived()Sets an expectation that the messages received by this endpoint have no header -
expectedHeaderValuesReceivedInAnyOrder
Adds an expectation that this endpoint receives the given header values in any order. Important: The number of values must match the expected number of messages, so if you expect three messages, then there must be three values. Important: This overrides any previous set value usingexpectedMessageCount(int)
-
expectedHeaderValuesReceivedInAnyOrder
Adds an expectation that this endpoint receives the given header values in any order Important: The number of values must match the expected number of messages, so if you expect three messages, then there must be three values. Important: This overrides any previous set value usingexpectedMessageCount(int)
-
expectedVariableReceived
Sets an expectation that the given variable name invalid input: '&' value are received by this endpoint You can set multiple expectations for different variable names. If you set a value of null that means we accept either the variable is absent, or its value is null -
expectedVariableValuesReceivedInAnyOrder
Adds an expectation that this endpoint receives the given variable values in any order. Important: The number of variable must match the expected number of messages, so if you expect three messages, then there must be three values. Important: This overrides any previous set value usingexpectedMessageCount(int)
-
expectedVariableValuesReceivedInAnyOrder
Adds an expectation that this endpoint receives the given variable values in any order Important: The number of values must match the expected number of messages, so if you expect three messages, then there must be three values. Important: This overrides any previous set value usingexpectedMessageCount(int)
-
expectedPropertyReceived
Sets an expectation that the given property name invalid input: '&' value are received by this endpoint You can set multiple expectations for different property names. If you set a value of null that means we accept either the property is absent, or its value is null -
expectedPropertyValuesReceivedInAnyOrder
Adds an expectation that this endpoint receives the given property values in any order. Important: The number of values must match the expected number of messages, so if you expect three messages, then there must be three values. Important: This overrides any previous set value usingexpectedMessageCount(int)
-
expectedPropertyValuesReceivedInAnyOrder
Adds an expectation that this endpoint receives the given property values in any order Important: The number of values must match the expected number of messages, so if you expect three messages, then there must be three values. Important: This overrides any previous set value usingexpectedMessageCount(int)
-
expectedBodiesReceived
Adds an expectation that this endpoint receives the given body values in the specified order Important: The number of values must match the expected number of messages, so if you expect three messages, then there must be three values. Important: This overrides any previous set value usingexpectedMessageCount(int)
-
expectedMessagesMatches
public void expectedMessagesMatches(org.apache.camel.Predicate... predicates) Sets an expectation that the given predicates matches the received messages by this endpoint -
expectedBodiesReceived
Sets an expectation that the given body values are received by this endpoint Important: The number of bodies must match the expected number of messages, so if you expect three messages, then there must be three bodies. Important: This overrides any previous set value usingexpectedMessageCount(int)
-
expectedBodyReceived
Adds an expectation that the given body value are received by this endpoint -
expectedBodiesReceivedInAnyOrder
Adds an expectation that this endpoint receives the given body values in any order Important: The number of bodies must match the expected number of messages, so if you expect three messages, then there must be three bodies. Important: This overrides any previous set value usingexpectedMessageCount(int)
-
expectedBodiesReceivedInAnyOrder
Adds an expectation that this endpoint receives the given body values in any order Important: The number of bodies must match the expected number of messages, so if you expect three messages, then there must be three bodies. Important: This overrides any previous set value usingexpectedMessageCount(int)
-
expectedFileExists
Adds an expectation that a file exists with the given name- Parameters:
name
- name of file, will cater for / and \ on different OS platforms
-
expectedFileExists
Adds an expectation that a file exists with the given name- Parameters:
name
- name of file, will cater for / and \ on different OS platforms
-
expectedFileExists
Adds an expectation that a file exists with the given name Will wait at most 5 seconds while checking for the existence of the file.- Parameters:
name
- name of file, will cater for / and \ on different OS platformscontent
- content of file to compare, can be null to not compare content
-
expectedFileExists
Adds an expectation that a file exists with the given name Will wait at most 5 seconds while checking for the existence of the file.- Parameters:
name
- name of file, will cater for / and \ on different OS platformscontent
- content of file to compare, can be null to not compare content
-
expectedExchangePattern
public void expectedExchangePattern(org.apache.camel.ExchangePattern exchangePattern) Adds an expectation that messages received should have the given exchange pattern -
expectsAscending
public void expectsAscending(org.apache.camel.Expression expression) Adds an expectation that messages received should have ascending values of the given expression such as a user generated counter value -
expectsAscending
Adds an expectation that messages received should have ascending values of the given expression such as a user generated counter value -
expectsDescending
public void expectsDescending(org.apache.camel.Expression expression) Adds an expectation that messages received should have descending values of the given expression such as a user generated counter value -
expectsDescending
Adds an expectation that messages received should have descending values of the given expression such as a user generated counter value -
expectsNoDuplicates
public void expectsNoDuplicates(org.apache.camel.Expression expression) Adds an expectation that no duplicate messages should be received using the expression to determine the message ID- Parameters:
expression
- the expression used to create a unique message ID for message comparison (which could just be the message payload if the payload can be tested for uniqueness usingObject.equals(Object)
andObject.hashCode()
-
expectsNoDuplicates
Adds an expectation that no duplicate messages should be received using the expression to determine the message ID -
assertMessagesAscending
public void assertMessagesAscending(org.apache.camel.Expression expression) Asserts that the messages have ascending values of the given expression -
assertMessagesDescending
public void assertMessagesDescending(org.apache.camel.Expression expression) Asserts that the messages have descending values of the given expression -
assertMessagesSorted
protected void assertMessagesSorted(org.apache.camel.Expression expression, boolean ascending) -
assertMessagesSorted
protected void assertMessagesSorted(org.apache.camel.Expression expression, boolean ascending, int index) -
assertNoDuplicates
public void assertNoDuplicates(org.apache.camel.Expression expression) Asserts among all the current received exchanges that there are no duplicate message- Parameters:
expression
- the expression to use for duplication check
-
expects
Adds the expectation which will be invoked when enough messages are received -
message
Adds an assertion to the given message index- Parameters:
messageIndex
- the number of the message- Returns:
- the assertion clause
-
allMessages
Adds an assertion to all the received messages- Returns:
- the assertion clause
-
assertExchangeReceived
public org.apache.camel.Exchange assertExchangeReceived(int index) Asserts that the given index of message is received (starting at zero) -
notifyBuilderOnExchange
public void notifyBuilderOnExchange(org.apache.camel.Exchange exchange) - Specified by:
notifyBuilderOnExchange
in interfaceorg.apache.camel.spi.NotifyBuilderMatcher
-
notifyBuilderReset
public void notifyBuilderReset()- Specified by:
notifyBuilderReset
in interfaceorg.apache.camel.spi.NotifyBuilderMatcher
-
notifyBuilderMatches
public boolean notifyBuilderMatches()- Specified by:
notifyBuilderMatches
in interfaceorg.apache.camel.spi.NotifyBuilderMatcher
-
getName
-
setName
-
getFailures
-
getReceivedCounter
public int getReceivedCounter() -
getReceivedExchanges
-
getExpectedCount
public int getExpectedCount() -
getSleepForEmptyTest
public long getSleepForEmptyTest() -
setSleepForEmptyTest
public void setSleepForEmptyTest(long sleepForEmptyTest) Allows a sleep to be specified to wait to check that this endpoint really is empty whenexpectedMessageCount(int)
is called with zero- Parameters:
sleepForEmptyTest
- the milliseconds to sleep for to determine that this endpoint really is empty
-
getResultWaitTime
public long getResultWaitTime() -
setResultWaitTime
public void setResultWaitTime(long resultWaitTime) Sets the maximum amount of time (in millis) theassertIsSatisfied()
will wait on a latch until it is satisfied -
getResultMinimumWaitTime
public long getResultMinimumWaitTime() -
setResultMinimumWaitTime
public void setResultMinimumWaitTime(long resultMinimumWaitTime) Sets the minimum expected amount of time (in millis) theassertIsSatisfied()
will wait on a latch until it is satisfied -
setExpectedCount
public void setExpectedCount(int expectedCount) Specifies the expected number of message exchanges that should be received by this endpoint. Beware: If you want to expect that 0 messages, then take extra care, as 0 matches when the tests starts, so you need to set a assert period time to let the test run for a while to make sure there are still no messages arrived; for that usesetAssertPeriod(long)
. An alternative is to use NotifyBuilder, and use the notifier to know when Camel is done routing some messages, before you call theassertIsSatisfied()
method on the mocks. This allows you to not use a fixed assert period, to speedup testing times. If you want to assert that exactly nth message arrives to this mock endpoint, then see also thesetAssertPeriod(long)
method for further details.- Parameters:
expectedCount
- the number of message exchanges that should be expected by this endpoint- See Also:
-
setExpectedMessageCount
public void setExpectedMessageCount(int expectedCount) - See Also:
-
setMinimumExpectedMessageCount
public void setMinimumExpectedMessageCount(int expectedCount) Specifies the minimum number of expected message exchanges that should be received by this endpoint- Parameters:
expectedCount
- the number of message exchanges that should be expected by this endpoint
-
getReporter
public org.apache.camel.Processor getReporter() -
setReporter
public void setReporter(org.apache.camel.Processor reporter) Allows a processor to added to the endpoint to report on progress of the test -
getRetainFirst
public int getRetainFirst() -
setRetainFirst
public void setRetainFirst(int retainFirst) Specifies to only retain the first nth number of receivedExchange
s. This is used when testing with big data, to reduce memory consumption by not storing copies of everyExchange
this mock endpoint receives. Important: When using this limitation, then thegetReceivedCounter()
will still return the actual number of receivedExchange
s. For example if we have received 5000Exchange
s, and have configured to only retain the first 10Exchange
s, then thegetReceivedCounter()
will still return 5000 but there is only the first 10Exchange
s in thegetExchanges()
andgetReceivedExchanges()
methods. When using this method, then some of the other expectation methods is not supported, for example theexpectedBodiesReceived(Object...)
sets a expectation on the first number of bodies received. You can configure bothsetRetainFirst(int)
andsetRetainLast(int)
methods, to limit both the first and last received.- Parameters:
retainFirst
- to limit and only keep the first n'th receivedExchange
s, use 0 to not retain any messages, or -1 to retain all.- See Also:
-
getRetainLast
public int getRetainLast() -
setRetainLast
public void setRetainLast(int retainLast) Specifies to only retain the last nth number of receivedExchange
s. This is used when testing with big data, to reduce memory consumption by not storing copies of everyExchange
this mock endpoint receives. Important: When using this limitation, then thegetReceivedCounter()
will still return the actual number of receivedExchange
s. For example if we have received 5000Exchange
s, and have configured to only retain the last 20Exchange
s, then thegetReceivedCounter()
will still return 5000 but there is only the last 20Exchange
s in thegetExchanges()
andgetReceivedExchanges()
methods. When using this method, then some of the other expectation methods is not supported, for example theexpectedBodiesReceived(Object...)
sets a expectation on the first number of bodies received. You can configure bothsetRetainFirst(int)
andsetRetainLast(int)
methods, to limit both the first and last received.- Parameters:
retainLast
- to limit and only keep the last n'th receivedExchange
s, use 0 to not retain any messages, or -1 to retain all.- See Also:
-
getReportGroup
public int getReportGroup() -
setReportGroup
public void setReportGroup(int reportGroup) A number that is used to turn on throughput logging based on groups of the size. -
isLog
public boolean isLog() -
setLog
public void setLog(boolean log) To turn on logging when the mock receives an incoming message. This will log only one time at INFO level for the incoming message. For more detailed logging then set the logger to DEBUG level for the org.apache.camel.component.mock.MockEndpoint class. -
isCopyOnExchange
public boolean isCopyOnExchange() -
setCopyOnExchange
public void setCopyOnExchange(boolean copyOnExchange) Sets whether to make a deep copy of the incomingExchange
when received at this mock endpoint. Is by default true. -
isFailFast
public boolean isFailFast() -
setFailFast
public void setFailFast(boolean failFast) Sets whetherassertIsSatisfied()
should fail fast at the first detected failed expectation while it may otherwise wait for all expected messages to arrive before performing expectations verifications. Is by default true. Set to false to use behavior as in Camel 2.x. -
getBrowseLimit
public int getBrowseLimit()- Specified by:
getBrowseLimit
in interfaceorg.apache.camel.spi.BrowsableEndpoint
-
setBrowseLimit
public void setBrowseLimit(int browseLimit) - Specified by:
setBrowseLimit
in interfaceorg.apache.camel.spi.BrowsableEndpoint
-
getComponent
- Specified by:
getComponent
in interfaceorg.apache.camel.ComponentAware
- Overrides:
getComponent
in classorg.apache.camel.support.DefaultEndpoint
-
onExchange
protected void onExchange(org.apache.camel.Exchange exchange) -
performAssertions
protected void performAssertions(org.apache.camel.Exchange exchange, org.apache.camel.Exchange copy) throws Exception Performs the assertions on the incoming exchange.- Parameters:
exchange
- the actual exchangecopy
- a copy of the exchange (only store this)- Throws:
Exception
- can be thrown if something went wrong
-
addReceivedExchange
protected void addReceivedExchange(org.apache.camel.Exchange copy) Adds the received exchange.- Parameters:
copy
- a copy of the received exchange
-
waitForCompleteLatch
- Throws:
InterruptedException
-
waitForCompleteLatch
- Throws:
InterruptedException
-
assertEquals
-
assertEquals
-
assertTrue
Asserts that the givenpredicate
istrue
, if not anAssertionError
is raised with the give message.- Parameters:
message
- the message to use in case of a failure.predicate
- the predicate allowing to determinate if it is a failure or not.
-
assertFalse
Asserts that the givenpredicate
isfalse
, if not anAssertionError
is raised with the give message.- Parameters:
message
- the message to use in case of a failure.predicate
- the predicate allowing to determinate if it is a failure or not.
-
fail
-
getExpectedMinimumCount
public int getExpectedMinimumCount() -
await
- Throws:
InterruptedException
-
await
- Throws:
InterruptedException
-
isLenientProperties
public boolean isLenientProperties()- Specified by:
isLenientProperties
in interfaceorg.apache.camel.Endpoint
- Overrides:
isLenientProperties
in classorg.apache.camel.support.DefaultEndpoint
-