public synchronized List<String> getAllFeatures() { if (allGadgetFeatures == null) { Preconditions.checkState(featureRegistry != null, "setGadgetFeatureRegistry must be called before Gadget.getAllFeatures()"); allGadgetFeatures = featureRegistry.getFeatures(Lists.newArrayList(directFeatureDeps)); } return allGadgetFeatures; }
public synchronized List<String> getAllFeatures() { if (allGadgetFeatures == null) { Preconditions.checkState(featureRegistry != null, "setGadgetFeatureRegistry must be called before Gadget.getAllFeatures()"); allGadgetFeatures = featureRegistry.getFeatures(Lists.newArrayList(directFeatureDeps)); } return allGadgetFeatures; }
public synchronized List<String> getAllFeatures() { if (allGadgetFeatures == null) { Preconditions.checkState(featureRegistry != null, "setGadgetFeatureRegistry must be called before Gadget.getAllFeatures()"); allGadgetFeatures = featureRegistry.getFeatures(Lists.newArrayList(getDirectFeatureDeps())); } return allGadgetFeatures; }
private void initFeaturesLists() { if (allFeatures == null) { // Lazy-initialize these, to avoid computation where not needed. allFeatures = registry.getFeatures(jsUri.getLibs()); loadedFeatures = registry.getFeatures(jsUri.getLoadedLibs()); newFeatures = Lists.newLinkedList(); for (String candidate : allFeatures) { if (!loadedFeatures.contains(candidate)) { newFeatures.add(candidate); } } } } }
private void mockRegistryForFeatureAdmin(Set<String> allowed, List<String> getFeaturesAllowed, List<String> allGadgetFeatures, List<String> gadgetRequiredFeatureNames) { EasyMock.expect(mockRegistry.getFeatures(eq(Sets.newHashSet(allowed)))) .andReturn(Lists.newArrayList(getFeaturesAllowed)).anyTimes(); EasyMock.expect(mockRegistry.getFeatures(eq(Lists.newArrayList("core")))) .andReturn(Lists.newArrayList(allGadgetFeatures)).anyTimes(); EasyMock.expect(mockRegistry.getFeatures(eq(gadgetRequiredFeatureNames))) .andReturn(allGadgetFeatures).anyTimes(); }
private void mockRegistryForFeatureAdmin(Set<String> allowed, List<String> getFeaturesAllowed, List<String> allGadgetFeatures, List<String> gadgetRequiredFeatureNames) { EasyMock.expect(mockRegistry.getFeatures(eq(Sets.newHashSet(allowed)))) .andReturn(Lists.newArrayList(getFeaturesAllowed)).anyTimes(); EasyMock.expect(mockRegistry.getFeatures(eq(Lists.newArrayList("core")))) .andReturn(Lists.newArrayList(allGadgetFeatures)).anyTimes(); EasyMock.expect(mockRegistry.getFeatures(eq(gadgetRequiredFeatureNames))) .andReturn(allGadgetFeatures).anyTimes(); }
@Test public void getFeaturesStringsNoTransitive() throws Exception { setupFullRegistry("gadget", null); List<String> needed = Lists.newArrayList("nodep", "bottom"); List<String> featureNames = registry.getFeatures(needed); assertEquals(2, featureNames.size()); assertEquals("nodep", featureNames.get(0)); assertEquals("bottom", featureNames.get(1)); }
@Test public void getFeaturesStringsTransitive() throws Exception { setupFullRegistry("gadget", null); List<String> needed = Lists.newArrayList("top", "nodep"); List<String> featureNames = registry.getFeatures(needed); assertEquals(5, featureNames.size()); assertEquals("bottom", featureNames.get(0)); assertEquals("mid_a", featureNames.get(1)); assertEquals("mid_b", featureNames.get(2)); assertEquals("top", featureNames.get(3)); assertEquals("nodep", featureNames.get(4)); }
private void checkNoMatchingFeaturesDoesNothing(RenderingContext ctx) throws Exception { JsResponseBuilder builder = prepareRequestReturnBuilder(ctx); Map<String, Object> baseConfig = Maps.newHashMap(); baseConfig.put("feature1", "config1"); Map<String, String> f2MapConfig = Maps.newHashMap(); f2MapConfig.put("key1", "val1"); f2MapConfig.put("key2", "val2"); baseConfig.put("feature2", f2MapConfig); expect(containerConfig.getMap(CONTAINER, ConfigInjectionProcessor.GADGETS_FEATURES_KEY)) .andReturn(baseConfig); List<String> libs = ImmutableList.of("lib1", "lib2"); expect(jsUri.getLibs()).andReturn(libs); expect(jsUri.getLoadedLibs()).andReturn(EMPTY_LIST); expect(registry.getFeatures(libs)).andReturn(libs); expect(request.getHost()).andReturn("host"); control.replay(); assertTrue(processor.process(request, builder)); control.verify(); assertEquals(BASE_CODE, builder.build().toJsString()); }
private void checkNoMatchingFeaturesDoesNothing(RenderingContext ctx) throws Exception { JsResponseBuilder builder = prepareRequestReturnBuilder(ctx); Map<String, Object> baseConfig = Maps.newHashMap(); baseConfig.put("feature1", "config1"); Map<String, String> f2MapConfig = Maps.newHashMap(); f2MapConfig.put("key1", "val1"); f2MapConfig.put("key2", "val2"); baseConfig.put("feature2", f2MapConfig); expect(containerConfig.getMap(CONTAINER, ConfigInjectionProcessor.GADGETS_FEATURES_KEY)) .andReturn(baseConfig); List<String> libs = ImmutableList.of("lib1", "lib2"); expect(jsUri.getLibs()).andReturn(libs); expect(jsUri.getLoadedLibs()).andReturn(EMPTY_LIST); expect(registry.getFeatures(libs)).andReturn(libs); expect(request.getHost()).andReturn("host"); control.replay(); assertTrue(processor.process(request, builder)); control.verify(); assertEquals(BASE_CODE, builder.build().toJsString()); }
@SuppressWarnings("unchecked") private void setupMockRegistry(List<String> features) { EasyMock.expect(mockRegistry.getFeatures(EasyMock.isA(Collection.class))) .andReturn(Lists.newArrayList(features)).anyTimes(); FeatureBundle featureBundle = createMockFeatureBundle(); FeatureRegistry.LookupResult lr = createMockLookupResult(ImmutableList.of(featureBundle)); EasyMock.expect( mockRegistry.getFeatureResources(isA(GadgetContext.class), eq(Lists.newArrayList(features)), EasyMock.<List<String>> isNull())) .andReturn(lr).anyTimes(); replay(); }
@SuppressWarnings("unchecked") private void setupMockRegistry(List<String> features) { EasyMock.expect(mockRegistry.getFeatures(EasyMock.isA(List.class))) .andReturn(Lists.newArrayList(features)).anyTimes(); FeatureBundle featureBundle = createMockFeatureBundle(); FeatureRegistry.LookupResult lr = createMockLookupResult(ImmutableList.of(featureBundle)); EasyMock.expect( mockRegistry.getFeatureResources(isA(GadgetContext.class), eq(Lists.newArrayList(features)), EasyMock.<List<String>> isNull())) .andReturn(lr).anyTimes(); replay(); }
private void checkNoFeaturesDoesNothing(RenderingContext ctx) throws Exception { JsResponseBuilder builder = prepareRequestReturnBuilder(ctx); expect(containerConfig.getMap(CONTAINER, ConfigInjectionProcessor.GADGETS_FEATURES_KEY)) .andReturn(null); List<String> libs = ImmutableList.of(); expect(jsUri.getLibs()).andReturn(libs); expect(jsUri.getLoadedLibs()).andReturn(EMPTY_LIST); expect(registry.getFeatures(libs)).andReturn(libs); expect(request.getHost()).andReturn("host"); control.replay(); assertTrue(processor.process(request, builder)); control.verify(); assertEquals(BASE_CODE, builder.build().toJsString()); }
@SuppressWarnings("unchecked") private void setupMockRegistry(List<String> features) { EasyMock.expect(mockRegistry.getFeatures(EasyMock.isA(Collection.class))) .andReturn(Lists.newArrayList(features)).anyTimes(); FeatureBundle featureBundle = createMockFeatureBundle(); FeatureRegistry.LookupResult lr = createMockLookupResult(ImmutableList.of(featureBundle)); EasyMock.expect( mockRegistry.getFeatureResources(isA(GadgetContext.class), eq(Lists.newArrayList(features)), EasyMock.<List<String>> isNull())) .andReturn(lr).anyTimes(); replay(); }
private void checkNoFeaturesDoesNothing(RenderingContext ctx) throws Exception { JsResponseBuilder builder = prepareRequestReturnBuilder(ctx); expect(containerConfig.getMap(CONTAINER, ConfigInjectionProcessor.GADGETS_FEATURES_KEY)) .andReturn(null); List<String> libs = ImmutableList.of(); expect(jsUri.getLibs()).andReturn(libs); expect(jsUri.getLoadedLibs()).andReturn(EMPTY_LIST); expect(registry.getFeatures(libs)).andReturn(libs); expect(request.getHost()).andReturn("host"); control.replay(); assertTrue(processor.process(request, builder)); control.verify(); assertEquals(BASE_CODE, builder.build().toJsString()); }
@SuppressWarnings("unchecked") private void setupMockRegistry(List<String> features) { EasyMock.expect(mockRegistry.getFeatures(EasyMock.isA(List.class))) .andReturn(Lists.newArrayList(features)).anyTimes(); FeatureBundle featureBundle = createMockFeatureBundle(); FeatureRegistry.LookupResult lr = createMockLookupResult(ImmutableList.of(featureBundle)); EasyMock.expect( mockRegistry.getFeatureResources(isA(GadgetContext.class), eq(Lists.newArrayList(features)), EasyMock.<List<String>> isNull())) .andReturn(lr).anyTimes(); replay(); }
@SuppressWarnings("unchecked") private FeatureRegistry mockRegistry(LookupResult lookupMock) { FeatureRegistry result = createMock(FeatureRegistry.class); expect(result.getFeatureResources( isA(GadgetContext.class), isA(List.class), EasyMock.isNull(List.class))). andReturn(lookupMock).anyTimes(); expect(result.getFeatureResources( isA(GadgetContext.class), eq(LIBS_WITH_DEFER), EasyMock.isNull(List.class), eq(false))). andReturn(mockLookupResult(mockBundle(EXPORTS_1, true))).anyTimes(); expect(result.getFeatureResources( isA(GadgetContext.class), eq(LIBS_WITHOUT_DEFER), EasyMock.isNull(List.class), eq(false))). andReturn(mockLookupResult(mockBundle(EXPORTS_2, false))).anyTimes(); expect(result.getFeatures(LIBS_WITHOUT_DEFER)).andReturn(LIBS_WITHOUT_DEFER).anyTimes(); expect(result.getFeatures(LIBS_WITH_DEFER)).andReturn(LIBS_WITH_DEFER).anyTimes(); expect(result.getFeatures(LOADED)).andReturn(LOADED).anyTimes(); replay(result); return result; }
@SuppressWarnings("unchecked") private FeatureRegistry mockRegistry(LookupResult lookupMock) { FeatureRegistry result = createMock(FeatureRegistry.class); expect(result.getFeatureResources( isA(GadgetContext.class), isA(List.class), EasyMock.isNull(List.class))). andReturn(lookupMock).anyTimes(); expect(result.getFeatureResources( isA(GadgetContext.class), eq(LIBS_WITH_DEFER), EasyMock.isNull(List.class), eq(false))). andReturn(mockLookupResult(mockBundle(EXPORTS_1, true))).anyTimes(); expect(result.getFeatureResources( isA(GadgetContext.class), eq(LIBS_WITHOUT_DEFER), EasyMock.isNull(List.class), eq(false))). andReturn(mockLookupResult(mockBundle(EXPORTS_2, false))).anyTimes(); expect(result.getFeatures(LIBS_WITHOUT_DEFER)).andReturn(LIBS_WITHOUT_DEFER).anyTimes(); expect(result.getFeatures(LIBS_WITH_DEFER)).andReturn(LIBS_WITH_DEFER).anyTimes(); expect(result.getFeatures(LOADED)).andReturn(LOADED).anyTimes(); replay(result); return result; }
@Before public void setUp() throws GadgetException { control = EasyMock.createControl(); request = control.createMock(JsRequest.class); response = new JsResponseBuilder(); processor = new AddJslInfoVariableProcessor(fregProvider); EasyMock.reset(fregProvider, freg); EasyMock.expect(fregProvider.get(EasyMock.anyObject(String.class))).andReturn(freg).anyTimes(); Capture<List<String>> features = new Capture<List<String>>(); EasyMock.expect(freg.getFeatures(EasyMock.capture(features))).andAnswer(new IAnswer<List<String>>() { public List<String> answer() throws Throwable { return LIBS; } }); EasyMock.replay(fregProvider, freg); }
@Before public void setUp() throws GadgetException { control = EasyMock.createControl(); request = control.createMock(JsRequest.class); response = new JsResponseBuilder(); processor = new AddJslInfoVariableProcessor(fregProvider); EasyMock.reset(fregProvider, freg); EasyMock.expect(fregProvider.get(EasyMock.anyObject(String.class))).andReturn(freg).anyTimes(); Capture<List<String>> features = new Capture<List<String>>(); EasyMock.expect(freg.getFeatures(EasyMock.capture(features))).andAnswer(new IAnswer<List<String>>() { public List<String> answer() throws Throwable { return LIBS; } }); EasyMock.replay(fregProvider, freg); }