/******************************************************************************* * Copyright (c) 2012-2017 Codenvy, S.A. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Codenvy, S.A. - initial API and implementation *******************************************************************************/ package org.eclipse.che.api.project.server; import org.eclipse.che.api.project.server.type.ProjectTypeDef; import org.eclipse.che.api.project.server.type.ProjectTypeRegistry; import org.testng.annotations.Test; import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; import java.util.HashSet; import java.util.List; import java.util.Set; import static org.eclipse.che.commons.lang.NameGenerator.generate; import static org.testng.Assert.assertEquals; import static org.testng.Assert.assertFalse; import static org.testng.Assert.assertNotNull; import static org.testng.Assert.assertTrue; public class ProjectTypesTest extends BaseProjectTypeTest { //@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); } //@Test(expectedExceptions = ProjectTypeConstraintException.class) public void testGetMixinsShouldReturnProjectTypeConstraintException() throws Exception { String otherPrimaryId = generate("projectType-", 3); Set<ProjectTypeDef> pts = new HashSet<>(); pts.add(new PrimaryType()); pts.add(new PrimaryType(otherPrimaryId, generate("projectType-", 5))); pts.add(new PersistedMixin()); ProjectTypeRegistry reg = new ProjectTypeRegistry(pts); List<RegisteredProject.Problem> problems = new ArrayList<>(); new ProjectTypes(generate("projectPath-", 5), PrimaryType.PRIMARY_ID, Arrays.asList( PersistedMixin.PERSISTED_MIXIN_ID, otherPrimaryId), reg, problems); assertEquals(problems.size(), 1); assertEquals(problems.get(0).code, 12); } @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); } @Test public void testGetMixins() throws Exception { Set<ProjectTypeDef> pts = new HashSet<>(); pts.add(new PrimaryType()); pts.add(new PersistedMixin()); ProjectTypeRegistry reg = new ProjectTypeRegistry(pts); List<RegisteredProject.Problem> problems = new ArrayList<>(); ProjectTypes projectTypes = new ProjectTypes(generate("projectPath-", 5), PrimaryType.PRIMARY_ID, Collections.singletonList(PersistedMixin.PERSISTED_MIXIN_ID), reg, problems); assertNotNull(projectTypes.getMixins()); assertEquals(projectTypes.getMixins().size(), 1); assertTrue(projectTypes.getMixins().containsKey(PersistedMixin.PERSISTED_MIXIN_ID)); } }