类org.springframework.context.event.test.AnotherTestEvent源码实例Demo

下面列出了怎么用org.springframework.context.event.test.AnotherTestEvent的API类实例代码及写法,或者点击链接到github查看源代码。

@Test
public void collectionReply() {
	load(TestEventListener.class, ReplyEventListener.class);
	Set<Object> replies = new LinkedHashSet<>();
	replies.add("first");
	replies.add(4L);
	replies.add("third");
	AnotherTestEvent event = new AnotherTestEvent(this, replies);
	ReplyEventListener replyEventListener = this.context.getBean(ReplyEventListener.class);
	TestEventListener listener = this.context.getBean(TestEventListener.class);

	this.eventCollector.assertNoEventReceived(listener);
	this.eventCollector.assertNoEventReceived(replyEventListener);
	this.context.publishEvent(event);
	this.eventCollector.assertEvent(replyEventListener, event);
	this.eventCollector.assertEvent(listener, "first", "third"); // reply (no listener for 4L)
	this.eventCollector.assertTotalEventsCount(3);
}
 
@EventListener
public Object handle(AnotherTestEvent event) {
	collectEvent(event);
	if (event.content == null) {
		return null;
	}
	else if (event.content instanceof String) {
		String s = (String) event.content;
		if (s.equals("String")) {
			return event.content;
		}
		else {
			return new TestEvent(this, event.getId(), s);
		}
	}
	return event.content;
}
 
@Test
public void collectionReply() {
	load(TestEventListener.class, ReplyEventListener.class);
	Set<Object> replies = new LinkedHashSet<>();
	replies.add("first");
	replies.add(4L);
	replies.add("third");
	AnotherTestEvent event = new AnotherTestEvent(this, replies);
	ReplyEventListener replyEventListener = this.context.getBean(ReplyEventListener.class);
	TestEventListener listener = this.context.getBean(TestEventListener.class);

	this.eventCollector.assertNoEventReceived(listener);
	this.eventCollector.assertNoEventReceived(replyEventListener);
	this.context.publishEvent(event);
	this.eventCollector.assertEvent(replyEventListener, event);
	this.eventCollector.assertEvent(listener, "first", "third"); // reply (no listener for 4L)
	this.eventCollector.assertTotalEventsCount(3);
}
 
@EventListener
public Object handle(AnotherTestEvent event) {
	collectEvent(event);
	if (event.content == null) {
		return null;
	}
	else if (event.content instanceof String) {
		String s = (String) event.content;
		if (s.equals("String")) {
			return event.content;
		}
		else {
			return new TestEvent(this, event.getId(), s);
		}
	}
	return event.content;
}
 
@Test
public void collectionReply() {
	load(TestEventListener.class, ReplyEventListener.class);
	Set<Object> replies = new LinkedHashSet<>();
	replies.add("first");
	replies.add(4L);
	replies.add("third");
	AnotherTestEvent event = new AnotherTestEvent(this, replies);
	ReplyEventListener replyEventListener = this.context.getBean(ReplyEventListener.class);
	TestEventListener listener = this.context.getBean(TestEventListener.class);

	this.eventCollector.assertNoEventReceived(listener);
	this.eventCollector.assertNoEventReceived(replyEventListener);
	this.context.publishEvent(event);
	this.eventCollector.assertEvent(replyEventListener, event);
	this.eventCollector.assertEvent(listener, "first", "third"); // reply (no listener for 4L)
	this.eventCollector.assertTotalEventsCount(3);
}
 
@EventListener
public Object handle(AnotherTestEvent event) {
	collectEvent(event);
	if (event.content == null) {
		return null;
	}
	else if (event.content instanceof String) {
		String s = (String) event.content;
		if (s.equals("String")) {
			return event.content;
		}
		else {
			return new TestEvent(this, event.getId(), s);
		}
	}
	return event.content;
}
 
@Test
public void simpleReply() {
	load(TestEventListener.class, ReplyEventListener.class);
	AnotherTestEvent event = new AnotherTestEvent(this, "dummy");
	ReplyEventListener replyEventListener = this.context.getBean(ReplyEventListener.class);
	TestEventListener listener = this.context.getBean(TestEventListener.class);

	this.eventCollector.assertNoEventReceived(listener);
	this.eventCollector.assertNoEventReceived(replyEventListener);
	this.context.publishEvent(event);
	this.eventCollector.assertEvent(replyEventListener, event);
	this.eventCollector.assertEvent(listener, new TestEvent(replyEventListener, event.getId(), "dummy")); // reply
	this.eventCollector.assertTotalEventsCount(2);
}
 
