/* * 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.core; import junit.framework.TestCase; public class DefaultScopeTest extends TestCase { public void testLookup() { ProvidedInterface provider = new DefaultProvidedInterface("x", Integer.class); Scope scope = new DefaultScope(new ProvidedInterface[0]); scope.publishInterface(provider, 100); assertNotNull(provider.getUniqueId()); assertEquals(100, scope.getInterfaceImplementation(provider, Integer.class).intValue()); } public void testNestedLookup() { ProvidedInterface provider1 = new DefaultProvidedInterface("x", Integer.class); Scope parent = new DefaultScope(new ProvidedInterface[0]); parent.publishInterface(provider1, 100); ProvidedInterface provider2 = new DefaultProvidedInterface("y", String.class); Scope child = new DefaultScope(new ProvidedInterface[0], parent); child.publishInterface(provider2, "hallo"); assertNotNull(provider1.getUniqueId()); assertNotNull(provider2.getUniqueId()); assertFalse(provider1.getUniqueId().equals(provider2.getUniqueId())); assertEquals(100, child.getInterfaceImplementation(provider1, Integer.class).intValue()); assertEquals("hallo", child.getInterfaceImplementation(provider2, String.class)); } }