/******************************************************************************* * Copyright (c) 2010 Fraunhofer IWU 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: * Fraunhofer IWU - initial API and implementation *******************************************************************************/ package net.enilink.composition.test; import java.util.Collection; import java.util.HashSet; import org.junit.Assert; import net.enilink.composition.annotations.Iri; public class RoleMapperTest extends CompositionTestCase { @Iri("urn:test:Display") public interface Display { } @Iri("urn:test:SubDisplay") public interface SubDisplay extends Display { } public static class DisplaySupport { } @org.junit.Test public void testSubclasses1() throws Exception { getRoleMapper().addConcept(Display.class); getRoleMapper().addConcept(SubDisplay.class); getRoleMapper().addBehaviour(DisplaySupport.class, "urn:test:Display"); Assert.assertTrue(findRoles("urn:test:Display").contains(Display.class)); Assert.assertTrue(findRoles("urn:test:Display").contains( DisplaySupport.class)); Assert.assertTrue(findRoles("urn:test:SubDisplay").contains( Display.class)); Assert.assertTrue(findRoles("urn:test:SubDisplay").contains( SubDisplay.class)); Assert.assertTrue(findRoles("urn:test:SubDisplay").contains( DisplaySupport.class)); } @org.junit.Test public void testSubclasses2() throws Exception { getRoleMapper().addBehaviour(DisplaySupport.class, "urn:test:Display"); getRoleMapper().addConcept(Display.class); getRoleMapper().addConcept(SubDisplay.class); Assert.assertTrue(findRoles("urn:test:Display").contains(Display.class)); Assert.assertTrue(findRoles("urn:test:Display").contains( DisplaySupport.class)); Assert.assertTrue(findRoles("urn:test:SubDisplay").contains( Display.class)); Assert.assertTrue(findRoles("urn:test:SubDisplay").contains( SubDisplay.class)); Assert.assertTrue(findRoles("urn:test:SubDisplay").contains( DisplaySupport.class)); } @org.junit.Test public void testSubclasses3() throws Exception { getRoleMapper().addConcept(Display.class); getRoleMapper().addBehaviour(DisplaySupport.class, "urn:test:Display"); getRoleMapper().addConcept(SubDisplay.class); Assert.assertTrue(findRoles("urn:test:Display").contains(Display.class)); Assert.assertTrue(findRoles("urn:test:Display").contains( DisplaySupport.class)); Assert.assertTrue(findRoles("urn:test:SubDisplay").contains( Display.class)); Assert.assertTrue(findRoles("urn:test:SubDisplay").contains( SubDisplay.class)); Assert.assertTrue(findRoles("urn:test:SubDisplay").contains( DisplaySupport.class)); } @org.junit.Test public void testSubclasses4() throws Exception { getRoleMapper().addConcept(SubDisplay.class); getRoleMapper().addConcept(Display.class); getRoleMapper().addBehaviour(DisplaySupport.class, "urn:test:Display"); Assert.assertTrue(findRoles("urn:test:Display").contains(Display.class)); Assert.assertTrue(findRoles("urn:test:Display").contains( DisplaySupport.class)); Assert.assertTrue(findRoles("urn:test:SubDisplay").contains( Display.class)); Assert.assertTrue(findRoles("urn:test:SubDisplay").contains( SubDisplay.class)); Assert.assertTrue(findRoles("urn:test:SubDisplay").contains( DisplaySupport.class)); } @org.junit.Test public void testSubclasses5() throws Exception { getRoleMapper().addBehaviour(DisplaySupport.class, "urn:test:Display"); getRoleMapper().addConcept(SubDisplay.class); getRoleMapper().addConcept(Display.class); Assert.assertTrue(findRoles("urn:test:Display").contains(Display.class)); Assert.assertTrue(findRoles("urn:test:Display").contains( DisplaySupport.class)); Assert.assertTrue(findRoles("urn:test:SubDisplay").contains( Display.class)); Assert.assertTrue(findRoles("urn:test:SubDisplay").contains( SubDisplay.class)); Assert.assertTrue(findRoles("urn:test:SubDisplay").contains( DisplaySupport.class)); } @org.junit.Test public void testSubclasses6() throws Exception { getRoleMapper().addConcept(SubDisplay.class); getRoleMapper().addBehaviour(DisplaySupport.class, "urn:test:Display"); getRoleMapper().addConcept(Display.class); Assert.assertTrue(findRoles("urn:test:Display").contains(Display.class)); Assert.assertTrue(findRoles("urn:test:Display").contains( DisplaySupport.class)); Assert.assertTrue(findRoles("urn:test:SubDisplay").contains( Display.class)); Assert.assertTrue(findRoles("urn:test:SubDisplay").contains( SubDisplay.class)); Assert.assertTrue(findRoles("urn:test:SubDisplay").contains( DisplaySupport.class)); } private Collection<Class<?>> findRoles(String uri) { return getRoleMapper().findRoles(uri, new HashSet<Class<?>>()); } @Override public void setUp() throws Exception { super.setUp(); } }