Esempio n. 1
0
        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");
        }
Esempio n. 2
0
        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");
        }