/* * Copyright 2008 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.wamblee.system.graph.component; import junit.framework.TestCase; import org.wamblee.system.container.Container; import org.wamblee.system.core.Component; import org.wamblee.system.core.DefaultProvidedInterface; import org.wamblee.system.core.Environment; import org.wamblee.system.graph.DefaultEdge; import org.wamblee.system.graph.DefaultNode; import org.wamblee.system.graph.Edge; import org.wamblee.system.graph.EdgeFilter; /** * DOCUMENT ME! * * @author $author$ * @version $Revision$ */ public class ConnectExternalProvidedProvidedEdgeFilterTest extends TestCase { /** * DOCUMENT ME! */ private Container container; /** * DOCUMENT ME! */ private Component internal; /** * DOCUMENT ME! */ private String externalInterfaceName; /** * DOCUMENT ME! */ private String internalComponentName; /** * DOCUMENT ME! */ private String internalInterfaceName; /** * DOCUMENT ME! */ private Edge edge; /** * DOCUMENT ME! * * @throws Exception DOCUMENT ME! */ @Override protected void setUp() throws Exception { container = new Container("container") .addProvidedInterface(new DefaultProvidedInterface("string", String.class)); internal = new Environment("env1"); externalInterfaceName = container.getProvidedInterfaces().get(0) .getName(); internalComponentName = internal.getName(); internalInterfaceName = internal.getProvidedInterfaces().get(0) .getName(); edge = new DefaultEdge(new ExternalProvidedInterfaceNode( container, container.getProvidedInterfaces().get(0)), new ProvidedInterfaceNode(internal, internal.getProvidedInterfaces().get(0))); } /** * DOCUMENT ME! */ public void testWrongExternal() { EdgeFilter filter = new ConnectExternalProvidedProvidedFilter(externalInterfaceName + "x", internalComponentName, internalInterfaceName); assertFalse(filter.isViolated(edge)); } /** * DOCUMENT ME! */ public void testRightExternalWrongComponent() { EdgeFilter filter = new ConnectExternalProvidedProvidedFilter(externalInterfaceName, internalComponentName + "x", internalInterfaceName); assertTrue(filter.isViolated(edge)); } /** * DOCUMENT ME! */ public void testRightExternalWrongInternal() { EdgeFilter filter = new ConnectExternalProvidedProvidedFilter(externalInterfaceName, internalComponentName, internalInterfaceName + "x"); assertTrue(filter.isViolated(edge)); } /** * DOCUMENT ME! */ public void testEverythingRight() { EdgeFilter filter = new ConnectExternalProvidedProvidedFilter(externalInterfaceName, internalComponentName, internalInterfaceName); assertFalse(filter.isViolated(edge)); } /** * DOCUMENT ME! */ public void testWrongEdgeType() { EdgeFilter filter = new ConnectExternalProvidedProvidedFilter(externalInterfaceName, internalComponentName, internalInterfaceName); DefaultEdge edge = new DefaultEdge(new DefaultNode("x"), new DefaultNode("y")); assertFalse(filter.isViolated(edge)); } }