/** * Copyright (C) 2013 - present by OpenGamma Inc. and the OpenGamma group of companies * * Please see distribution for license. */ package com.opengamma.sesame.config; import static org.testng.AssertJUnit.assertEquals; import static org.testng.AssertJUnit.assertSame; import java.util.Set; import org.testng.annotations.Test; import com.google.common.collect.Sets; import com.opengamma.util.test.TestGroup; @Test(groups = TestGroup.UNIT) public class ViewFactoryFunctionUtilsTest { interface I1 {} interface I2 {} interface I3 extends I4 {} interface I4 extends I5 {} interface I5 {} class C1 extends C2 implements I1, I2 {} class C2 extends C3 {} class C3 implements I3 {} @Test public void getSupertypes() { Set<Class<?>> expectedSupertypes = Sets.newLinkedHashSet(); expectedSupertypes.add(C1.class); expectedSupertypes.add(C2.class); expectedSupertypes.add(C3.class); expectedSupertypes.add(Object.class); expectedSupertypes.add(I1.class); expectedSupertypes.add(I2.class); expectedSupertypes.add(I3.class); expectedSupertypes.add(I4.class); expectedSupertypes.add(I5.class); Set<Class<?>> supertypes = EngineUtils.getSupertypes(C1.class); assertEquals(expectedSupertypes, supertypes); // check that results are cached assertSame(supertypes, EngineUtils.getSupertypes(C1.class)); } @Test public void getInterfaces() { Set<Class<?>> expectedInterfaces = Sets.newLinkedHashSet(); expectedInterfaces.add(I1.class); expectedInterfaces.add(I2.class); expectedInterfaces.add(I3.class); expectedInterfaces.add(I4.class); expectedInterfaces.add(I5.class); Set<Class<?>> interfaces = EngineUtils.getInterfaces(C1.class); assertEquals(expectedInterfaces, interfaces); // check that results are cached assertSame(interfaces, EngineUtils.getInterfaces(C1.class)); } }