Search in sources :

Example 1 with ProjectTypeDef

use of org.eclipse.che.api.project.server.type.ProjectTypeDef in project che by eclipse.

the class ProjectServiceTest method testResolveSources.

@Test
public void testResolveSources() throws Exception {
    VirtualFile root = pm.getProjectsRoot().getVirtualFile();
    root.createFolder("testEstimateProjectGood").createFolder("check");
    root.createFolder("testEstimateProjectBad");
    final ValueProviderFactory vpf1 = projectFolder -> new ReadonlyValueProvider() {

        @Override
        public List<String> getValues(String attributeName) throws ValueStorageException {
            VirtualFileEntry file;
            try {
                file = projectFolder.getChild("check");
            } catch (ServerException e) {
                throw new ValueStorageException(e.getMessage());
            }
            if (file == null) {
                throw new ValueStorageException("Check not found");
            }
            return (List<String>) singletonList("checked");
        }
    };
    ProjectTypeDef pt = new ProjectTypeDef("testEstimateProjectPT", "my testEstimateProject type", true, false) {

        {
            addVariableDefinition("calculated_attribute", "attr description", true, vpf1);
            addVariableDefinition("my_property_1", "attr description", true);
            addVariableDefinition("my_property_2", "attr description", false);
        }
    };
    ptRegistry.registerProjectType(pt);
    ContainerResponse response = launcher.service(GET, format("http://localhost:8080/api/project/resolve/%s", "testEstimateProjectGood"), "http://localhost:8080/api", null, null, null);
    assertEquals(response.getStatus(), 200, "Error: " + response.getEntity());
    List<SourceEstimation> result = (List<SourceEstimation>) response.getEntity();
    assertTrue(result.size() > 0);
    boolean m = false;
    for (SourceEstimation est : result) {
        if (est.getType().equals("testEstimateProjectPT")) {
            assertTrue(est.isMatched());
            m = true;
        }
    }
    assertTrue(m);
}
Also used : VirtualFile(org.eclipse.che.api.vfs.VirtualFile) DELETE(javax.ws.rs.HttpMethod.DELETE) Arrays(java.util.Arrays) Listeners(org.testng.annotations.Listeners) GET(javax.ws.rs.HttpMethod.GET) Path(org.eclipse.che.api.vfs.Path) Test(org.testng.annotations.Test) AfterMethod(org.testng.annotations.AfterMethod) Collections.singletonList(java.util.Collections.singletonList) HttpJsonRequest(org.eclipse.che.api.core.rest.HttpJsonRequest) FileWatcherManager(org.eclipse.che.api.vfs.watcher.FileWatcherManager) Future(java.util.concurrent.Future) CreateProjectHandler(org.eclipse.che.api.project.server.handlers.CreateProjectHandler) ResourceBinderImpl(org.everrest.core.impl.ResourceBinderImpl) Map(java.util.Map) HttpJsonRequestFactory(org.eclipse.che.api.core.rest.HttpJsonRequestFactory) RequestDispatcher(org.everrest.core.impl.RequestDispatcher) ProviderBinder(org.everrest.core.impl.ProviderBinder) APPLICATION_ZIP(org.eclipse.che.commons.lang.ws.rs.ExtMediaType.APPLICATION_ZIP) Attribute(org.eclipse.che.api.core.model.project.type.Attribute) HttpJsonResponse(org.eclipse.che.api.core.rest.HttpJsonResponse) Set(java.util.Set) EverrestProcessor(org.everrest.core.impl.EverrestProcessor) SourceStorageDto(org.eclipse.che.api.workspace.shared.dto.SourceStorageDto) Executors(java.util.concurrent.Executors) ResourceLauncher(org.everrest.core.tools.ResourceLauncher) IoUtil(org.eclipse.che.commons.lang.IoUtil) Matchers.any(org.mockito.Matchers.any) CountDownLatch(java.util.concurrent.CountDownLatch) ApiExceptionMapper(org.eclipse.che.api.core.rest.ApiExceptionMapper) UserDao(org.eclipse.che.api.user.server.spi.UserDao) EverrestConfiguration(org.everrest.core.impl.EverrestConfiguration) Assert.assertFalse(org.junit.Assert.assertFalse) ApplicationContext(org.everrest.core.ApplicationContext) ByteStreams(com.google.common.io.ByteStreams) SubjectImpl(org.eclipse.che.commons.subject.SubjectImpl) TEXT_PLAIN(javax.ws.rs.core.MediaType.TEXT_PLAIN) Mockito.mock(org.mockito.Mockito.mock) ZipOutputStream(java.util.zip.ZipOutputStream) ByteArrayOutputStream(java.io.ByteArrayOutputStream) Mock(org.mockito.Mock) ResourceBinder(org.everrest.core.ResourceBinder) ProjectImporterRegistry(org.eclipse.che.api.project.server.importer.ProjectImporterRegistry) ArrayList(java.util.ArrayList) LinkedHashMap(java.util.LinkedHashMap) AttributeValue(org.eclipse.che.api.project.server.type.AttributeValue) VirtualFile(org.eclipse.che.api.vfs.VirtualFile) ProjectTypeDef(org.eclipse.che.api.project.server.type.ProjectTypeDef) FSLuceneSearcherProvider(org.eclipse.che.api.vfs.search.impl.FSLuceneSearcherProvider) LinkedHashSet(java.util.LinkedHashSet) ProjectImporter(org.eclipse.che.api.project.server.importer.ProjectImporter) Assert.assertTrue(org.junit.Assert.assertTrue) IOException(java.io.IOException) File(java.io.File) ValueHolder(org.eclipse.che.api.core.util.ValueHolder) ServerException(org.eclipse.che.api.core.ServerException) ValueStorageException(org.eclipse.che.api.project.server.type.ValueStorageException) SourceEstimation(org.eclipse.che.api.project.shared.dto.SourceEstimation) ByteArrayContainerResponseWriter(org.everrest.core.tools.ByteArrayContainerResponseWriter) Assert(org.junit.Assert) Assert.assertEqualsNoOrder(org.testng.Assert.assertEqualsNoOrder) ApplicationContext.anApplicationContext(org.everrest.core.ApplicationContext.anApplicationContext) LineConsumerFactory(org.eclipse.che.api.core.util.LineConsumerFactory) Scanner(java.util.Scanner) ProjectTypeRegistry(org.eclipse.che.api.project.server.type.ProjectTypeRegistry) FileWatcherNotificationHandler(org.eclipse.che.api.vfs.impl.file.FileWatcherNotificationHandler) Application(javax.ws.rs.core.Application) ProjectHandlerRegistry(org.eclipse.che.api.project.server.handlers.ProjectHandlerRegistry) ByteArrayInputStream(java.io.ByteArrayInputStream) PathMatcher(java.nio.file.PathMatcher) LocalVirtualFileSystemProvider(org.eclipse.che.api.vfs.impl.file.LocalVirtualFileSystemProvider) URI(java.net.URI) APPLICATION_JSON(javax.ws.rs.core.MediaType.APPLICATION_JSON) ZipEntry(java.util.zip.ZipEntry) EventService(org.eclipse.che.api.core.notification.EventService) MockitoTestNGListener(org.mockito.testng.MockitoTestNGListener) BeforeMethod(org.testng.annotations.BeforeMethod) Assert.assertNotNull(org.testng.Assert.assertNotNull) SourceStorage(org.eclipse.che.api.core.model.project.SourceStorage) Collectors(java.util.stream.Collectors) String.format(java.lang.String.format) ItemReference(org.eclipse.che.api.project.shared.dto.ItemReference) List(java.util.List) POST(javax.ws.rs.HttpMethod.POST) PUT(javax.ws.rs.HttpMethod.PUT) ValueProviderFactory(org.eclipse.che.api.project.server.type.ValueProviderFactory) IntStream(java.util.stream.IntStream) ReadonlyValueProvider(org.eclipse.che.api.project.server.type.ReadonlyValueProvider) Link(org.eclipse.che.api.core.rest.shared.dto.Link) WorkspaceDto(org.eclipse.che.api.workspace.shared.dto.WorkspaceDto) Assert.assertEquals(org.testng.Assert.assertEquals) HashMap(java.util.HashMap) ProjectTypeConstraintException(org.eclipse.che.api.project.server.type.ProjectTypeConstraintException) DependencySupplierImpl(org.everrest.core.tools.DependencySupplierImpl) FileTreeWatcher(org.eclipse.che.api.vfs.impl.file.FileTreeWatcher) HashSet(java.util.HashSet) Charset(java.nio.charset.Charset) ConflictException(org.eclipse.che.api.core.ConflictException) LinkedList(java.util.LinkedList) DefaultFileWatcherNotificationHandler(org.eclipse.che.api.vfs.impl.file.DefaultFileWatcherNotificationHandler) DtoFactory(org.eclipse.che.dto.server.DtoFactory) ExecutorService(java.util.concurrent.ExecutorService) ContainerResponse(org.everrest.core.impl.ContainerResponse) RequestHandlerImpl(org.everrest.core.impl.RequestHandlerImpl) ProjectConfigDto(org.eclipse.che.api.workspace.shared.dto.ProjectConfigDto) WorkspaceConfigDto(org.eclipse.che.api.workspace.shared.dto.WorkspaceConfigDto) ExtMediaType(org.eclipse.che.commons.lang.ws.rs.ExtMediaType) SelfReturningAnswer(org.eclipse.che.commons.test.mockito.answer.SelfReturningAnswer) Mockito.when(org.mockito.Mockito.when) TreeElement(org.eclipse.che.api.project.shared.dto.TreeElement) NotFoundException(org.eclipse.che.api.core.NotFoundException) MoveOptions(org.eclipse.che.api.project.shared.dto.MoveOptions) ForbiddenException(org.eclipse.che.api.core.ForbiddenException) CopyOptions(org.eclipse.che.api.project.shared.dto.CopyOptions) Collections(java.util.Collections) InputStream(java.io.InputStream) ServerException(org.eclipse.che.api.core.ServerException) ContainerResponse(org.everrest.core.impl.ContainerResponse) ProjectTypeDef(org.eclipse.che.api.project.server.type.ProjectTypeDef) ValueStorageException(org.eclipse.che.api.project.server.type.ValueStorageException) SourceEstimation(org.eclipse.che.api.project.shared.dto.SourceEstimation) Collections.singletonList(java.util.Collections.singletonList) ArrayList(java.util.ArrayList) List(java.util.List) LinkedList(java.util.LinkedList) ReadonlyValueProvider(org.eclipse.che.api.project.server.type.ReadonlyValueProvider) ValueProviderFactory(org.eclipse.che.api.project.server.type.ValueProviderFactory) Test(org.testng.annotations.Test)

