/******************************************************************************* * Copyright (c) 2006-2013 The RCP Company 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: * The RCP Company - initial API and implementation *******************************************************************************/ package com.rcpcompany.uibindings.extests.manager; import static com.rcpcompany.test.utils.BaseTestUtils.*; import static org.junit.Assert.*; import java.lang.reflect.Field; import org.eclipse.emf.common.util.EMap; import org.junit.Test; import com.rcpcompany.uibindings.Constants; import com.rcpcompany.uibindings.IArgumentInformation; import com.rcpcompany.uibindings.IManager; import com.rcpcompany.uibindings.internal.InternalConstants; /** * Tests the {@link IManager#getArgumentInfo()} information. * * @author Tonny Madsen, The RCP Company */ public class ManagerArgumentInformationTest { IArgumentInformation ai; /** * Tests a proper error message is used for all unknown argument names */ @Test public void testUnknown() { final IManager manager = IManager.Factory.getManager(); final EMap<String, IArgumentInformation> ais = manager.getArgumentInformation(); String name = null; for (int i = 1000; i < 1000000; i++) { name = "unknown" + i; if (!ais.containsKey(name)) { break; } } final String n = name; assertOneLog(new Runnable() { @Override public void run() { ai = manager.getArgumentInformation(n); } }); assertNotNull(ai); assertEquals(name, ai.getName()); assertEquals(true, ai.isLookupParent()); assertEquals(false, ai.isLookupAttributeTargetType()); assertEquals(true, ai.isLookupAttributeContainingClass()); assertEquals(true, ai.isLookupReferenceTargetType()); assertEquals(false, ai.isLookupReferenceContainingClass()); assertNoLog(new Runnable() { @Override public void run() { ai = manager.getArgumentInformation(n); } }); } /** * Test values for the format argument */ @Test public void testFormatArgument() { final IManager manager = IManager.Factory.getManager(); final IArgumentInformation ai = manager.getArgumentInformation().get(Constants.ARG_MESSAGE_FORMAT); assertNotNull(ai); assertEquals("format", ai.getName()); assertEquals(true, ai.isLookupParent()); assertEquals(true, ai.isLookupAttributeTargetType()); assertEquals(false, ai.isLookupAttributeContainingClass()); assertEquals(false, ai.isLookupReferenceTargetType()); assertEquals(false, ai.isLookupReferenceContainingClass()); } /** * Test values for the image argument */ @Test public void testImageArgument() { final IManager manager = IManager.Factory.getManager(); final IArgumentInformation ai = manager.getArgumentInformation().get(Constants.ARG_IMAGE); assertNotNull(ai); assertEquals("image", ai.getName()); assertEquals(true, ai.isLookupParent()); assertEquals(false, ai.isLookupAttributeTargetType()); assertEquals(true, ai.isLookupAttributeContainingClass()); assertEquals(true, ai.isLookupReferenceTargetType()); assertEquals(false, ai.isLookupReferenceContainingClass()); } /** * Test all of Constants.ARG_... are present (by reflection) */ @Test public void testARG_Present() { for (final Field f : Constants.class.getDeclaredFields()) { if (!f.getName().startsWith("ARG_")) { continue; } Object v = null; try { v = f.get(null); } catch (final Exception ex) { fail(ex.getMessage()); } assertNotNull("Value of Constants." + f.getName(), v); assertTrue("Value of Constants." + f.getName(), v instanceof String); final IArgumentInformation ai = IManager.Factory.getManager().getArgumentInformation().get(v); assertNotNull(InternalConstants.ARGUMENT_INFO_TAG + " declaration for '" + v + "' missing", ai); } } /** * Test all of Constants.EXT_POINT_ATTRIBUTE_NAMES are present. */ @Test public void testEXT_POINT_ATTRIBUTE_NAMESPresent() { for (final String v : Constants.EXT_POINT_ATTRIBUTE_NAMES) { final IArgumentInformation ai = IManager.Factory.getManager().getArgumentInformation().get(v); assertNotNull(InternalConstants.ARGUMENT_INFO_TAG + " declaration for '" + v + "' missing", ai); } } }