var Qux = function() { return { thing: function() { console.log('I am a thing!'); }, stuff: function() { console.log('Yikes! That\'s a bunch of stuff'); } }; }; var foo = new Qux(); var bar = new Qux(); var myfunc = function(foo, bar) { if (foo instanceof Qux) foo.thing(); if (bar instanceof Qux) bar.stuff(); }; myfunc(foo,bar);
@SuppressWarnings("serial") @Test @SpecAssertion(section = MEMBER_LEVEL_INHERITANCE, id = "g") public void testObserverResolution() throws Exception { Set<ObserverMethod<? super Qux>> observerMethods = getCurrentManager().resolveObserverMethods(new Qux(null)); assertEquals(observerMethods.size(), 1); ObserverMethod<? super Qux> observerMethod = observerMethods.iterator().next(); assertEquals(observerMethod.getBeanClass(), Foo.class); assertEquals(observerMethod.getObservedType(), new TypeLiteral<Baz<String>>() { }.getType()); }
@Test(dataProvider = ARQUILLIAN_DATA_PROVIDER) @SpecAssertion(section = MEMBER_LEVEL_INHERITANCE, id = "g") public void testObserver(Foo foo) throws Exception { assertNotNull(foo); getCurrentManager().fireEvent(new Qux(null)); assertNotNull(foo.getT1BazEvent()); assertEquals(foo.getT1ObserverInjectionPoint(), "ok"); }
case 0: return new Foo(); case 1: return new Bar(); case 2: return new Qux();
@Test public void testMyTest() { // ... Foo<Bar> mockFooBar = mockFoo(); when(mockFooBar.getValue).thenReturn(new Bar()); Foo<Baz> mockFooBaz = mockFoo(); when(mockFooBaz.getValue).thenReturn(new Baz()); Foo<Qux> mockFooQux = mockFoo(); when(mockFooQux.getValue).thenReturn(new Qux()); // ... } @SuppressWarnings("unchecked") // still needed :( but just once :) private <T> Foo<T> mockFoo() { return mock(Foo.class); }