@Test
public void nullReplyIgnored() {
	load(TestEventListener.class, ReplyEventListener.class);
	AnotherTestEvent event = new AnotherTestEvent(this, null); // No response
	ReplyEventListener replyEventListener = this.context.getBean(ReplyEventListener.class);
	TestEventListener listener = this.context.getBean(TestEventListener.class);

	this.eventCollector.assertNoEventReceived(listener);
	this.eventCollector.assertNoEventReceived(replyEventListener);
	this.context.publishEvent(event);
	this.eventCollector.assertEvent(replyEventListener, event);
	this.eventCollector.assertNoEventReceived(listener);
	this.eventCollector.assertTotalEventsCount(1);
}
 
@Test
public void arrayReply() {
	load(TestEventListener.class, ReplyEventListener.class);
	AnotherTestEvent event = new AnotherTestEvent(this, new String[]{"first", "second"});
	ReplyEventListener replyEventListener = this.context.getBean(ReplyEventListener.class);
	TestEventListener listener = this.context.getBean(TestEventListener.class);

	this.eventCollector.assertNoEventReceived(listener);
	this.eventCollector.assertNoEventReceived(replyEventListener);
	this.context.publishEvent(event);
	this.eventCollector.assertEvent(replyEventListener, event);
	this.eventCollector.assertEvent(listener, "first", "second"); // reply
	this.eventCollector.assertTotalEventsCount(3);
}
 
@Test
public void collectionReplyNullValue() {
	load(TestEventListener.class, ReplyEventListener.class);
	AnotherTestEvent event = new AnotherTestEvent(this, Arrays.asList(null, "test"));
	ReplyEventListener replyEventListener = this.context.getBean(ReplyEventListener.class);
	TestEventListener listener = this.context.getBean(TestEventListener.class);

	this.eventCollector.assertNoEventReceived(listener);
	this.eventCollector.assertNoEventReceived(replyEventListener);
	this.context.publishEvent(event);
	this.eventCollector.assertEvent(replyEventListener, event);
	this.eventCollector.assertEvent(listener, "test");
	this.eventCollector.assertTotalEventsCount(2);
}
 
@Test
public void asyncProcessingApplied() throws InterruptedException {
	loadAsync(AsyncEventListener.class);

	String threadName = Thread.currentThread().getName();
	AnotherTestEvent event = new AnotherTestEvent(this, threadName);
	AsyncEventListener listener = this.context.getBean(AsyncEventListener.class);
	this.eventCollector.assertNoEventReceived(listener);

	this.context.publishEvent(event);
	this.countDownLatch.await(2, TimeUnit.SECONDS);
	this.eventCollector.assertEvent(listener, event);
	this.eventCollector.assertTotalEventsCount(1);
}
 
@Test
public void asyncProcessingAppliedWithInterfaceProxy() throws InterruptedException {
	doLoad(AsyncConfigurationWithInterfaces.class, SimpleProxyTestBean.class);

	String threadName = Thread.currentThread().getName();
	AnotherTestEvent event = new AnotherTestEvent(this, threadName);
	SimpleService listener = this.context.getBean(SimpleService.class);
	this.eventCollector.assertNoEventReceived(listener);

	this.context.publishEvent(event);
	this.countDownLatch.await(2, TimeUnit.SECONDS);
	this.eventCollector.assertEvent(listener, event);
	this.eventCollector.assertTotalEventsCount(1);
}
 
@Test
public void asyncProcessingAppliedWithScopedProxy() throws InterruptedException {
	doLoad(AsyncConfigurationWithInterfaces.class, ScopedProxyTestBean.class);

	String threadName = Thread.currentThread().getName();
	AnotherTestEvent event = new AnotherTestEvent(this, threadName);
	SimpleService listener = this.context.getBean(SimpleService.class);
	this.eventCollector.assertNoEventReceived(listener);

	this.context.publishEvent(event);
	this.countDownLatch.await(2, TimeUnit.SECONDS);
	this.eventCollector.assertEvent(listener, event);
	this.eventCollector.assertTotalEventsCount(1);
}
 