Example 2 with ProjectTypeDef

use of org.eclipse.che.api.project.server.type.ProjectTypeDef in project che by eclipse.

the class ProjectServiceTest method createTestProjectType.

private void createTestProjectType(final String projectTypeId) throws ProjectTypeConstraintException {
    final ProjectTypeDef pt = new ProjectTypeDef(projectTypeId, "my project type", true, false) {

        {
            addConstantDefinition("new_test_attribute", "attr description", "some_attribute_value");
        }
    };
    ptRegistry.registerProjectType(pt);
}
Also used : ProjectTypeDef(org.eclipse.che.api.project.server.type.ProjectTypeDef)

Example 3 with ProjectTypeDef

use of org.eclipse.che.api.project.server.type.ProjectTypeDef in project che by eclipse.

the class ProjectTypesTest method testGetMixinsShouldNotReturnNotPersistedMixin.

@Test
public void testGetMixinsShouldNotReturnNotPersistedMixin() throws Exception {
    Set<ProjectTypeDef> pts = new HashSet<>();
    pts.add(new PrimaryType());
    pts.add(new PersistedMixin());
    pts.add(new NotPersistedMixin());
    ProjectTypeRegistry reg = new ProjectTypeRegistry(pts);
    List<RegisteredProject.Problem> problems = new ArrayList<>();
    ProjectTypes projectTypes = new ProjectTypes(generate("projectPath-", 5), PrimaryType.PRIMARY_ID, Arrays.asList(PersistedMixin.PERSISTED_MIXIN_ID, NotPersistedMixin.NOT_PERSISTED_MIXIN_ID), reg, problems);
    assertFalse(projectTypes.getMixins().containsKey(NotPersistedMixin.NOT_PERSISTED_MIXIN_ID));
    assertEquals(problems.size(), 0);
}
Also used : ProjectTypeRegistry(org.eclipse.che.api.project.server.type.ProjectTypeRegistry) ArrayList(java.util.ArrayList) ProjectTypeDef(org.eclipse.che.api.project.server.type.ProjectTypeDef) HashSet(java.util.HashSet) Test(org.testng.annotations.Test)

