diff --git a/core/che-core-db/src/test/java/org/eclipse/che/core/db/TracingDataSourceTest.java b/core/che-core-db/src/test/java/org/eclipse/che/core/db/TracingDataSourceTest.java index 69df4fd9be..b6f7ebc5d3 100644 --- a/core/che-core-db/src/test/java/org/eclipse/che/core/db/TracingDataSourceTest.java +++ b/core/che-core-db/src/test/java/org/eclipse/che/core/db/TracingDataSourceTest.java @@ -61,7 +61,7 @@ public class TracingDataSourceTest { @Test public void shouldBeAbleToGetConnectionWithEmailAndPassword() throws SQLException { TracingDataSource ds = new TracingDataSource(dataSource); - + Connection actual = ds.getConnection("user", "password"); assertEquals(actual.getClass(), TracingConnection.class); Mockito.verify(dataSource).getConnection(Mockito.eq("user"), Mockito.eq("password")); diff --git a/wsmaster/che-core-api-factory/src/test/java/org/eclipse/che/api/factory/server/FactoryServiceTest.java b/wsmaster/che-core-api-factory/src/test/java/org/eclipse/che/api/factory/server/FactoryServiceTest.java index 0b91375408..df39836ea8 100644 --- a/wsmaster/che-core-api-factory/src/test/java/org/eclipse/che/api/factory/server/FactoryServiceTest.java +++ b/wsmaster/che-core-api-factory/src/test/java/org/eclipse/che/api/factory/server/FactoryServiceTest.java @@ -15,6 +15,9 @@ import static io.restassured.RestAssured.given; import static jakarta.ws.rs.core.Response.Status.BAD_REQUEST; import static java.lang.String.valueOf; import static java.util.Collections.singletonMap; +import static org.eclipse.che.api.factory.server.FactoryResolverPriority.DEFAULT; +import static org.eclipse.che.api.factory.server.FactoryResolverPriority.HIGHEST; +import static org.eclipse.che.api.factory.server.FactoryResolverPriority.LOWEST; import static org.eclipse.che.api.factory.server.FactoryService.VALIDATE_QUERY_PARAMETER; import static org.eclipse.che.api.factory.shared.Constants.CURRENT_VERSION; import static org.eclipse.che.api.factory.shared.Constants.URL_PARAMETER_NAME; @@ -35,43 +38,27 @@ import static org.mockito.Mockito.when; import static org.testng.Assert.assertEquals; import static org.testng.Assert.assertTrue; -import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; import io.restassured.http.ContentType; import io.restassured.response.Response; -import java.io.IOException; import java.lang.reflect.Field; -import java.util.ArrayList; import java.util.HashMap; import java.util.HashSet; -import java.util.List; import java.util.Map; import java.util.Set; import org.eclipse.che.api.core.BadRequestException; import org.eclipse.che.api.core.model.user.User; -import org.eclipse.che.api.core.model.workspace.WorkspaceConfig; -import org.eclipse.che.api.core.model.workspace.config.ProjectConfig; import org.eclipse.che.api.core.rest.ApiExceptionMapper; import org.eclipse.che.api.core.rest.shared.dto.ServiceError; import org.eclipse.che.api.factory.server.FactoryService.FactoryParametersResolverHolder; import org.eclipse.che.api.factory.server.builder.FactoryBuilder; import org.eclipse.che.api.factory.server.impl.SourceStorageParametersValidator; -import org.eclipse.che.api.factory.server.model.impl.AuthorImpl; -import org.eclipse.che.api.factory.server.model.impl.FactoryImpl; import org.eclipse.che.api.factory.server.scm.PersonalAccessTokenManager; import org.eclipse.che.api.factory.server.urlfactory.RemoteFactoryUrl; import org.eclipse.che.api.factory.shared.dto.FactoryDto; import org.eclipse.che.api.user.server.PreferenceManager; import org.eclipse.che.api.user.server.UserManager; import org.eclipse.che.api.user.server.model.impl.UserImpl; -import org.eclipse.che.api.workspace.server.model.impl.EnvironmentImpl; -import org.eclipse.che.api.workspace.server.model.impl.MachineConfigImpl; -import org.eclipse.che.api.workspace.server.model.impl.ProjectConfigImpl; -import org.eclipse.che.api.workspace.server.model.impl.RecipeImpl; -import org.eclipse.che.api.workspace.server.model.impl.ServerConfigImpl; -import org.eclipse.che.api.workspace.server.model.impl.SourceStorageImpl; -import org.eclipse.che.api.workspace.server.model.impl.WorkspaceConfigImpl; -import org.eclipse.che.api.workspace.shared.dto.EnvironmentDto; import org.eclipse.che.commons.env.EnvironmentContext; import org.eclipse.che.commons.subject.SubjectImpl; import org.eclipse.che.dto.server.DtoFactory; @@ -295,62 +282,48 @@ public class FactoryServiceTest { .startsWith(RawDevfileUrlFactoryParameterResolver.class.getName())); } - private FactoryImpl createFactory() { - return createNamedFactory(FACTORY_NAME); + @Test + public void shouldReturnTopPriorityFactoryParameterResolverOverLowPriority() throws Exception { + // given + Map params = singletonMap(URL_PARAMETER_NAME, "https://host/path/devfile.yaml"); + specificFactoryParametersResolvers.clear(); + FactoryParametersResolver topPriorityResolver = mock(FactoryParametersResolver.class); + FactoryParametersResolver lowPriorityResolver = mock(FactoryParametersResolver.class); + when(topPriorityResolver.accept(eq(params))).thenReturn(true); + when(lowPriorityResolver.accept(eq(params))).thenReturn(true); + when(topPriorityResolver.priority()).thenReturn(HIGHEST); + when(lowPriorityResolver.priority()).thenReturn(LOWEST); + specificFactoryParametersResolvers.add(topPriorityResolver); + specificFactoryParametersResolvers.add(lowPriorityResolver); + + // when + FactoryParametersResolver factoryParametersResolver = + factoryParametersResolverHolder.getFactoryParametersResolver(params); + + // then + assertEquals(factoryParametersResolver, topPriorityResolver); } - private FactoryImpl createNamedFactory(String name) { - return createFactoryWithStorage(name, PROJECT_SOURCE_TYPE, PROJECT_SOURCE_LOCATION); - } + @Test + public void shouldReturnTopPriorityFactoryParameterResolverOverDefaultPriority() + throws Exception { + // given + Map params = singletonMap(URL_PARAMETER_NAME, "https://host/path/devfile.yaml"); + specificFactoryParametersResolvers.clear(); + FactoryParametersResolver topPriorityResolver = mock(FactoryParametersResolver.class); + FactoryParametersResolver defaultPriorityResolver = mock(FactoryParametersResolver.class); + when(topPriorityResolver.accept(eq(params))).thenReturn(true); + when(defaultPriorityResolver.accept(eq(params))).thenReturn(true); + when(topPriorityResolver.priority()).thenReturn(HIGHEST); + when(defaultPriorityResolver.priority()).thenReturn(DEFAULT); + specificFactoryParametersResolvers.add(topPriorityResolver); + specificFactoryParametersResolvers.add(defaultPriorityResolver); - private FactoryImpl createFactoryWithStorage(String name, String type, String location) { - return FactoryImpl.builder() - .setId(FACTORY_ID) - .setVersion("4.0") - .setWorkspace(createWorkspaceConfig(type, location)) - .setCreator(new AuthorImpl(USER_ID, 12L)) - .setName(name) - .build(); - } + // when + FactoryParametersResolver factoryParametersResolver = + factoryParametersResolverHolder.getFactoryParametersResolver(params); - private static WorkspaceConfig createWorkspaceConfig(String type, String location) { - return WorkspaceConfigImpl.builder() - .setName(WORKSPACE_NAME) - .setEnvironments(singletonMap("env1", new EnvironmentImpl(createEnvDto()))) - .setProjects(createProjects(type, location)) - .build(); - } - - private static EnvironmentDto createEnvDto() { - final RecipeImpl environmentRecipe = new RecipeImpl(); - environmentRecipe.setType("type"); - environmentRecipe.setContent("content"); - environmentRecipe.setContentType("compose"); - environmentRecipe.setLocation("location"); - final EnvironmentImpl env = new EnvironmentImpl(); - final MachineConfigImpl extendedMachine = new MachineConfigImpl(); - extendedMachine.setAttributes(singletonMap("att1", "value")); - extendedMachine.setServers( - singletonMap( - "agent", new ServerConfigImpl("5555", "https", "path", singletonMap("key", "value")))); - env.setRecipe(environmentRecipe); - env.setMachines(singletonMap("machine1", extendedMachine)); - return org.eclipse.che.api.workspace.server.DtoConverter.asDto(env); - } - - private static List createProjects(String type, String location) { - final ProjectConfigImpl projectConfig = new ProjectConfigImpl(); - projectConfig.setSource(new SourceStorageImpl(type, location, null)); - return ImmutableList.of(projectConfig); - } - - private static T getFromResponse(Response response, Class clazz) throws Exception { - return DTO.createDtoFromJson(response.getBody().asInputStream(), clazz); - } - - private static List unwrapDtoList(Response response, Class dtoClass) - throws IOException { - return new ArrayList<>( - DtoFactory.getInstance().createListDtoFromJson(response.body().asInputStream(), dtoClass)); + // then + assertEquals(factoryParametersResolver, topPriorityResolver); } }