Java 类org.mockito.verification.Timeout 实例源码
项目:monarch
文件:GMSJoinLeaveJUnitTest.java
@Test
public void testNetworkPartionMessage() throws Exception {
try {
initMocks(true);
System.setProperty(GMSJoinLeave.BYPASS_DISCOVERY_PROPERTY, "true");
gmsJoinLeave.join();
installView(1, gmsJoinLeaveMemberId, createMemberList(mockMembers[0], mockMembers[1],
mockMembers[2], gmsJoinLeaveMemberId, mockMembers[3]));
for (int i = 1; i < 4; i++) {
RemoveMemberMessage msg =
new RemoveMemberMessage(gmsJoinLeaveMemberId, mockMembers[i], "crashed");
msg.setSender(gmsJoinLeaveMemberId);
gmsJoinLeave.processMessage(msg);
}
Timeout to = new Timeout(3 * ServiceConfig.MEMBER_REQUEST_COLLECTION_INTERVAL, new Times(1));
verify(messenger, to).send(isA(NetworkPartitionMessage.class));
} finally {
System.getProperties().remove(GMSJoinLeave.BYPASS_DISCOVERY_PROPERTY);
}
}
项目:monarch
文件:GMSJoinLeaveJUnitTest.java
@Test
public void testViewIgnoredAfterShutdown() throws Exception {
try {
initMocks(true);
System.setProperty(GMSJoinLeave.BYPASS_DISCOVERY_PROPERTY, "true");
gmsJoinLeave.join();
installView(1, gmsJoinLeaveMemberId, createMemberList(mockMembers[0], mockMembers[1],
mockMembers[2], gmsJoinLeaveMemberId, mockMembers[3]));
gmsJoinLeave.stop();
for (int i = 1; i < 4; i++) {
RemoveMemberMessage msg =
new RemoveMemberMessage(gmsJoinLeaveMemberId, mockMembers[i], "crashed");
msg.setSender(gmsJoinLeaveMemberId);
gmsJoinLeave.processMessage(msg);
}
Timeout to = new Timeout(2 * ServiceConfig.MEMBER_REQUEST_COLLECTION_INTERVAL, never());
verify(messenger, to).send(isA(NetworkPartitionMessage.class));
} finally {
System.getProperties().remove(GMSJoinLeave.BYPASS_DISCOVERY_PROPERTY);
}
}
项目:Auth0.Android
文件:CustomTabsControllerTest.java
@Test
public void shouldLaunchUriWithFallbackIfCustomTabIntentFails() throws Exception {
doThrow(ActivityNotFoundException.class)
.doNothing()
.when(context).startActivity(any(Intent.class));
controller.launchUri(uri);
verify(context, new Timeout(MAX_TEST_WAIT_TIME_MS, VerificationModeFactory.times(2))).startActivity(launchIntentCaptor.capture());
List<Intent> intents = launchIntentCaptor.getAllValues();
Intent customTabIntent = intents.get(0);
assertThat(customTabIntent.getAction(), is(Intent.ACTION_VIEW));
assertThat(customTabIntent.getData(), is(uri));
assertThat(customTabIntent, not(hasFlag(Intent.FLAG_ACTIVITY_NO_HISTORY)));
assertThat(customTabIntent.hasExtra(CustomTabsIntent.EXTRA_SESSION), is(true));
assertThat(customTabIntent.hasExtra(CustomTabsIntent.EXTRA_TITLE_VISIBILITY_STATE), is(true));
assertThat(customTabIntent.hasExtra(CustomTabsIntent.EXTRA_TOOLBAR_COLOR), is(false));
assertThat(customTabIntent.getIntExtra(CustomTabsIntent.EXTRA_TITLE_VISIBILITY_STATE, CustomTabsIntent.NO_TITLE), is(CustomTabsIntent.NO_TITLE));
Intent fallbackIntent = intents.get(1);
assertThat(fallbackIntent.getAction(), is(Intent.ACTION_VIEW));
assertThat(fallbackIntent.getData(), is(uri));
assertThat(fallbackIntent, hasFlag(Intent.FLAG_ACTIVITY_NO_HISTORY));
assertThat(fallbackIntent.hasExtra(CustomTabsIntent.EXTRA_SESSION), is(false));
assertThat(fallbackIntent.hasExtra(CustomTabsIntent.EXTRA_TITLE_VISIBILITY_STATE), is(false));
}
项目:java-api
文件:WebsocketUserStreamIT.java
private void cancelAllPendingOrders() throws Exception {
Thread.sleep(1000); // let the orders arrive
int numPending = orderListener.ordersToCancel.size();
if (numPending > 0) {
userStream.batch().cancelOrders(orderListener.ordersToCancel).send();
orderListener.ordersToCancel.forEach(
cancelSpec -> verify(orderListener, timeout(1000))
.onOrderCancelled(new OrderCancelled(cancelSpec.getClientOrderId()))
);
verify(accountStateListener, new Timeout(1000, atLeastOnce())).onAccountState(any());
}
}
项目:flink
文件:ExecutionGraphSchedulingTest.java
private static void verifyNothingDeployed(ExecutionGraph eg, TaskManagerGateway[] taskManagers) {
// job should still be running
assertEquals(JobStatus.RUNNING, eg.getState());
// none of the TaskManager should have gotten a deployment call, yet
for (TaskManagerGateway gateway : taskManagers) {
verify(gateway, new Timeout(50, times(0))).submitTask(any(TaskDeploymentDescriptor.class), any(Time.class));
}
}
项目:osc-core
文件:JobQueuerTest.java
@Test
@Ignore // this test is unstable
public void testPutJob() {
final TaskGraph tg = new TaskGraph();
tg.addTask(this.A);
tg.addTask(this.B);
tg.addTask(this.C, this.A);
tg.addTask(this.D, this.A);
final TaskGraph tg2 = new TaskGraph();
tg2.addTask(this.A);
tg2.addTask(this.B);
tg2.addTask(this.C, this.A);
tg2.addTask(this.D, this.A);
final TaskGraph tg3 = new TaskGraph();
tg3.addTask(this.A);
tg3.addTask(this.B);
tg3.addTask(this.C, this.A);
tg3.addTask(this.D, this.A);
@SuppressWarnings("unchecked")
final List<String> mockList = mock(List.class);
JobEngine.getEngine().addJobCompletionListener(new JobCompletionListener() {
@Override
public void completed(Job job) {
mockList.add(job.getName());
}
});
Runnable job1Runnable = new Runnable() {
@Override
public void run() {
JobQueuer.getInstance().putJob(new JobRequest("Job-parallel-nested1", tg, false));
}
};
Runnable job2Runnable = new Runnable() {
@Override
public void run() {
JobQueuer.getInstance().putJob(new JobRequest("Job-parallel-nested2", tg2, false));
}
};
Runnable job3Runnable = new Runnable() {
@Override
public void run() {
JobQueuer.getInstance().putJob(new JobRequest("Job-parallel-nested3", tg3, false));
}
};
new Thread(job1Runnable).start();
try {
Thread.sleep(1000);
} catch (InterruptedException e1) {
e1.printStackTrace();
}
new Thread(job2Runnable).start();
new Thread(job3Runnable).start();
InOrder inOrder = inOrder(mockList);
verify(mockList, new Timeout(5000, new InOrderWrapper(new Times(1), (InOrderImpl) inOrder))).add(
"Job-parallel-nested1");
verify(mockList, new Timeout(5000, new InOrderWrapper(new Times(1), (InOrderImpl) inOrder))).add(
"Job-parallel-nested2");
verify(mockList, new Timeout(5000, new InOrderWrapper(new Times(1), (InOrderImpl) inOrder))).add(
"Job-parallel-nested3");
verifyNoMoreInteractions(mockList);
}
项目:java-api
文件:WebsocketUserStreamIT.java
@Test(enabled = TESTS_ENABLED)
public void testPlacingModifyingAndCancelingSingleOrder() throws Exception {
// this test will work correctly with 100 BTC balance
// given
long clOrId = System.currentTimeMillis();
BigDecimal price = $("0.1");
OrderSide side = OrderSide.SELL;
int qty = 5;
// when
userStream.placeOrder(new LimitOrderSpec(
clOrId,
FUTURES_INSTRUMENT_ID,
side,
qty,
price
));
// then
verify(orderListener, timeout(1000)).onOrderPlaced(new OrderPlaced(
clOrId,
FUTURES_INSTRUMENT_ID,
price,
side,
qty,
qty
));
// and then
// when
int newQty = 4;
BigDecimal newPrice = $("0.05");
userStream.modifyOrder(new OrderModificationSpec(clOrId, newQty, newPrice));
// then
verify(orderListener, timeout(1000)).onOrderModified(new OrderModified(clOrId));
// and then
// when
userStream.cancelOrder(new OrderCancelSpec(clOrId));
// then
verify(orderListener, timeout(1000)).onOrderCancelled(new OrderCancelled(clOrId));
verify(accountStateListener, new Timeout(1000, atLeastOnce())).onAccountState(any());
verify(streamFailureListener, never()).onStreamFailure(any());
}
项目:flink
文件:ExecutionGraphSchedulingTest.java
/**
* Tests that with scheduling futures and pipelined deployment, the target vertex will
* not deploy its task before the source vertex does.
*/
@Test
public void testScheduleSourceBeforeTarget() throws Exception {
// [pipelined]
// we construct a simple graph (source) ----------------> (target)
final int parallelism = 1;
final JobVertex sourceVertex = new JobVertex("source");
sourceVertex.setParallelism(parallelism);
sourceVertex.setInvokableClass(NoOpInvokable.class);
final JobVertex targetVertex = new JobVertex("target");
targetVertex.setParallelism(parallelism);
targetVertex.setInvokableClass(NoOpInvokable.class);
targetVertex.connectNewDataSetAsInput(sourceVertex, DistributionPattern.ALL_TO_ALL, ResultPartitionType.PIPELINED);
final JobID jobId = new JobID();
final JobGraph jobGraph = new JobGraph(jobId, "test", sourceVertex, targetVertex);
final CompletableFuture<LogicalSlot> sourceFuture = new CompletableFuture<>();
final CompletableFuture<LogicalSlot> targetFuture = new CompletableFuture<>();
ProgrammedSlotProvider slotProvider = new ProgrammedSlotProvider(parallelism);
slotProvider.addSlot(sourceVertex.getID(), 0, sourceFuture);
slotProvider.addSlot(targetVertex.getID(), 0, targetFuture);
final ExecutionGraph eg = createExecutionGraph(jobGraph, slotProvider);
// set up two TaskManager gateways and slots
final TaskManagerGateway gatewaySource = createTaskManager();
final TaskManagerGateway gatewayTarget = createTaskManager();
final SimpleSlot sourceSlot = createSlot(gatewaySource, jobId);
final SimpleSlot targetSlot = createSlot(gatewayTarget, jobId);
eg.setScheduleMode(ScheduleMode.EAGER);
eg.setQueuedSchedulingAllowed(true);
eg.scheduleForExecution();
// job should be running
assertEquals(JobStatus.RUNNING, eg.getState());
// we fulfill the target slot before the source slot
// that should not cause a deployment or deployment related failure
targetFuture.complete(targetSlot);
verify(gatewayTarget, new Timeout(50, times(0))).submitTask(any(TaskDeploymentDescriptor.class), any(Time.class));
assertEquals(JobStatus.RUNNING, eg.getState());
// now supply the source slot
sourceFuture.complete(sourceSlot);
// by now, all deployments should have happened
verify(gatewaySource, timeout(1000)).submitTask(any(TaskDeploymentDescriptor.class), any(Time.class));
verify(gatewayTarget, timeout(1000)).submitTask(any(TaskDeploymentDescriptor.class), any(Time.class));
assertEquals(JobStatus.RUNNING, eg.getState());
}
项目:Camel
文件:TelegramChatBotTest.java
@Test
public void testChatBotResult() throws Exception {
TelegramService service = currentMockService();
ArgumentCaptor<OutgoingTextMessage> captor = ArgumentCaptor.forClass(OutgoingTextMessage.class);
verify(service, new Timeout(5000, times(2))).sendMessage(eq("mock-token"), captor.capture());
List<OutgoingTextMessage> msgs = captor.getAllValues();
assertCollectionSize(msgs, 2);
assertTrue(msgs.stream().anyMatch(m -> "echo from the bot: Hello World!".equals(m.getText())));
assertTrue(msgs.stream().anyMatch(m -> "echo from the bot: taken".equals(m.getText())));
assertTrue(msgs.stream().noneMatch(m -> m.getParseMode() != null));
}
项目:astor
文件:Mockito.java
/**
* Allows verifying with timeout. May be useful for testing in concurrent conditions.
* <p>
* It feels this feature should be used rarely - figure out a better way of testing your multi-threaded system
* <p>
* Not yet implemented to work with InOrder verification.
* <pre>
* //passes when someMethod() is called within given time span
* verify(mock, timeout(100)).someMethod();
* //above is an alias to:
* verify(mock, timeout(100).times(1)).someMethod();
*
* //passes when someMethod() is called *exactly* 2 times within given time span
* verify(mock, timeout(100).times(2)).someMethod();
*
* //passes when someMethod() is called *at lest* 2 times within given time span
* verify(mock, timeout(100).atLeast(2)).someMethod();
*
* //verifies someMethod() within given time span using given verification mode
* //useful only if you have your own custom verification modes.
* verify(mock, new Timeout(100, yourOwnVerificationMode)).someMethod();
* </pre>
*
* See examples in javadoc for {@link Mockito} class
*
* @param millis - time span in millis
*
* @return verification mode
*/
public static VerificationWithTimeout timeout(int millis) {
return new Timeout(millis, VerificationModeFactory.times(1));
}
项目:astor
文件:Mockito.java
/**
* Allows verifying with timeout. It causes a verify to wait for a specified period of time for a desired
* interaction rather than fails immediately if has not already happened. May be useful for testing in concurrent
* conditions.
* <p>
* This differs from {@link Mockito#after after()} in that after() will wait the full period, unless
* the final test result is known early (e.g. if a never() fails), whereas timeout() will stop early as soon
* as verification passes, producing different behaviour when used with times(2), for example, which can pass
* and then later fail. In that case, timeout would pass as soon as times(2) passes, whereas after would run until
* times(2) failed, and then fail.
* <p>
* It feels this feature should be used rarely - figure out a better way of testing your multi-threaded system
* <p>
* Not yet implemented to work with InOrder verification.
* <pre class="code"><code class="java">
* //passes when someMethod() is called within given time span
* verify(mock, timeout(100)).someMethod();
* //above is an alias to:
* verify(mock, timeout(100).times(1)).someMethod();
*
* //passes as soon as someMethod() has been called 2 times before the given timeout
* verify(mock, timeout(100).times(2)).someMethod();
*
* //equivalent: this also passes as soon as someMethod() has been called 2 times before the given timeout
* verify(mock, timeout(100).atLeast(2)).someMethod();
*
* //verifies someMethod() within given time span using given verification mode
* //useful only if you have your own custom verification modes.
* verify(mock, new Timeout(100, yourOwnVerificationMode)).someMethod();
* </code></pre>
*
* See examples in javadoc for {@link Mockito} class
*
* @param millis - time span in milliseconds
*
* @return verification mode
*/
public static VerificationWithTimeout timeout(int millis) {
return new Timeout(millis, VerificationModeFactory.times(1));
}