Example 4 with ProjectTypeDef

use of org.eclipse.che.api.project.server.type.ProjectTypeDef in project che by eclipse.

the class ProjectTypesTest method testGetMixinsShouldReturnNotFoundException.

//@Test(expectedExceptions = NotFoundException.class)
public void testGetMixinsShouldReturnNotFoundException() throws Exception {
    final String notFoundMixin = generate("notFoundMixin-", 5);
    Set<ProjectTypeDef> pts = new HashSet<>();
    pts.add(new PrimaryType());
    pts.add(new PersistedMixin());
    pts.add(new NotPersistedMixin());
    ProjectTypeRegistry reg = new ProjectTypeRegistry(pts);
    List<RegisteredProject.Problem> problems = new ArrayList<>();
    new ProjectTypes(generate("projectPath-", 5), PrimaryType.PRIMARY_ID, Arrays.asList(notFoundMixin, PersistedMixin.PERSISTED_MIXIN_ID, NotPersistedMixin.NOT_PERSISTED_MIXIN_ID), reg, problems);
    assertEquals(problems.size(), 1);
    assertEquals(problems.get(0).code, 12);
}
Also used : ProjectTypeRegistry(org.eclipse.che.api.project.server.type.ProjectTypeRegistry) ArrayList(java.util.ArrayList) ProjectTypeDef(org.eclipse.che.api.project.server.type.ProjectTypeDef) HashSet(java.util.HashSet)

