]> gerrit.simantics Code Review - simantics/platform.git/blob - bundles/org.simantics.scl.reflection/tests/org/simantics/scl/reflection/tests/TestReflectionUtils.java
Fixed all line endings of the repository
[simantics/platform.git] / bundles / org.simantics.scl.reflection / tests / org / simantics / scl / reflection / tests / TestReflectionUtils.java
1 package org.simantics.scl.reflection.tests;
2
3 import static junit.framework.Assert.*;
4 import static org.simantics.scl.compiler.types.Types.parseType;
5
6 import java.util.ArrayList;
7 import java.util.List;
8
9 import org.junit.Test;
10 import org.simantics.scl.reflection.MinimalTypeBindingScheme;
11 import org.simantics.scl.reflection.ReflectionUtils;
12 import org.simantics.scl.reflection.TypeBindingScheme;
13 import org.simantics.scl.runtime.function.Function;
14
15 public class TestReflectionUtils {
16
17     @Test
18     public void testReflectionUtils() throws Exception {
19         TypeBindingScheme s = MinimalTypeBindingScheme.INSTANCE;        
20         
21         Class<?> c = getClass();
22         
23         assertTrue(ReflectionUtils.isAssignableFrom(s, parseType("Integer"), Integer.class));
24         assertTrue(ReflectionUtils.isAssignableFrom(s, parseType("Integer"), int.class));
25         assertTrue(ReflectionUtils.isAssignableFrom(s, parseType("String"), String.class));
26         assertTrue(ReflectionUtils.isAssignableFrom(s, parseType("[String]"), List.class));
27         assertTrue(ReflectionUtils.isAssignableFrom(s, parseType("[String]"), ArrayList.class));
28         assertTrue(ReflectionUtils.isAssignableFrom(s, List.class, parseType("[String]")));
29         assertFalse(ReflectionUtils.isAssignableFrom(s, ArrayList.class, parseType("[String]")));
30         assertTrue(ReflectionUtils.isAssignableFrom(s, parseType("String -> String"), 
31                 Function.class));
32         assertTrue(ReflectionUtils.isCompatible(s, parseType("String -> Integer"), 
33                 c.getMethod("method1", String.class)));
34         assertTrue(ReflectionUtils.isCompatible(s, parseType("String -> ()"), 
35                 c.getMethod("method2", String.class)));
36         assertTrue(ReflectionUtils.isCompatible(s, parseType("Integer"), 
37                 c.getMethod("method3")));
38         
39         assertFalse(ReflectionUtils.isAssignableFrom(s, parseType("String"), Integer.class));
40         
41     }
42     
43     public static int method1(String a) {
44         return a.length();
45     }
46     
47     public static void method2(String a) {
48         System.out.println(a);
49     }
50     
51     public static int method3() {
52         return 3;
53     }
54 }