@Test
public void exceptionNotPropagatedWithAsync() throws InterruptedException {
	loadAsync(ExceptionEventListener.class);
	AnotherTestEvent event = new AnotherTestEvent(this, "fail");
	ExceptionEventListener listener = this.context.getBean(ExceptionEventListener.class);
	this.eventCollector.assertNoEventReceived(listener);

	this.context.publishEvent(event);
	this.countDownLatch.await(2, TimeUnit.SECONDS);

	this.eventCollector.assertEvent(listener, event);
	this.eventCollector.assertTotalEventsCount(1);
}
 
@Test
public void replyWithPayload() {
	load(TestEventListener.class, ReplyEventListener.class);
	AnotherTestEvent event = new AnotherTestEvent(this, "String");
	ReplyEventListener replyEventListener = this.context.getBean(ReplyEventListener.class);
	TestEventListener listener = this.context.getBean(TestEventListener.class);


	this.eventCollector.assertNoEventReceived(listener);
	this.eventCollector.assertNoEventReceived(replyEventListener);
	this.context.publishEvent(event);
	this.eventCollector.assertEvent(replyEventListener, event);
	this.eventCollector.assertEvent(listener, "String"); // reply
	this.eventCollector.assertTotalEventsCount(2);
}
 
@EventListener
@Async
public void handleAsync(AnotherTestEvent event) {
	collectEvent(event);
	if ("fail".equals(event.content)) {
		this.countDownLatch.countDown();
		throw new IllegalStateException("Test exception");
	}
}
 
@EventListener
@Async
public void handleAsync(AnotherTestEvent event) {
	assertNotEquals(event.content, Thread.currentThread().getName());
	collectEvent(event);
	this.countDownLatch.countDown();
}
 
@EventListener
@Async
public void handleAsync(AnotherTestEvent event) {
	assertNotEquals(event.content, Thread.currentThread().getName());
	this.eventCollector.addEvent(this, event);
	this.countDownLatch.countDown();
}
 
@EventListener
@Async
public void handleAsync(AnotherTestEvent event) {
	assertNotEquals(event.content, Thread.currentThread().getName());
	this.eventCollector.addEvent(this, event);
	this.countDownLatch.countDown();
}
 
@Test
public void simpleReply() {
	load(TestEventListener.class, ReplyEventListener.class);
	AnotherTestEvent event = new AnotherTestEvent(this, "dummy");
	ReplyEventListener replyEventListener = this.context.getBean(ReplyEventListener.class);
	TestEventListener listener = this.context.getBean(TestEventListener.class);


	this.eventCollector.assertNoEventReceived(listener);
	this.eventCollector.assertNoEventReceived(replyEventListener);
	this.context.publishEvent(event);
	this.eventCollector.assertEvent(replyEventListener, event);
	this.eventCollector.assertEvent(listener, new TestEvent(replyEventListener, event.getId(), "dummy")); // reply
	this.eventCollector.assertTotalEventsCount(2);
}
 
@Test
public void nullReplyIgnored() {
	load(TestEventListener.class, ReplyEventListener.class);
	AnotherTestEvent event = new AnotherTestEvent(this, null); // No response
	ReplyEventListener replyEventListener = this.context.getBean(ReplyEventListener.class);
	TestEventListener listener = this.context.getBean(TestEventListener.class);

	this.eventCollector.assertNoEventReceived(listener);
	this.eventCollector.assertNoEventReceived(replyEventListener);
	this.context.publishEvent(event);
	this.eventCollector.assertEvent(replyEventListener, event);
	this.eventCollector.assertNoEventReceived(listener);
	this.eventCollector.assertTotalEventsCount(1);
}
 
@Test
public void arrayReply() {
	load(TestEventListener.class, ReplyEventListener.class);
	AnotherTestEvent event = new AnotherTestEvent(this, new String[]{"first", "second"});
	ReplyEventListener replyEventListener = this.context.getBean(ReplyEventListener.class);
	TestEventListener listener = this.context.getBean(TestEventListener.class);

	this.eventCollector.assertNoEventReceived(listener);
	this.eventCollector.assertNoEventReceived(replyEventListener);
	this.context.publishEvent(event);
	this.eventCollector.assertEvent(replyEventListener, event);
	this.eventCollector.assertEvent(listener, "first", "second"); // reply
	this.eventCollector.assertTotalEventsCount(3);
}
 
