@Test @SuppressWarnings("unchecked") public void resolveAsyncAttributes() { TestBean testBean1 = new TestBean("Bean1"); TestBean testBean2 = new TestBean("Bean2"); Map<String, Object> attributes = new HashMap<>(); attributes.put("attr1", Mono.just(testBean1)); attributes.put("attr2", Flux.just(testBean1, testBean2)); attributes.put("attr3", Single.just(testBean2)); attributes.put("attr4", Observable.just(testBean1, testBean2)); attributes.put("attr5", Mono.empty()); TestView view = new TestView(); StepVerifier.create( view.render(attributes, null, this.exchange)).verifyComplete(); Map<String, Object> actual = view.attributes; assertEquals(testBean1, actual.get("attr1")); assertArrayEquals(new TestBean[] { testBean1, testBean2 }, ((List<TestBean>) actual.get("attr2")).toArray()); assertEquals(testBean2, actual.get("attr3")); assertArrayEquals(new TestBean[] { testBean1, testBean2 }, ((List<TestBean>) actual.get("attr4")).toArray()); assertNull(actual.get("attr5")); }