/******************************************************************************* * Copyright (c) 2010-2014 SAP AG and others. * 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: * SAP AG - initial API and implementation *******************************************************************************/ package org.eclipse.skalli.services.template; import org.eclipse.skalli.model.ProjectNature; import org.junit.Assert; import org.junit.Test; @SuppressWarnings("nls") public class ProjectTemplateBaseTest { private static final String PROPERTY_ID = "prop"; private static final String PROPERTY_ID1 = "prop1"; private static final String PROPERTY_ID2 = "prop2"; private static final String UNKNOWN_PROPERTY_ID = "unknownprop"; private static final String EXTENSION_NAME = "FoobarExtension"; private static final String EXTENSION_NAME1 = "FoobarExtension1"; private static final String UNKNOWN_EXTENSION_NAME = "UnknownExtension"; private static final String ID1 = "test-project"; private static final String CAPTION1 = "Test Project Template"; private static final String DESCRPIPTION1 = "This is a project template for testing"; private static final String ID2 = "test-component"; private static final String CAPTION2 = "Test Component Template"; private static final String DESCRPIPTION2 = "This is a component template for testing"; private static class TestProjectTemplate extends ProjectTemplateBase { @Override public String getId() { return ID1; } @Override public String getDisplayName() { return CAPTION1; } @Override public String getDescription() { return DESCRPIPTION1; } @Override public float getRank() { return 4711.0f; } @Override public ProjectNature getProjectNature() { return ProjectNature.PROJECT; } } private static class TestComponentTemplate extends ProjectTemplateBase { @Override public String getId() { return ID2; } @Override public String getDisplayName() { return CAPTION2; } @Override public String getDescription() { return DESCRPIPTION2; } @Override public float getRank() { return 815.0f; } @Override public ProjectNature getProjectNature() { return ProjectNature.COMPONENT; } } @Test public void testInitial() throws Exception { TestProjectTemplate projectTemplate = new TestProjectTemplate(); TestComponentTemplate componentTemplate = new TestComponentTemplate(); Assert.assertEquals(ID1, projectTemplate.getId()); Assert.assertEquals(CAPTION1, projectTemplate.getDisplayName()); Assert.assertEquals(DESCRPIPTION1, projectTemplate.getDescription()); Assert.assertNull(projectTemplate.getIncludedExtensions()); Assert.assertNull(projectTemplate.getExcludedExtensions()); Assert.assertTrue(projectTemplate.isAllowedSubprojectTemplate(projectTemplate)); Assert.assertTrue(componentTemplate.isAllowedSubprojectTemplate(componentTemplate)); Assert.assertTrue(projectTemplate.isAllowedSubprojectTemplate(componentTemplate)); Assert.assertFalse(componentTemplate.isAllowedSubprojectTemplate(projectTemplate)); Assert.assertFalse(projectTemplate.isEnabled(EXTENSION_NAME)); Assert.assertFalse(projectTemplate.isVisible(EXTENSION_NAME)); Assert.assertTrue(-1.0f == projectTemplate.getRank(EXTENSION_NAME)); } @Test public void testValueNullDefault() throws Exception { TestProjectTemplate projectTemplate = new TestProjectTemplate(); Assert.assertNull(projectTemplate.getCaption(EXTENSION_NAME, PROPERTY_ID)); projectTemplate.setCaption(EXTENSION_NAME, PROPERTY_ID, "foobar"); Assert.assertEquals("foobar", projectTemplate.getCaption(EXTENSION_NAME, PROPERTY_ID)); Assert.assertNull(projectTemplate.getCaption(UNKNOWN_EXTENSION_NAME, PROPERTY_ID)); Assert.assertNull(projectTemplate.getCaption(EXTENSION_NAME, UNKNOWN_PROPERTY_ID)); projectTemplate.setCaption(EXTENSION_NAME, PROPERTY_ID1, "foobar1"); Assert.assertEquals("foobar1", projectTemplate.getCaption(EXTENSION_NAME, PROPERTY_ID1)); projectTemplate.setCaption(EXTENSION_NAME1, PROPERTY_ID2, "foobar2"); Assert.assertEquals("foobar2", projectTemplate.getCaption(EXTENSION_NAME1, PROPERTY_ID2)); projectTemplate.setCaption(EXTENSION_NAME, PROPERTY_ID, null); Assert.assertNull(projectTemplate.getCaption(EXTENSION_NAME, PROPERTY_ID)); Assert.assertEquals("foobar1", projectTemplate.getCaption(EXTENSION_NAME, PROPERTY_ID1)); } @Test public void testValueWithDefault() throws Exception { TestProjectTemplate projectTemplate = new TestProjectTemplate(); Assert.assertEquals(Integer.MAX_VALUE, projectTemplate.getMaxSize(EXTENSION_NAME, PROPERTY_ID)); projectTemplate.setMaxSize(EXTENSION_NAME, PROPERTY_ID, 123); Assert.assertEquals(123, projectTemplate.getMaxSize(EXTENSION_NAME, PROPERTY_ID)); Assert.assertEquals(Integer.MAX_VALUE, projectTemplate.getMaxSize(UNKNOWN_EXTENSION_NAME, PROPERTY_ID)); Assert.assertEquals(Integer.MAX_VALUE, projectTemplate.getMaxSize(EXTENSION_NAME, UNKNOWN_PROPERTY_ID)); projectTemplate.setMaxSize(EXTENSION_NAME, PROPERTY_ID1, 456); Assert.assertEquals(456, projectTemplate.getMaxSize(EXTENSION_NAME, PROPERTY_ID1)); projectTemplate.setMaxSize(EXTENSION_NAME, PROPERTY_ID2, 789); Assert.assertEquals(789, projectTemplate.getMaxSize(EXTENSION_NAME, PROPERTY_ID2)); projectTemplate.setMaxSize(EXTENSION_NAME, PROPERTY_ID2, 789); } @Test public void testContains() throws Exception { TestProjectTemplate projectTemplate = new TestProjectTemplate(); Assert.assertFalse(projectTemplate.isNewItemsAllowed(EXTENSION_NAME, PROPERTY_ID)); projectTemplate.setNewItemsAllowed(EXTENSION_NAME, PROPERTY_ID, true); Assert.assertTrue(projectTemplate.isNewItemsAllowed(EXTENSION_NAME, PROPERTY_ID)); Assert.assertFalse(projectTemplate.isNewItemsAllowed(UNKNOWN_EXTENSION_NAME, PROPERTY_ID)); Assert.assertFalse(projectTemplate.isNewItemsAllowed(EXTENSION_NAME, UNKNOWN_PROPERTY_ID)); projectTemplate.setNewItemsAllowed(EXTENSION_NAME, PROPERTY_ID1, true); Assert.assertTrue(projectTemplate.isNewItemsAllowed(EXTENSION_NAME, PROPERTY_ID1)); projectTemplate.setNewItemsAllowed(EXTENSION_NAME, PROPERTY_ID2, true); Assert.assertTrue(projectTemplate.isNewItemsAllowed(EXTENSION_NAME, PROPERTY_ID2)); projectTemplate.setNewItemsAllowed(EXTENSION_NAME1, PROPERTY_ID2, true); Assert.assertTrue(projectTemplate.isNewItemsAllowed(EXTENSION_NAME1, PROPERTY_ID2)); projectTemplate.setNewItemsAllowed(EXTENSION_NAME1, PROPERTY_ID2, false); Assert.assertFalse(projectTemplate.isNewItemsAllowed(EXTENSION_NAME1, PROPERTY_ID2)); projectTemplate.setNewItemsAllowed(UNKNOWN_EXTENSION_NAME, PROPERTY_ID, false); Assert.assertFalse(projectTemplate.isNewItemsAllowed(UNKNOWN_EXTENSION_NAME, PROPERTY_ID)); projectTemplate.setNewItemsAllowed(EXTENSION_NAME, UNKNOWN_PROPERTY_ID, false); Assert.assertFalse(projectTemplate.isNewItemsAllowed(EXTENSION_NAME, UNKNOWN_PROPERTY_ID)); } @Test public void testBooleanValue() throws Exception { } }