use of org.eclipse.che.api.factory.server.urlfactory.URLFactoryBuilder in project che-server by eclipse-che.
the class DefaultFactoryParameterResolverTest method shouldFilterAndProvideOverrideParameters.
@Test
@SuppressWarnings("unchecked")
public void shouldFilterAndProvideOverrideParameters() throws Exception {
URLFactoryBuilder urlFactoryBuilder = mock(URLFactoryBuilder.class);
URLFetcher urlFetcher = mock(URLFetcher.class);
DefaultFactoryParameterResolver res = new DefaultFactoryParameterResolver(urlFactoryBuilder, urlFetcher);
Map<String, String> factoryParameters = new HashMap<>();
factoryParameters.put(URL_PARAMETER_NAME, "http://myloc/devfile");
factoryParameters.put("override.param.foo", "bar");
factoryParameters.put("override.param.bar", "foo");
factoryParameters.put("ignored.non-override.property", "baz");
ArgumentCaptor<Map<String, String>> captor = ArgumentCaptor.forClass(Map.class);
// when
res.createFactory(factoryParameters);
verify(urlFactoryBuilder).createFactoryFromDevfile(any(RemoteFactoryUrl.class), any(URLFileContentProvider.class), captor.capture());
Map<String, String> filteredOverrides = captor.getValue();
assertEquals(2, filteredOverrides.size());
assertEquals("bar", filteredOverrides.get("param.foo"));
assertEquals("foo", filteredOverrides.get("param.bar"));
assertFalse(filteredOverrides.containsKey("ignored.non-override.property"));
}
use of org.eclipse.che.api.factory.server.urlfactory.URLFactoryBuilder in project che-server by eclipse-che.
the class DefaultFactoryParameterResolverTest method shouldThrowExceptionOnInvalidURL.
@Test(dataProvider = "invalidURLsProvider")
public void shouldThrowExceptionOnInvalidURL(String url, String message) throws Exception {
URLFactoryBuilder urlFactoryBuilder = mock(URLFactoryBuilder.class);
URLFetcher urlFetcher = mock(URLFetcher.class);
DefaultFactoryParameterResolver res = new DefaultFactoryParameterResolver(urlFactoryBuilder, urlFetcher);
Map<String, String> factoryParameters = new HashMap<>();
factoryParameters.put(URL_PARAMETER_NAME, url);
// when
try {
res.createFactory(factoryParameters);
fail("Exception is expected");
} catch (BadRequestException e) {
assertEquals(e.getMessage(), format("Unable to process provided factory URL. Please check its validity and try again. Parser message: %s", message));
}
}
use of org.eclipse.che.api.factory.server.urlfactory.URLFactoryBuilder in project devspaces-images by redhat-developer.
the class DefaultFactoryParameterResolverTest method shouldFilterAndProvideOverrideParameters.
@Test
@SuppressWarnings("unchecked")
public void shouldFilterAndProvideOverrideParameters() throws Exception {
URLFactoryBuilder urlFactoryBuilder = mock(URLFactoryBuilder.class);
URLFetcher urlFetcher = mock(URLFetcher.class);
DefaultFactoryParameterResolver res = new DefaultFactoryParameterResolver(urlFactoryBuilder, urlFetcher);
Map<String, String> factoryParameters = new HashMap<>();
factoryParameters.put(URL_PARAMETER_NAME, "http://myloc/devfile");
factoryParameters.put("override.param.foo", "bar");
factoryParameters.put("override.param.bar", "foo");
factoryParameters.put("ignored.non-override.property", "baz");
ArgumentCaptor<Map<String, String>> captor = ArgumentCaptor.forClass(Map.class);
// when
res.createFactory(factoryParameters);
verify(urlFactoryBuilder).createFactoryFromDevfile(any(RemoteFactoryUrl.class), any(URLFileContentProvider.class), captor.capture());
Map<String, String> filteredOverrides = captor.getValue();
assertEquals(2, filteredOverrides.size());
assertEquals("bar", filteredOverrides.get("param.foo"));
assertEquals("foo", filteredOverrides.get("param.bar"));
assertFalse(filteredOverrides.containsKey("ignored.non-override.property"));
}
use of org.eclipse.che.api.factory.server.urlfactory.URLFactoryBuilder in project devspaces-images by redhat-developer.
the class DefaultFactoryParameterResolverTest method shouldThrowExceptionOnInvalidURL.
@Test(dataProvider = "invalidURLsProvider")
public void shouldThrowExceptionOnInvalidURL(String url, String message) throws Exception {
URLFactoryBuilder urlFactoryBuilder = mock(URLFactoryBuilder.class);
URLFetcher urlFetcher = mock(URLFetcher.class);
DefaultFactoryParameterResolver res = new DefaultFactoryParameterResolver(urlFactoryBuilder, urlFetcher);
Map<String, String> factoryParameters = new HashMap<>();
factoryParameters.put(URL_PARAMETER_NAME, url);
// when
try {
res.createFactory(factoryParameters);
fail("Exception is expected");
} catch (BadRequestException e) {
assertEquals(e.getMessage(), format("Unable to process provided factory URL. Please check its validity and try again. Parser message: %s", message));
}
}
use of org.eclipse.che.api.factory.server.urlfactory.URLFactoryBuilder in project devspaces-images by redhat-developer.
the class DefaultFactoryParameterResolverTest method shouldResolveRelativeFiles.
@Test
public void shouldResolveRelativeFiles() throws Exception {
// given
// we need to set up an "almost real" devfile converter which is a little bit involved
DevfileSchemaValidator validator = new DevfileSchemaValidator(new DevfileSchemaProvider(), new DevfileVersionDetector());
Map<String, ComponentIntegrityValidator> validators = new HashMap<>();
validators.put(EDITOR_COMPONENT_TYPE, new NoopComponentIntegrityValidator());
validators.put(PLUGIN_COMPONENT_TYPE, new NoopComponentIntegrityValidator());
validators.put(KUBERNETES_COMPONENT_TYPE, new NoopComponentIntegrityValidator());
validators.put(OPENSHIFT_COMPONENT_TYPE, new NoopComponentIntegrityValidator());
DevfileIntegrityValidator integrityValidator = new DevfileIntegrityValidator(validators);
DevfileParser devfileParser = new DevfileParser(validator, integrityValidator);
URLFactoryBuilder factoryBuilder = new URLFactoryBuilder("editor", "plugin", false, devfileParser, new DevfileVersionDetector());
DefaultFactoryParameterResolver res = new DefaultFactoryParameterResolver(factoryBuilder, urlFetcher);
// set up our factory with the location of our devfile that is referencing our localfile
Map<String, String> factoryParameters = new HashMap<>();
factoryParameters.put(URL_PARAMETER_NAME, "http://myloc.com/aa/bb/devfile");
doReturn(DEVFILE).when(urlFetcher).fetch(eq("http://myloc.com/aa/bb/devfile"));
doReturn("localfile").when(urlFetcher).fetch("http://myloc.com/aa/localfile");
// when
res.createFactory(factoryParameters);
// then
verify(urlFetcher).fetch(eq("http://myloc.com/aa/localfile"));
}
Aggregations