forked from dotnet/java-interop
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathBaseMethodTests.cs
More file actions
87 lines (74 loc) · 3.37 KB
/
BaseMethodTests.cs
File metadata and controls
87 lines (74 loc) · 3.37 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
using System;
using System.Linq;
using Java.Interop.Tools.JavaTypeSystem.Models;
using NUnit.Framework;
namespace Java.Interop.Tools.JavaTypeSystem.Tests
{
[TestFixture]
public class BaseMethodTests
{
JavaTypeCollection api;
[OneTimeSetUp]
public void SetupFixture ()
{
api = JavaApiTestHelper.GetLoadedApi ();
api.ResolveCollection ();
}
[Test]
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");
}
[Test]
public void AncestralOverrides ()
{
string xml = @"<api>
<package name='XXX'>
<class abstract='true' deprecated='not deprecated' extends='android.app.ExpandableListActivity' extends-generic-aware='android.app.ExpandableListActivity' final='false' name='SherlockExpandableListActivity' static='false' visibility='public' jni-signature='Landroid/app/ExpandableListActivity;'>
<method abstract='false' deprecated='not deprecated' final='false' name='addContentView' native='false' return='void' static='false' synchronized='false' visibility='public' jni-signature='(Landroid/view/View;Landroid/view/ViewGroup$LayoutParams;)V'>
<parameter name = 'view' type='android.view.View' jni-type='Landroid/view/View;'>
</parameter>
<parameter name = 'params' type='android.view.ViewGroup.LayoutParams' jni-type='Landroid/view/ViewGroup$LayoutParams;'>
</parameter>
</method>
</class>
</package>
</api>";
var xapi = JavaApiTestHelper.GetLoadedApi ();
JavaXmlApiImporter.ParseString (xml, xapi);
xapi.ResolveCollection ();
var t = xapi.Packages ["XXX"].Types.First (_ => _.Name == "SherlockExpandableListActivity");
var m = t.Methods.First (_ => _.Name == "addContentView");
Assert.IsNotNull (m.BaseMethod, "base method not found");
}
[Test]
public void GenericConstructors ()
{
string xml = @"<api>
<package name='XXX'>
<class abstract='true' deprecated='not deprecated' final='false' name='GenericConstructors' static='false' visibility='public' jni-signature='Landroid/app/GenericConstructors' extends='java.lang.Object' extends-generic-aware='java.lang.Object'>
<constructor deprecated='not deprecated' final='false' name='GenericConstructors' static='false' visibility='public' jni-signature='(LTTE;)V'>
<typeParameters>
<typeParameter name='E' interfaceBounds='' jni-interfaceBounds='' />
</typeParameters>
<parameter name = 'e' type='E' jni-type='TE;'>
</parameter>
</constructor>
</class>
</package>
</api>";
var xapi = JavaApiTestHelper.GetLoadedApi ();
JavaXmlApiImporter.ParseString (xml, xapi);
var results = xapi.ResolveCollection ();
var t = xapi.Packages ["XXX"].Types.First (_ => _.Name == "GenericConstructors") as JavaClassModel;
var m = t.Constructors.FirstOrDefault ();
Assert.IsNotNull (m.TypeParameters, "constructor not found");
}
}
}