@Test
public void collectionReplyNullValue() {
	load(TestEventListener.class, ReplyEventListener.class);
	AnotherTestEvent event = new AnotherTestEvent(this, Arrays.asList(null, "test"));
	ReplyEventListener replyEventListener = this.context.getBean(ReplyEventListener.class);
	TestEventListener listener = this.context.getBean(TestEventListener.class);

	this.eventCollector.assertNoEventReceived(listener);
	this.eventCollector.assertNoEventReceived(replyEventListener);
	this.context.publishEvent(event);
	this.eventCollector.assertEvent(replyEventListener, event);
	this.eventCollector.assertEvent(listener, "test");
	this.eventCollector.assertTotalEventsCount(2);
}
 
@Test
public void asyncProcessingApplied() throws InterruptedException {
	loadAsync(AsyncEventListener.class);

	String threadName = Thread.currentThread().getName();
	AnotherTestEvent event = new AnotherTestEvent(this, threadName);
	AsyncEventListener listener = this.context.getBean(AsyncEventListener.class);
	this.eventCollector.assertNoEventReceived(listener);

	this.context.publishEvent(event);
	this.countDownLatch.await(2, TimeUnit.SECONDS);
	this.eventCollector.assertEvent(listener, event);
	this.eventCollector.assertTotalEventsCount(1);
}
 
@Test
public void asyncProcessingAppliedWithInterfaceProxy() throws InterruptedException {
	doLoad(AsyncConfigurationWithInterfaces.class, SimpleProxyTestBean.class);

	String threadName = Thread.currentThread().getName();
	AnotherTestEvent event = new AnotherTestEvent(this, threadName);
	SimpleService listener = this.context.getBean(SimpleService.class);
	this.eventCollector.assertNoEventReceived(listener);

	this.context.publishEvent(event);
	this.countDownLatch.await(2, TimeUnit.SECONDS);
	this.eventCollector.assertEvent(listener, event);
	this.eventCollector.assertTotalEventsCount(1);
}
 
@Test
public void asyncProcessingAppliedWithScopedProxy() throws InterruptedException {
	doLoad(AsyncConfigurationWithInterfaces.class, ScopedProxyTestBean.class);

	String threadName = Thread.currentThread().getName();
	AnotherTestEvent event = new AnotherTestEvent(this, threadName);
	SimpleService listener = this.context.getBean(SimpleService.class);
	this.eventCollector.assertNoEventReceived(listener);

	this.context.publishEvent(event);
	this.countDownLatch.await(2, TimeUnit.SECONDS);
	this.eventCollector.assertEvent(listener, event);
	this.eventCollector.assertTotalEventsCount(1);
}
 
@Test
public void exceptionNotPropagatedWithAsync() throws InterruptedException {
	loadAsync(ExceptionEventListener.class);
	AnotherTestEvent event = new AnotherTestEvent(this, "fail");
	ExceptionEventListener listener = this.context.getBean(ExceptionEventListener.class);
	this.eventCollector.assertNoEventReceived(listener);

	this.context.publishEvent(event);
	this.countDownLatch.await(2, TimeUnit.SECONDS);

	this.eventCollector.assertEvent(listener, event);
	this.eventCollector.assertTotalEventsCount(1);
}
 
@Test
public void replyWithPayload() {
	load(TestEventListener.class, ReplyEventListener.class);
	AnotherTestEvent event = new AnotherTestEvent(this, "String");
	ReplyEventListener replyEventListener = this.context.getBean(ReplyEventListener.class);
	TestEventListener listener = this.context.getBean(TestEventListener.class);


	this.eventCollector.assertNoEventReceived(listener);
	this.eventCollector.assertNoEventReceived(replyEventListener);
	this.context.publishEvent(event);
	this.eventCollector.assertEvent(replyEventListener, event);
	this.eventCollector.assertEvent(listener, "String"); // reply
	this.eventCollector.assertTotalEventsCount(2);
}
 
@EventListener
@Async
public void handleAsync(AnotherTestEvent event) {
	collectEvent(event);
	if ("fail".equals(event.content)) {
		this.countDownLatch.countDown();
		throw new IllegalStateException("Test exception");
	}
}
 
@EventListener
@Async
public void handleAsync(AnotherTestEvent event) {
	assertTrue(!Thread.currentThread().getName().equals(event.content));
	collectEvent(event);
	this.countDownLatch.countDown();
}
 
 同包方法