package com.laytonsmith.PureUtilities; import com.laytonsmith.PureUtilities.ClassLoading.ClassDiscovery; import com.laytonsmith.PureUtilities.Common.ReflectionUtils; import com.laytonsmith.testing.StaticTest; import static org.junit.Assert.assertEquals; import org.junit.Before; import org.junit.Test; /** * * */ public class ReflectionUtilsTest { public ReflectionUtilsTest() { } @Before public void setUp() { StaticTest.InstallFakeServerFrontend(); } class A { B bObj = new B(); } class B { C cObj = new C(); } class C { String obj = "string"; } @Test public void testRecursiveGet(){ A a = new A(); String result = (String)ReflectionUtils.get(A.class, a, "bObj.cObj.obj"); assertEquals("string", result); } @Test public void testFuzzyLookup(){ Class expected = ReflectionUtils.class; Class actual = ClassDiscovery.getDefaultInstance().forFuzzyName("com.laytonsmith.Pur.*", "ReflectionUtils").loadClass(); assertEquals(expected, actual); } }