public void GenericInheritanceMappings() { var obj = api.FindType("java.lang.Object") as JavaClassModel; Assert.IsNotNull(obj.GenericInheritanceMapping, "java.lang.Object mapping not found"); Assert.AreEqual(0, obj.GenericInheritanceMapping.Count, "ContentObservable mapping not found"); var kls = api.FindType("android.database.ContentObservable") as JavaClassModel; var map = kls.GenericInheritanceMapping; Assert.IsNotNull(map, "ContentObservable mapping not found"); Assert.AreEqual(1, map.Count, "ContentObservable mapping count unexpected"); Assert.IsNotNull(map.Keys.First().ReferencedTypeParameter, "key is not GenericTypeParameter"); Assert.IsNotNull("T", map.Keys.First().ReferencedTypeParameter.Name, "key GenericTypeParameter has unexpected name"); Assert.IsNotNull(map.Values.First().ReferencedType, "value is not to JavaType"); Assert.IsNotNull("android.database.ContentObserver", map.Values.First().ReferencedType.FullName, "value JavaType has unexpected name"); var pkg = new JavaPackage("com.example", "com/example", null); var dummyType = JavaApiTestHelper.CreateClass(pkg, "Dummy"); var tps = new JavaTypeParameters(dummyType); var gt = new JavaTypeParameter("T", tps); Assert.IsTrue(map.TryGetValue(new JavaTypeReference(gt, null), out var mapped), "Mapped type for generic parameter 'T' not found, or dictionary lookup failed."); Assert.AreEqual("android.database.ContentObserver", mapped.ReferencedType.FullName, "unexpected resolved type"); }
public void TestResolvedTypes() { var type = api.FindType("android.database.ContentObservable"); Assert.IsNotNull(type, "type not found"); var kls = type as JavaClassModel; Assert.IsNotNull(kls, "type was not class"); Assert.IsNotNull(kls.BaseTypeReference, "extends not resolved."); Assert.IsNotNull(kls.BaseTypeReference.ReferencedType, "referenced type is not correctly resolved"); }
public void InstantiatedGenericArgumentName() { var kls = api.FindType("android.database.ContentObservable") as JavaClassModel; var method = kls.Methods.First(m => m.Name == "registerObserver"); Assert.IsNotNull(method, "registerObserver() not found."); var para = method.Parameters.FirstOrDefault(); Assert.IsNotNull(para, "Expected parameter, not found."); Assert.AreEqual(method.Parameters.First(), method.Parameters.Last(), "There should be only one parameter."); Assert.AreEqual("T", para.InstantiatedGenericArgumentName, "InstantiatedGenericArgumentName mismatch"); }