类org.springframework.messaging.simp.stomp.StompSession.Receiptable源码实例Demo

下面列出了怎么用org.springframework.messaging.simp.stomp.StompSession.Receiptable的API类实例代码及写法,或者点击链接到github查看源代码。

@Test
@SuppressWarnings({ "unchecked", "rawtypes" })
public void receiptNotReceived() {
	TaskScheduler taskScheduler = mock(TaskScheduler.class);

	this.session.afterConnected(this.connection);
	this.session.setTaskScheduler(taskScheduler);

	AtomicReference<Boolean> notReceived = new AtomicReference<>();

	ScheduledFuture future = mock(ScheduledFuture.class);
	given(taskScheduler.schedule(any(Runnable.class), any(Date.class))).willReturn(future);

	StompHeaders headers = new StompHeaders();
	headers.setDestination("/topic/foo");
	headers.setReceipt("my-receipt");
	Receiptable receiptable = this.session.send(headers, "payload");
	receiptable.addReceiptLostTask(() -> notReceived.set(true));

	ArgumentCaptor<Runnable> taskCaptor = ArgumentCaptor.forClass(Runnable.class);
	verify(taskScheduler).schedule(taskCaptor.capture(), (Date) notNull());
	Runnable scheduledTask = taskCaptor.getValue();
	assertNotNull(scheduledTask);

	assertNull(notReceived.get());

	scheduledTask.run();
	assertTrue(notReceived.get());
	verify(future).cancel(true);
	verifyNoMoreInteractions(future);
}
 
@Test
@SuppressWarnings({ "unchecked", "rawtypes" })
public void receiptNotReceived() {
	TaskScheduler taskScheduler = mock(TaskScheduler.class);

	this.session.afterConnected(this.connection);
	this.session.setTaskScheduler(taskScheduler);

	AtomicReference<Boolean> notReceived = new AtomicReference<>();

	ScheduledFuture future = mock(ScheduledFuture.class);
	when(taskScheduler.schedule(any(Runnable.class), any(Date.class))).thenReturn(future);

	StompHeaders headers = new StompHeaders();
	headers.setDestination("/topic/foo");
	headers.setReceipt("my-receipt");
	Receiptable receiptable = this.session.send(headers, "payload");
	receiptable.addReceiptLostTask(() -> notReceived.set(true));

	ArgumentCaptor<Runnable> taskCaptor = ArgumentCaptor.forClass(Runnable.class);
	verify(taskScheduler).schedule(taskCaptor.capture(), (Date) notNull());
	Runnable scheduledTask = taskCaptor.getValue();
	assertNotNull(scheduledTask);

	assertNull(notReceived.get());

	scheduledTask.run();
	assertTrue(notReceived.get());
	verify(future).cancel(true);
	verifyNoMoreInteractions(future);
}
 
@Test
@SuppressWarnings({ "unchecked", "rawtypes" })
public void receiptNotReceived() throws Exception {

	TaskScheduler taskScheduler = mock(TaskScheduler.class);

	this.session.afterConnected(this.connection);
	this.session.setTaskScheduler(taskScheduler);

	AtomicReference<Boolean> notReceived = new AtomicReference<>();

	ScheduledFuture future = mock(ScheduledFuture.class);
	when(taskScheduler.schedule(any(Runnable.class), any(Date.class))).thenReturn(future);

	StompHeaders headers = new StompHeaders();
	headers.setDestination("/topic/foo");
	headers.setReceipt("my-receipt");
	Receiptable receiptable = this.session.send(headers, "payload");
	receiptable.addReceiptLostTask(() -> notReceived.set(true));

	ArgumentCaptor<Runnable> taskCaptor = ArgumentCaptor.forClass(Runnable.class);
	verify(taskScheduler).schedule(taskCaptor.capture(), notNull(Date.class));
	Runnable scheduledTask = taskCaptor.getValue();
	assertNotNull(scheduledTask);

	assertNull(notReceived.get());

	scheduledTask.run();
	assertTrue(notReceived.get());
	verify(future).cancel(true);
	verifyNoMoreInteractions(future);
}
 
 类方法
 同包方法