package me.august.lumen.data;
import me.august.lumen.compile.resolve.data.ClassData;
import me.august.lumen.compile.resolve.lookup.DependencyManager;
import org.junit.Assert;
import org.junit.Test;
public class DataTest {
@Test
public void testClassData() {
ClassData data = ClassData.fromClass(String.class);
Assert.assertEquals(
String.class.getName(),
data.getName()
);
String[] expected = new String[]{
"java.io.Serializable", "java.lang.Comparable",
"java.lang.CharSequence"
};
Assert.assertArrayEquals(
expected,
data.getInterfaces()
);
}
@Test
public void testAssignableTo() {
DependencyManager deps = new DependencyManager();
ClassData data;
data = ClassData.fromClass(String.class);
Assert.assertTrue(
"Expected String to be assignable to String",
data.isAssignableTo("java.lang.String", deps)
);
Assert.assertTrue(
"Expected String to be assignable to Object",
data.isAssignableTo("java.lang.Object", deps)
);
Assert.assertTrue(
"Expected String to be assignable to CharSequence",
data.isAssignableTo("java.lang.CharSequence", deps)
);
data = ClassData.fromClass(Object.class);
Assert.assertFalse(
"Expected Object to not be assignable to String",
data.isAssignableTo("java.lang.String", deps)
);
data = ClassData.fromClass(CharSequence.class);
Assert.assertTrue(
"Expected CharSequence to be assignable to Object",
data.isAssignableTo("java.lang.Object", deps)
);
}
}