/** * Gets the bean definition of the activity associated with the given place IDENTIFIER, if one exists. * @param identifier the place IDENTIFIER. Null is permitted, but always resolves to an empty collection. * @return an unmodifiable collection with zero or one item, depending on if the resolution was successful. */ private Collection<SyncBeanDef<Activity>> resolveById(final String identifier) { if (identifier == null) { return emptyList(); } SyncBeanDef<Activity> beanDefActivity = activityBeansCache.getActivity(identifier); if (beanDefActivity == null) { return emptyList(); } return singletonList(beanDefActivity); }
private PerspectiveEditorActivity createNewPerspective(LayoutTemplate perspective, PerspectiveEditorScreenActivity screen) { final PerspectiveEditorActivity activity = new PerspectiveEditorActivity(perspective, screen); beanManager.registerBean(new SingletonBeanDef<>(activity, PerspectiveActivity.class, new HashSet<>(Arrays.asList(DEFAULT_QUALIFIERS)), perspective.getName(), true)); activityBeansCache.addNewPerspectiveActivity(beanManager.lookupBeans(perspective.getName()).iterator().next()); return activity; }
public List<String> getAvailablePerspectivesIds() { return activityBeansCache.getPerspectiveActivities().stream() .map(this::getId) .sorted(ALPHABETICAL_ORDER) .collect(Collectors.toList()); }
@Test public void cacheShouldNotReturnInactiveBeansByName() throws Exception { activityBeansCache.init(); assertSame(activeSplashScreenActivityBean, activityBeansCache.getActivity("ActiveSplashScreenActivity")); assertSame(activeResourceActivityBean, activityBeansCache.getActivity("ActiveResourceActivity")); assertSame(activeRegularActivityBean, activityBeansCache.getActivity("ActiveRegularActivity")); assertNull(activityBeansCache.getActivity("NonActiveSplashScreenActivity")); assertNull(activityBeansCache.getActivity("NonActiveResourceActivity")); assertNull(activityBeansCache.getActivity("NonActiveRegularActivity")); }
@Test public void shouldNotReturnInactiveBeansFromGetSplashScreens() throws Exception { activityBeansCache.init(); List<SplashScreenActivity> splashScreens = activityBeansCache.getSplashScreens(); assertEquals(1, splashScreens.size()); assertSame(activeSplashScreenActivity, splashScreens.iterator().next()); }
beanDefs.add(bean3); beanDefs.add(bean4); when(activityBeansCache.getActivity("Perspective1")).thenReturn(bean1); when(activityBeansCache.getActivity("Perspective2")).thenReturn(bean2); when(activityBeansCache.getActivity("org.Perspective3")).thenReturn(bean3); when(activityBeansCache.getActivity("org.Perspective4")).thenReturn(bean4); when(activityBeansCache.getPerspectiveActivities()).thenReturn(beanDefs);
@Test public void getPerspectiveActivities() { SyncBeanDef mock1 = mock(SyncBeanDef.class); when(mock1.getName()).thenReturn("perspective2"); when(mock1.isAssignableTo(PerspectiveActivity.class)).thenReturn(true); SyncBeanDef mock2 = mock(SyncBeanDef.class); when(mock2.getName()).thenReturn("screen"); when(mock2.isAssignableTo(PerspectiveActivity.class)).thenReturn(false); cache.addNewPerspectiveActivity(mock1); cache.addNewPerspectiveActivity(mock2); List<SyncBeanDef<Activity>> perspectiveActivities = cache.getPerspectiveActivities(); assertEquals(perspectiveActivities.size(), 1); } }
@Override public SplashScreenActivity getSplashScreenInterceptor(final PlaceRequest placeRequest) { SplashScreenActivity resultBean = null; for (SplashScreenActivity splashScreen : activityBeansCache.getSplashScreens()) { if (splashScreen.intercept(placeRequest)) { if (splashScreen.isEnabled()) { resultBean = splashScreen; break; } } } return startIfNecessary(secure(resultBean), placeRequest); }
private PerspectiveEditorScreenActivity createNewScreen(LayoutTemplate perspective) { PerspectiveEditorScreenActivity activity = new PerspectiveEditorScreenActivity(perspective, layoutGenerator); final Set<Annotation> qualifiers = new HashSet<>(Arrays.asList(DEFAULT_QUALIFIERS)); final SingletonBeanDef<PerspectiveEditorScreenActivity, PerspectiveEditorScreenActivity> beanDef = new SingletonBeanDef<>( activity, PerspectiveEditorScreenActivity.class, qualifiers, activity.getIdentifier(), true, WorkbenchScreenActivity.class, Activity.class); beanManager.registerBean(beanDef); beanManager.registerBeanTypeAlias(beanDef, Activity.class); beanManager.registerBeanTypeAlias(beanDef, WorkbenchScreenActivity.class); activityBeansCache.addNewScreenActivity(beanManager.lookupBeans(activity.getIdentifier()).iterator().next()); return activity; }
@Test public void addEditorActivityShouldAddToActivitiesByID() { String resource = "resource"; Collection<SyncBeanDef> resourceTypeBeans = createResourceType("MODEL"); when(iocManager.lookupBeans(eq(resource))).thenReturn(resourceTypeBeans); SyncBeanDef mock = mock(SyncBeanDef.class); when(mock.getName()).thenReturn(resource); cache.addNewEditorActivity(mock, "1", resource); assertTrue(cache.hasActivity(resource)); }
private EditorDef registerResourceType(ClientResourceType resourceType, Class<?> editorActivityClass, String type, String priority, Category category) { SyncBeanDef<ClientResourceType> typeBeanDef = mock(SyncBeanDef.class); when(typeBeanDef.getInstance()).thenReturn(resourceType); Collection<SyncBeanDef> resourceTypeBeans = Arrays.asList(typeBeanDef); when(iocManager.lookupBeans(eq(type))).thenReturn(resourceTypeBeans); SyncBeanDef editorActivityDef = mock(SyncBeanDef.class); when(editorActivityDef.getBeanClass()).thenReturn(editorActivityClass); when(editorActivityDef.getName()).thenReturn(type); activityBeansCache.addNewEditorActivity(editorActivityDef, priority, type); return new EditorDef(editorActivityDef, resourceType, category); }
private boolean checkIfAllPlacesAreValidActivities(PanelDefinition child) { for (PartDefinition partDefinition : ensureIterable(child.getParts())) { PlaceRequest place = partDefinition.getPlace(); if (!activityBeansCache.hasActivity(place.getIdentifier())) { return false; } } return true; } }
beanDefs.add(bean3); beanDefs.add(bean4); when(activityBeansCache.getActivity("Perspective1")).thenReturn(bean1); when(activityBeansCache.getActivity("Perspective2")).thenReturn(bean2); when(activityBeansCache.getActivity("org.Perspective3")).thenReturn(bean3); when(activityBeansCache.getActivity("org.Perspective4")).thenReturn(bean4); when(activityBeansCache.getPerspectiveActivities()).thenReturn(beanDefs);
@Test public void getPerspectiveActivities() { SyncBeanDef mock1 = mock(SyncBeanDef.class); when(mock1.getName()).thenReturn("perspective2"); when(mock1.isAssignableTo(PerspectiveActivity.class)).thenReturn(true); SyncBeanDef mock2 = mock(SyncBeanDef.class); when(mock2.getName()).thenReturn("screen"); when(mock2.isAssignableTo(PerspectiveActivity.class)).thenReturn(false); cache.addNewPerspectiveActivity(mock1); cache.addNewPerspectiveActivity(mock2); List<SyncBeanDef<Activity>> perspectiveActivities = cache.getPerspectiveActivities(); assertEquals(perspectiveActivities.size(), 1); } }
@Test public void cacheShouldNotReturnInactiveBeansByName() throws Exception { activityBeansCache.init(); assertSame(activeSplashScreenActivityBean, activityBeansCache.getActivity("ActiveSplashScreenActivity")); assertSame(activeResourceActivityBean, activityBeansCache.getActivity("ActiveResourceActivity")); assertSame(activeRegularActivityBean, activityBeansCache.getActivity("ActiveRegularActivity")); assertNull(activityBeansCache.getActivity("NonActiveSplashScreenActivity")); assertNull(activityBeansCache.getActivity("NonActiveResourceActivity")); assertNull(activityBeansCache.getActivity("NonActiveRegularActivity")); }
/** * At the time this test was made, splash screens were handled as special cases because they're ApplicationScoped rather than Dependent. */ @Test public void shouldNotStartDisabledSplashScreens() throws Exception { List<SplashScreenActivity> splashScreenList = new ArrayList<SplashScreenActivity>(); SplashScreenActivity expectedSplashScreenActivity = makeSplashScreenThatIntercepts(kansas, false); splashScreenList.add(expectedSplashScreenActivity); when(activityBeansCache.getSplashScreens()).thenReturn(splashScreenList); SplashScreenActivity splashScreenActivity = activityManager.getSplashScreenInterceptor(kansas); assertNull(splashScreenActivity); }
private PerspectiveEditorScreenActivity createNewScreen(LayoutTemplate perspective) { PerspectiveEditorScreenActivity activity = new PerspectiveEditorScreenActivity(perspective, layoutGenerator); final Set<Annotation> qualifiers = new HashSet<>(Arrays.asList(DEFAULT_QUALIFIERS)); final SingletonBeanDef<PerspectiveEditorScreenActivity, PerspectiveEditorScreenActivity> beanDef = new SingletonBeanDef<>( activity, PerspectiveEditorScreenActivity.class, qualifiers, activity.getIdentifier(), true, WorkbenchScreenActivity.class, Activity.class); beanManager.registerBean(beanDef); beanManager.registerBeanTypeAlias(beanDef, Activity.class); beanManager.registerBeanTypeAlias(beanDef, WorkbenchScreenActivity.class); activityBeansCache.addNewScreenActivity(beanManager.lookupBeans(activity.getIdentifier()).iterator().next()); return activity; }
@Test public void addEditorActivityShouldAddToActivitiesByID() { String resource = "resource"; Collection<SyncBeanDef> resourceTypeBeans = createResourceType("MODEL"); when(iocManager.lookupBeans(eq(resource))).thenReturn(resourceTypeBeans); SyncBeanDef mock = mock(SyncBeanDef.class); when(mock.getName()).thenReturn(resource); cache.addNewEditorActivity(mock, "1", resource); assertTrue(cache.hasActivity(resource)); }
private EditorDef registerResourceType(ClientResourceType resourceType, Class<?> editorActivityClass, String type, String priority, Category category) { SyncBeanDef<ClientResourceType> typeBeanDef = mock(SyncBeanDef.class); when(typeBeanDef.getInstance()).thenReturn(resourceType); Collection<SyncBeanDef> resourceTypeBeans = Arrays.asList(typeBeanDef); when(iocManager.lookupBeans(eq(type))).thenReturn(resourceTypeBeans); SyncBeanDef editorActivityDef = mock(SyncBeanDef.class); when(editorActivityDef.getBeanClass()).thenReturn(editorActivityClass); when(editorActivityDef.getName()).thenReturn(type); activityBeansCache.addNewEditorActivity(editorActivityDef, priority, type); return new EditorDef(editorActivityDef, resourceType, category); }
@Test public void isAnInvalidPerspectiveDefinition2Test() throws Exception { createPartDefinitions(); when(activityBeansCache.hasActivity(any())).thenReturn(true); when(activityBeansCache.hasActivity("part3-rootChild2")).thenReturn(false); assertFalse(fetchCommand.isAValidDefinition(createPerspectiveDefinition())); }