Example 5 with ProjectTypeDef

use of org.eclipse.che.api.project.server.type.ProjectTypeDef in project che by eclipse.

the class ProjectServiceTest method testUpdateProject.

@Test
public void testUpdateProject() throws Exception {
    Map<String, List<String>> headers = new HashMap<>();
    headers.put("Content-Type", singletonList(APPLICATION_JSON));
    ProjectTypeDef pt = new ProjectTypeDef("testUpdateProject", "my project type", true, false) {
    };
    ptRegistry.registerProjectType(pt);
    pm.createProject(DtoFactory.getInstance().createDto(ProjectConfigDto.class).withDescription("created project").withType("testUpdateProject").withPath("/testUpdateProject"), null);
    Map<String, List<String>> attributeValues = new LinkedHashMap<>();
    attributeValues.put("my_attribute", singletonList("to be or not to be"));
    ProjectConfigDto descriptor = DtoFactory.getInstance().createDto(ProjectConfigDto.class).withName("module1").withType("testUpdateProject").withDescription("updated project").withAttributes(attributeValues);
    ContainerResponse response = launcher.service(PUT, "http://localhost:8080/api/project/testUpdateProject", "http://localhost:8080/api", headers, DtoFactory.getInstance().toJson(descriptor).getBytes(Charset.defaultCharset()), null);
    assertEquals(response.getStatus(), 200, "Error: " + response.getEntity());
    RegisteredProject project = pm.getProject("/testUpdateProject");
    assertNotNull(project);
    //ProjectConfig config = project.getConfig();
    assertEquals(project.getDescription(), "updated project");
    assertEquals(project.getProjectType().getId(), "testUpdateProject");
}
Also used : ContainerResponse(org.everrest.core.impl.ContainerResponse) LinkedHashMap(java.util.LinkedHashMap) HashMap(java.util.HashMap) ProjectConfigDto(org.eclipse.che.api.workspace.shared.dto.ProjectConfigDto) Collections.singletonList(java.util.Collections.singletonList) ArrayList(java.util.ArrayList) List(java.util.List) LinkedList(java.util.LinkedList) ProjectTypeDef(org.eclipse.che.api.project.server.type.ProjectTypeDef) LinkedHashMap(java.util.LinkedHashMap) Test(org.testng.annotations.Test)

Aggregations

ProjectTypeDef (org.eclipse.che.api.project.server.type.ProjectTypeDef)16 HashSet (java.util.HashSet)10 ProjectTypeRegistry (org.eclipse.che.api.project.server.type.ProjectTypeRegistry)9 ArrayList (java.util.ArrayList)8 Test (org.testng.annotations.Test)6 ProjectConfigDto (org.eclipse.che.api.workspace.shared.dto.ProjectConfigDto)5 File (java.io.File)3 PathMatcher (java.nio.file.PathMatcher)3 Collections.singletonList (java.util.Collections.singletonList)3 HashMap (java.util.HashMap)3 LinkedHashMap (java.util.LinkedHashMap)3 LinkedHashSet (java.util.LinkedHashSet)3 LinkedList (java.util.LinkedList)3 List (java.util.List)3 Set (java.util.Set)3 Attribute (org.eclipse.che.api.core.model.project.type.Attribute)3 EventService (org.eclipse.che.api.core.notification.EventService)3 HttpJsonRequest (org.eclipse.che.api.core.rest.HttpJsonRequest)3 ProjectHandlerRegistry (org.eclipse.che.api.project.server.handlers.ProjectHandlerRegistry)3 SelfReturningAnswer (org.eclipse.che.commons.test.mockito.answer.SelfReturningAnswer)3