Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/monodevelop.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Krüger <mkrueger@novell.com>2011-06-20 15:31:28 +0400
committerMike Krüger <mkrueger@novell.com>2011-06-20 15:31:28 +0400
commit2c88cd62be1e6b422da94123ac86ddc28feea20e (patch)
tree7b050cea19cd51a242ad20c6fde09aca82105c0f /main/tests
parent00a9327b0f4bd6f6f32cada241839d6ed34d1aa4 (diff)
Translated unit tests.
Diffstat (limited to 'main/tests')
-rw-r--r--main/tests/UnitTests/Makefile.am12
-rw-r--r--main/tests/UnitTests/MonoDevelop.CSharpBinding/CodeCompletionAccessibleTests.cs1733
-rw-r--r--main/tests/UnitTests/MonoDevelop.CSharpBinding/CodeCompletionBugTests.cs5756
-rw-r--r--main/tests/UnitTests/MonoDevelop.CSharpBinding/CodeCompletionCSharp3Tests.cs597
-rw-r--r--main/tests/UnitTests/MonoDevelop.CSharpBinding/CodeCompletionCSharpTests.cs1
-rw-r--r--main/tests/UnitTests/MonoDevelop.CSharpBinding/CodeCompletionOperatorTests.cs289
-rw-r--r--main/tests/UnitTests/MonoDevelop.CSharpBinding/FindMemberVisitorTests.cs1746
-rw-r--r--main/tests/UnitTests/MonoDevelop.CSharpBinding/MemberTests.cs412
-rw-r--r--main/tests/UnitTests/MonoDevelop.CSharpBinding/ParameterCompletionTests.cs307
-rw-r--r--main/tests/UnitTests/MonoDevelop.CSharpBinding/ProjectDomTests.cs2
-rw-r--r--main/tests/UnitTests/MonoDevelop.CSharpBinding/TopLevelTests.cs506
-rw-r--r--main/tests/UnitTests/UnitTests.csproj24
12 files changed, 5693 insertions, 5692 deletions
diff --git a/main/tests/UnitTests/Makefile.am b/main/tests/UnitTests/Makefile.am
index ca2614ccb0..b603468cfd 100644
--- a/main/tests/UnitTests/Makefile.am
+++ b/main/tests/UnitTests/Makefile.am
@@ -60,6 +60,18 @@ FILES = \
Mono.TextEditor.Tests/UndoRedoTests.cs \
Mono.TextEditor.Tests/VirtualSpacesTests.cs \
Mono.TextEditor.Tests/ViTests.cs \
+ MonoDevelop.CSharpBinding/CodeCompletionAccessibleTests.cs \
+ MonoDevelop.CSharpBinding/CodeCompletionBugTests.cs \
+ MonoDevelop.CSharpBinding/CodeCompletionCSharp3Tests.cs \
+ MonoDevelop.CSharpBinding/CodeCompletionCSharpTests.cs \
+ MonoDevelop.CSharpBinding/CodeCompletionOperatorTests.cs \
+ MonoDevelop.CSharpBinding/FindMemberVisitorTests.cs \
+ MonoDevelop.CSharpBinding/MemberTests.cs \
+ MonoDevelop.CSharpBinding/ParameterCompletionTests.cs \
+ MonoDevelop.CSharpBinding/ProjectDomTests.cs \
+ MonoDevelop.CSharpBinding/TestViewContent.cs \
+ MonoDevelop.CSharpBinding/TestWorkbenchWindow.cs \
+ MonoDevelop.CSharpBinding/TopLevelTests.cs \
MonoDevelop.Projects.Gui/CompletionListWindowTests.cs \
MonoDevelop.Projects/LocalCopyTests.cs \
MonoDevelop.Projects/MakefileTests.cs \
diff --git a/main/tests/UnitTests/MonoDevelop.CSharpBinding/CodeCompletionAccessibleTests.cs b/main/tests/UnitTests/MonoDevelop.CSharpBinding/CodeCompletionAccessibleTests.cs
index d8691742aa..aeb0299f60 100644
--- a/main/tests/UnitTests/MonoDevelop.CSharpBinding/CodeCompletionAccessibleTests.cs
+++ b/main/tests/UnitTests/MonoDevelop.CSharpBinding/CodeCompletionAccessibleTests.cs
@@ -1,4 +1,4 @@
-//
+//
// CodeCompletionAccessibleTests.cs
//
// Author:
@@ -27,226 +27,225 @@
//
using System;
-using NUnit.Framework;
-using MonoDevelop.Ide.Gui;
+using NUnit.Framework;
+using MonoDevelop.Ide.Gui;
using MonoDevelop.Projects;
using MonoDevelop.Core;
-using MonoDevelop.Ide.CodeCompletion;
-using MonoDevelop.Ide.Gui.Content;
-using MonoDevelop.Projects.Dom.Parser;
+using MonoDevelop.Ide.CodeCompletion;
+using MonoDevelop.Ide.Gui.Content;
namespace MonoDevelop.CSharpBinding.Tests
{
[TestFixture()]
public class CodeCompletionAccessibleTests: UnitTests.TestBase
- {
- static string testClass = @"
+ {
+ static string testClass = @"
using System;
-public class TestClass
-{
- public int PubField;
- public int PubProperty { get; set; }
- public void PubMethod () { }
-
- protected int ProtField;
- protected int ProtProperty { get; set; }
- protected void ProtMethod () { }
-
- internal protected int ProtOrInternalField;
- internal protected int ProtOrInternalProperty { get; set; }
- internal protected void ProtOrInternalMethod () { }
-
- protected internal int ProtAndInternalField;
- protected internal int ProtAndInternalProperty { get; set; }
- protected internal void ProtAndInternalMethod () { }
-
- internal int InternalField;
- internal int InternalProperty { get; set; }
- internal void InternalMethod () { }
-
- private int PrivField;
- private int PrivProperty { get; set; }
- private void PrivMethod () { }
-
- public static int PubStaticField;
- public static int PubStaticProperty { get; set; }
- public static void PubStaticMethod () { }
-
- protected static int ProtStaticField;
- protected static int ProtStaticProperty { get; set; }
- protected static void ProtStaticMethod () { }
-
- private static int PrivStaticField;
- private static int PrivStaticProperty { get; set; }
- private static void PrivStaticMethod () { }
+public class TestClass
+{
+ public int PubField;
+ public int PubProperty { get; set; }
+ public void PubMethod () { }
+
+ protected int ProtField;
+ protected int ProtProperty { get; set; }
+ protected void ProtMethod () { }
+
+ internal protected int ProtOrInternalField;
+ internal protected int ProtOrInternalProperty { get; set; }
+ internal protected void ProtOrInternalMethod () { }
+
+ protected internal int ProtAndInternalField;
+ protected internal int ProtAndInternalProperty { get; set; }
+ protected internal void ProtAndInternalMethod () { }
+
+ internal int InternalField;
+ internal int InternalProperty { get; set; }
+ internal void InternalMethod () { }
+
+ private int PrivField;
+ private int PrivProperty { get; set; }
+ private void PrivMethod () { }
+
+ public static int PubStaticField;
+ public static int PubStaticProperty { get; set; }
+ public static void PubStaticMethod () { }
+
+ protected static int ProtStaticField;
+ protected static int ProtStaticProperty { get; set; }
+ protected static void ProtStaticMethod () { }
+
+ private static int PrivStaticField;
+ private static int PrivStaticProperty { get; set; }
+ private static void PrivStaticMethod () { }
";
[Test()]
public void TestNonStaticClassAccess ()
- {
- CompletionDataList provider = CodeCompletionBugTests.CreateProvider (testClass +
-@"
- void TestMethod ()
- {
- $this.$
- }
-}");
- Assert.IsNotNull (provider, "provider == null");
-
- CodeCompletionBugTests.CheckProtectedObjectMembers (provider); // 5 from System.Object
- Assert.IsNotNull (provider.Find ("PubField"));
- Assert.IsNotNull (provider.Find ("PubProperty"));
- Assert.IsNotNull (provider.Find ("PubMethod"));
-
- Assert.IsNotNull (provider.Find ("ProtField"));
- Assert.IsNotNull (provider.Find ("ProtProperty"));
- Assert.IsNotNull (provider.Find ("ProtMethod"));
-
- Assert.IsNotNull (provider.Find ("PrivField"));
- Assert.IsNotNull (provider.Find ("PrivProperty"));
- Assert.IsNotNull (provider.Find ("PrivMethod"));
- }
-
- [Test()]
- public void TestInternalAccess ()
- {
- CompletionDataList provider = CodeCompletionBugTests.CreateProvider (testClass +
-@"
- void TestMethod ()
- {
- $this.$
- }
-}");
- Assert.IsNotNull (provider, "provider == null");
-
- Assert.IsNotNull (provider.Find ("InternalField"));
- Assert.IsNotNull (provider.Find ("InternalProperty"));
- Assert.IsNotNull (provider.Find ("InternalMethod"));
-
- Assert.IsNotNull (provider.Find ("ProtAndInternalField"));
- Assert.IsNotNull (provider.Find ("ProtAndInternalProperty"));
- Assert.IsNotNull (provider.Find ("ProtAndInternalMethod"));
-
- Assert.IsNotNull (provider.Find ("ProtOrInternalField"));
- Assert.IsNotNull (provider.Find ("ProtOrInternalProperty"));
- Assert.IsNotNull (provider.Find ("ProtOrInternalMethod"));
- }
-
- [Test()]
- public void TestInternalAccessOutside ()
- {
- CompletionDataList provider = CodeCompletionBugTests.CreateProvider (testClass +
-@"
-}
-class Test2 {
- void TestMethod ()
- {
- TestClass tc;
- $tc.$
- }
-}");
- Assert.IsNotNull (provider, "provider == null");
-
- Assert.IsNotNull (provider.Find ("InternalField"), "InternalField == null");
- Assert.IsNotNull (provider.Find ("InternalProperty"), "InternalProperty == null");
- Assert.IsNotNull (provider.Find ("InternalMethod"), "InternalMethod == null");
-
- Assert.IsNotNull (provider.Find ("ProtOrInternalField"), "ProtOrInternalField == null");
- Assert.IsNotNull (provider.Find ("ProtOrInternalProperty"), "ProtOrInternalProperty == null");
- Assert.IsNotNull (provider.Find ("ProtOrInternalMethod"), "ProtOrInternalMethod == null");
- }
-
+ {
+ CompletionDataList provider = CodeCompletionBugTests.CreateProvider (testClass +
+@"
+ void TestMethod ()
+ {
+ $this.$
+ }
+}");
+ Assert.IsNotNull (provider, "provider == null");
+
+ CodeCompletionBugTests.CheckProtectedObjectMembers (provider); // 5 from System.Object
+ Assert.IsNotNull (provider.Find ("PubField"));
+ Assert.IsNotNull (provider.Find ("PubProperty"));
+ Assert.IsNotNull (provider.Find ("PubMethod"));
+
+ Assert.IsNotNull (provider.Find ("ProtField"));
+ Assert.IsNotNull (provider.Find ("ProtProperty"));
+ Assert.IsNotNull (provider.Find ("ProtMethod"));
+
+ Assert.IsNotNull (provider.Find ("PrivField"));
+ Assert.IsNotNull (provider.Find ("PrivProperty"));
+ Assert.IsNotNull (provider.Find ("PrivMethod"));
+ }
+
+ [Test()]
+ public void TestInternalAccess ()
+ {
+ CompletionDataList provider = CodeCompletionBugTests.CreateProvider (testClass +
+@"
+ void TestMethod ()
+ {
+ $this.$
+ }
+}");
+ Assert.IsNotNull (provider, "provider == null");
+
+ Assert.IsNotNull (provider.Find ("InternalField"));
+ Assert.IsNotNull (provider.Find ("InternalProperty"));
+ Assert.IsNotNull (provider.Find ("InternalMethod"));
+
+ Assert.IsNotNull (provider.Find ("ProtAndInternalField"));
+ Assert.IsNotNull (provider.Find ("ProtAndInternalProperty"));
+ Assert.IsNotNull (provider.Find ("ProtAndInternalMethod"));
+
+ Assert.IsNotNull (provider.Find ("ProtOrInternalField"));
+ Assert.IsNotNull (provider.Find ("ProtOrInternalProperty"));
+ Assert.IsNotNull (provider.Find ("ProtOrInternalMethod"));
+ }
+
+ [Test()]
+ public void TestInternalAccessOutside ()
+ {
+ CompletionDataList provider = CodeCompletionBugTests.CreateProvider (testClass +
+@"
+}
+class Test2 {
+ void TestMethod ()
+ {
+ TestClass tc;
+ $tc.$
+ }
+}");
+ Assert.IsNotNull (provider, "provider == null");
+
+ Assert.IsNotNull (provider.Find ("InternalField"), "InternalField == null");
+ Assert.IsNotNull (provider.Find ("InternalProperty"), "InternalProperty == null");
+ Assert.IsNotNull (provider.Find ("InternalMethod"), "InternalMethod == null");
+
+ Assert.IsNotNull (provider.Find ("ProtOrInternalField"), "ProtOrInternalField == null");
+ Assert.IsNotNull (provider.Find ("ProtOrInternalProperty"), "ProtOrInternalProperty == null");
+ Assert.IsNotNull (provider.Find ("ProtOrInternalMethod"), "ProtOrInternalMethod == null");
+ }
+
[Test()]
public void TestStaticClassAccess ()
- {
- CompletionDataList provider = CodeCompletionBugTests.CreateProvider (testClass +
-@"
- void TestMethod ()
- {
- $TestClass.$
- }
-}");
- Assert.IsNotNull (provider, "provider == null");
-
- CodeCompletionBugTests.CheckStaticObjectMembers (provider); // 2 from System.Object
- Assert.IsNotNull (provider.Find ("PubStaticField"));
- Assert.IsNotNull (provider.Find ("PubStaticProperty"));
- Assert.IsNotNull (provider.Find ("PubStaticMethod"));
-
- Assert.IsNotNull (provider.Find ("ProtStaticField"));
- Assert.IsNotNull (provider.Find ("ProtStaticProperty"));
- Assert.IsNotNull (provider.Find ("ProtStaticMethod"));
-
- Assert.IsNotNull (provider.Find ("PrivStaticField"));
- Assert.IsNotNull (provider.Find ("PrivStaticProperty"));
- Assert.IsNotNull (provider.Find ("PrivStaticMethod"));
- }
-
+ {
+ CompletionDataList provider = CodeCompletionBugTests.CreateProvider (testClass +
+@"
+ void TestMethod ()
+ {
+ $TestClass.$
+ }
+}");
+ Assert.IsNotNull (provider, "provider == null");
+
+ CodeCompletionBugTests.CheckStaticObjectMembers (provider); // 2 from System.Object
+ Assert.IsNotNull (provider.Find ("PubStaticField"));
+ Assert.IsNotNull (provider.Find ("PubStaticProperty"));
+ Assert.IsNotNull (provider.Find ("PubStaticMethod"));
+
+ Assert.IsNotNull (provider.Find ("ProtStaticField"));
+ Assert.IsNotNull (provider.Find ("ProtStaticProperty"));
+ Assert.IsNotNull (provider.Find ("ProtStaticMethod"));
+
+ Assert.IsNotNull (provider.Find ("PrivStaticField"));
+ Assert.IsNotNull (provider.Find ("PrivStaticProperty"));
+ Assert.IsNotNull (provider.Find ("PrivStaticMethod"));
+ }
+
[Test()]
public void TestExternalNonStaticClassAccess ()
- {
- CompletionDataList provider = CodeCompletionBugTests.CreateProvider (testClass +
-@"}
-class AClass {
- void TestMethod ()
- {
- TestClass c;
- $c.$
- }
-}");
- Assert.IsNotNull (provider, "provider == null");
-
- CodeCompletionBugTests.CheckObjectMembers (provider);
- Assert.IsNotNull (provider.Find ("PubField"));
- Assert.IsNotNull (provider.Find ("PubProperty"));
- Assert.IsNotNull (provider.Find ("PubMethod"));
- }
-
+ {
+ CompletionDataList provider = CodeCompletionBugTests.CreateProvider (testClass +
+@"}
+class AClass {
+ void TestMethod ()
+ {
+ TestClass c;
+ $c.$
+ }
+}");
+ Assert.IsNotNull (provider, "provider == null");
+
+ CodeCompletionBugTests.CheckObjectMembers (provider);
+ Assert.IsNotNull (provider.Find ("PubField"));
+ Assert.IsNotNull (provider.Find ("PubProperty"));
+ Assert.IsNotNull (provider.Find ("PubMethod"));
+ }
+
[Test()]
public void TestExternalStaticClassAccess ()
- {
- CompletionDataList provider = CodeCompletionBugTests.CreateProvider (testClass +
-@"}
-class AClass {
- void TestMethod ()
- {
- $TestClass.$
- }
-}");
- Assert.IsNotNull (provider, "provider == null");
-
- CodeCompletionBugTests.CheckStaticObjectMembers (provider); // 2 members
- Assert.IsNotNull (provider.Find ("PubStaticField"));
- Assert.IsNotNull (provider.Find ("PubStaticProperty"));
- Assert.IsNotNull (provider.Find ("PubStaticMethod"));
- }
-
+ {
+ CompletionDataList provider = CodeCompletionBugTests.CreateProvider (testClass +
+@"}
+class AClass {
+ void TestMethod ()
+ {
+ $TestClass.$
+ }
+}");
+ Assert.IsNotNull (provider, "provider == null");
+
+ CodeCompletionBugTests.CheckStaticObjectMembers (provider); // 2 members
+ Assert.IsNotNull (provider.Find ("PubStaticField"));
+ Assert.IsNotNull (provider.Find ("PubStaticProperty"));
+ Assert.IsNotNull (provider.Find ("PubStaticMethod"));
+ }
+
[Test()]
public void TestExternalNonStaticSubclassAccess ()
- {
- CompletionDataList provider = CodeCompletionBugTests.CreateProvider (testClass +
-@"}
-class AClass : TestClass {
- void TestMethod ()
- {
- $this.$
- }
-}");
- Assert.IsNotNull (provider, "provider == null");
-
- CodeCompletionBugTests.CheckProtectedObjectMembers (provider);
- Assert.IsNotNull (provider.Find ("PubField"));
- Assert.IsNotNull (provider.Find ("PubProperty"));
- Assert.IsNotNull (provider.Find ("PubMethod"));
- Assert.IsNotNull (provider.Find ("ProtField"));
- Assert.IsNotNull (provider.Find ("ProtProperty"));
- Assert.IsNotNull (provider.Find ("ProtMethod"));
- }
-
+ {
+ CompletionDataList provider = CodeCompletionBugTests.CreateProvider (testClass +
+@"}
+class AClass : TestClass {
+ void TestMethod ()
+ {
+ $this.$
+ }
+}");
+ Assert.IsNotNull (provider, "provider == null");
+
+ CodeCompletionBugTests.CheckProtectedObjectMembers (provider);
+ Assert.IsNotNull (provider.Find ("PubField"));
+ Assert.IsNotNull (provider.Find ("PubProperty"));
+ Assert.IsNotNull (provider.Find ("PubMethod"));
+ Assert.IsNotNull (provider.Find ("ProtField"));
+ Assert.IsNotNull (provider.Find ("ProtProperty"));
+ Assert.IsNotNull (provider.Find ("ProtMethod"));
+ }
+
[Test()]
public void TestThisProtectedMemberAccess ()
- {
- CompletionDataList provider = CodeCompletionBugTests.CreateProvider (
+ {
+ CompletionDataList provider = CodeCompletionBugTests.CreateProvider (
@"
class Test
{
@@ -261,17 +260,17 @@ class Test2 : Test
{
$this.$
}
-}");
- Assert.IsNotNull (provider, "provider == null");
- Assert.IsNotNull (provider.Find ("Test"), "method 'Test' not found.");
- }
-
+}");
+ Assert.IsNotNull (provider, "provider == null");
+ Assert.IsNotNull (provider.Find ("Test"), "method 'Test' not found.");
+ }
+
[Test()]
public void TestBasePrivateMemberAccess ()
- {
- CompletionDataList provider = CodeCompletionBugTests.CreateProvider (
-testClass + @"
-}
+ {
+ CompletionDataList provider = CodeCompletionBugTests.CreateProvider (
+testClass + @"
+}
class Test : TestClass
{
@@ -279,17 +278,17 @@ class Test : TestClass
{
$base.$
}
-}");
- Assert.IsNotNull (provider, "provider == null");
- Assert.IsNull (provider.Find ("PrivField"), "field 'PrivField' found, but shouldn't.");
- Assert.IsNull (provider.Find ("PrivProperty"), "property 'PrivProperty' found, but shouldn't.");
- Assert.IsNull (provider.Find ("PrivMethod"), "method 'PrivMethod' found, but shouldn't.");
-
- }
+}");
+ Assert.IsNotNull (provider, "provider == null");
+ Assert.IsNull (provider.Find ("PrivField"), "field 'PrivField' found, but shouldn't.");
+ Assert.IsNull (provider.Find ("PrivProperty"), "property 'PrivProperty' found, but shouldn't.");
+ Assert.IsNull (provider.Find ("PrivMethod"), "method 'PrivMethod' found, but shouldn't.");
+
+ }
[Test()]
public void TestBaseProtectedMemberAccess ()
- {
- CompletionDataList provider = CodeCompletionBugTests.CreateProvider (
+ {
+ CompletionDataList provider = CodeCompletionBugTests.CreateProvider (
@"
class Test
{
@@ -304,14 +303,14 @@ class Test2 : Test
{
$base.$
}
-}");
- Assert.IsNotNull (provider, "provider == null");
- Assert.IsNotNull (provider.Find ("Test"), "method 'Test' not found.");
- }
+}");
+ Assert.IsNotNull (provider, "provider == null");
+ Assert.IsNotNull (provider.Find ("Test"), "method 'Test' not found.");
+ }
[Test()]
public void TestBasePublicMemberAccess ()
- {
- CompletionDataList provider = CodeCompletionBugTests.CreateProvider (
+ {
+ CompletionDataList provider = CodeCompletionBugTests.CreateProvider (
testClass + @"
class Test : TestClass
{
@@ -319,18 +318,18 @@ class Test : TestClass
{
$base.$
}
-} }");
- Assert.IsNotNull (provider, "provider == null");
- CodeCompletionBugTests.CheckObjectMembers (provider);
- Assert.IsNotNull (provider.Find ("PubField"), "field 'PubField' not found.");
- Assert.IsNotNull (provider.Find ("PubProperty"), "property 'PubProperty' not found.");
- Assert.IsNotNull (provider.Find ("PubMethod"), "method 'PubMethod' not found.");
-
- }
+} }");
+ Assert.IsNotNull (provider, "provider == null");
+ CodeCompletionBugTests.CheckObjectMembers (provider);
+ Assert.IsNotNull (provider.Find ("PubField"), "field 'PubField' not found.");
+ Assert.IsNotNull (provider.Find ("PubProperty"), "property 'PubProperty' not found.");
+ Assert.IsNotNull (provider.Find ("PubMethod"), "method 'PubMethod' not found.");
+
+ }
[Test()]
public void TestProtectedMemberAccess2 ()
- {
- CompletionDataList provider = CodeCompletionBugTests.CreateProvider (
+ {
+ CompletionDataList provider = CodeCompletionBugTests.CreateProvider (
@"
class Test
{
@@ -345,29 +344,29 @@ class Test2
{
$(new Test ()).$
}
-}");
- Assert.IsNotNull (provider, "provider == null");
- Assert.IsNull (provider.Find ("Test"), "method 'Test' found, but shouldn't.");
- }
-
+}");
+ Assert.IsNotNull (provider, "provider == null");
+ Assert.IsNull (provider.Find ("Test"), "method 'Test' found, but shouldn't.");
+ }
+
[Test()]
public void TestGenericParameter ()
- {
- CompletionDataList provider = CodeCompletionBugTests.CreateCtrlSpaceProvider (
+ {
+ CompletionDataList provider = CodeCompletionBugTests.CreateCtrlSpaceProvider (
@"
class Foo<T>
{
$public $
}
-");
- Assert.IsNotNull (provider, "provider == null");
- Assert.IsNotNull (provider.Find ("T"), "generic parameter 'T' not found");
- }
-
+");
+ Assert.IsNotNull (provider, "provider == null");
+ Assert.IsNotNull (provider.Find ("T"), "generic parameter 'T' not found");
+ }
+
[Test()]
public void TestGenericParameterB ()
- {
- CompletionDataList provider = CodeCompletionBugTests.CreateCtrlSpaceProvider (
+ {
+ CompletionDataList provider = CodeCompletionBugTests.CreateCtrlSpaceProvider (
@"
class Foo<T>
{
@@ -376,16 +375,16 @@ class Foo<T>
$
}
}
-");
- Assert.IsNotNull (provider, "provider == null");
- Assert.IsNotNull (provider.Find ("T"), "generic parameter 'T' not found");
- Assert.IsNotNull (provider.Find ("TValue"), "generic parameter 'TValue' found");
- }
-
+");
+ Assert.IsNotNull (provider, "provider == null");
+ Assert.IsNotNull (provider.Find ("T"), "generic parameter 'T' not found");
+ Assert.IsNotNull (provider.Find ("TValue"), "generic parameter 'TValue' found");
+ }
+
[Test()]
public void TestGenericParameterC ()
- {
- CompletionDataList provider = CodeCompletionBugTests.CreateCtrlSpaceProvider (
+ {
+ CompletionDataList provider = CodeCompletionBugTests.CreateCtrlSpaceProvider (
@"
class Foo<T>
{
@@ -394,616 +393,616 @@ class Foo<T>
$
}
}
-");
- Assert.IsNotNull (provider, "provider == null");
- Assert.IsNull (provider.Find ("T"), "generic parameter 'T' found, but shouldn't");
- Assert.IsNotNull (provider.Find ("TValue"), "generic parameter 'TValue' not found");
- }
-
- [Test()]
- public void TestInheritedInnerClasses ()
- {
- CompletionDataList provider = CodeCompletionBugTests.CreateProvider (
-@"
-public class A {
- public class B {
- public void MethodB ()
- {
- }
- }
-}
-public class C : A
-{
- public override void MethodA (B something)
- {
- $something.$
- }
-}");
- Assert.IsNotNull (provider, "provider == null");
- Assert.IsNotNull (provider.Find ("MethodB"), "method 'MethodB' not found");
- }
-
- [Test()]
- public void TestNamespaceAccess ()
- {
- CompletionDataList provider = CodeCompletionBugTests.CreateProvider (
-@"
-namespace Foo.Bar {
- class B
- {
- }
-}
-
-namespace Foo {
- class Test
- {
- void TestMethod ()
- {
- $Bar.$
- }
- }
-}");
- Assert.IsNotNull (provider, "provider == null");
- Assert.IsNotNull (provider.Find ("B"), "class 'B' not found");
- }
-
- [Test()]
- public void TestNamespaceAccess2 ()
- {
- CompletionDataList provider = CodeCompletionBugTests.CreateProvider (
-@"
-namespace Foo.Bar {
- class B
- {
- }
-}
-
-namespace FooBar {
- using Foo;
- class Test
- {
- void TestMethod ()
- {
- $Bar.$
- }
- }
-}");
- Assert.IsNotNull (provider, "provider == null");
- Assert.IsNull (provider.Find ("B"), "class 'B' found, but shouldn't");
- }
-
-
- [Test()]
- public void TestNamespaceAccess3 ()
- {
- CompletionDataList provider = CodeCompletionBugTests.CreateCtrlSpaceProvider (
-@"
-namespace SomeTest.TestNS {
- class TestClass
- {
-
- }
-}
-
-namespace A {
- using SomeTest;
-
- public class Program2
- {
- public void Main ()
- {
- $$
- }
- }
-}
-");
- Assert.IsNotNull (provider, "provider == null");
- Assert.IsNull (provider.Find ("TestNS"), "namespace 'TestNS' found, but shouldn't");
- }
-
- [Test()]
- public void TestNamespaceAccess4 ()
- {
- CompletionDataList provider = CodeCompletionBugTests.CreateCtrlSpaceProvider (
-@"
-namespace SomeTest.TestNS {
- class TestClass
- {
-
- }
-}
-
-namespace SomeTest {
-
- public class Program2
- {
- public void Main ()
- {
- $$
- }
- }
-}
-");
- Assert.IsNotNull (provider, "provider == null");
- Assert.IsNotNull (provider.Find ("TestNS"), "namespace 'TestNS' not found");
- }
-
- [Test()]
- public void TestHideClassesWithPrivateConstructor ()
- {
- CompletionDataList provider = CodeCompletionBugTests.CreateProvider (
-@"
-class A
-{
-}
-
-class TestClass : A
-{
- TestClass ()
- {
- }
-
- void TestMe ()
- {
- $A a = new $
- }
-}
-");
- Assert.IsNotNull (provider, "provider == null");
- Assert.IsNotNull (provider.Find ("A"), "class 'A' not found");
- Assert.IsNull (provider.Find ("TestClass"), "class 'TestClass' found, but shouldn't.");
- }
-
- [Test()]
- public void TestAttributePropertyAccess ()
- {
- CompletionDataList provider = CodeCompletionBugTests.CreateProvider (
-@"
-public class TestAttribute : System.Attribute
-{
- public int MyIntProperty {
- get;
- set;
- }
-
- public string MyStringProperty {
- get;
- set;
- }
-}
-
-[Test($M$)]
-public class Program
-{
-
-}
-");
- Assert.IsNotNull (provider, "provider == null");
- Assert.IsNotNull (provider.Find ("MyIntProperty"), "property 'MyIntProperty' not found");
- Assert.IsNotNull (provider.Find ("MyStringProperty"), "property 'MyStringProperty' not found");
- }
-
- [Test()]
- public void TestInnerClassEnumAccess ()
- {
- CompletionDataList provider = CodeCompletionBugTests.CreateProvider (
-@"
-public class TestInnerEnum
-{
- enum InnerEnum { A, B, C }
-
- public class InnerClass
- {
- void TestMethod (InnerEnum e)
- {
- $e = InnerEnum.$
- }
- }
-}");
- Assert.IsNotNull (provider, "provider == null");
- Assert.IsNotNull (provider.Find ("A"), "field 'A' not found");
- Assert.IsNotNull (provider.Find ("B"), "field 'B' not found");
- Assert.IsNotNull (provider.Find ("C"), "field 'C' not found");
- }
-
- [Test()]
- public void TestInnerClassPrivateOuterMembersAccess ()
- {
- CompletionDataList provider = CodeCompletionBugTests.CreateProvider (
-@"
-public class TestClass
-{
- void TestMethod ()
- {
- }
-
- public class InnerClass
- {
- void TestMethod ()
- {
- TestClass tc = new TestClass ();
- $tc.$
- }
- }
-}");
- Assert.IsNotNull (provider, "provider == null");
- Assert.IsNotNull (provider.Find ("TestMethod"), "method 'TestMethod' not found");
- }
-
- [Test()]
- public void TestExplicitGenericMethodParameter ()
- {
- CompletionDataList provider = CodeCompletionBugTests.CreateProvider (
-@"
-public class TestClass
-{
- public static T TestMethod<T> ()
- {
- return default(T);
- }
-}
-
-public class Test
-{
- public void TestMethod ()
- {
- $TestClass.TestMethod<Test> ().$
- }
-}
-");
- Assert.IsNotNull (provider, "provider == null");
- Assert.IsNotNull (provider.Find ("TestMethod"), "method 'TestMethod' not found");
- }
-
- [Test()]
- public void TestImplicitGenericMethodParameter ()
- {
- CompletionDataList provider = CodeCompletionBugTests.CreateProvider (
-@"
-public class TestClass
-{
- public static T TestMethod<T> (T t)
- {
- return t;
- }
-}
-
-public class Test
-{
- public void TestMethod ()
- {
- $TestClass.TestMethod (this).$
- }
-}
- ");
- Assert.IsNotNull (provider, "provider == null");
- Assert.IsNotNull (provider.Find ("TestMethod"), "method 'TestMethod' not found");
- }
-
- [Test()]
- public void TestImplicitGenericMethodParameterComplex ()
- {
- CompletionDataList provider = CodeCompletionBugTests.CreateProvider (
-@"
-using System;
-
-class SomeTemplate<T>
-{
- public T Val { get; set; }
- public SomeTemplate (T val)
- {
- this.Val = val;
- }
-}
-
-class Test
-{
- public T GetVal<T> (SomeTemplate<T> t)
- {
- return t.Val;
- }
-
- public void TestMethod ()
- {
- SomeTemplate<Test> c = SomeTemplate<Test> (this);
- var x = GetVal (c);
- $x.$
-
- }
-}");
- Assert.IsNotNull (provider, "provider == null");
- Assert.IsNotNull (provider.Find ("TestMethod"), "method 'TestMethod' not found");
- }
-
- [Test()]
- public void TestImplicitGenericArrayMethodParameter ()
- {
- CompletionDataList provider = CodeCompletionBugTests.CreateProvider (
-@"
-public class TestClass
-{
- public static T[] Test<T> ()
- {
- return default(T[]);
- }
-}
-
-public class Test
-{
- public void TestMethod ()
- {
- var v = TestClass.Test<Test>();
- $v[0].$
- }
-}
-");
- Assert.IsNotNull (provider, "provider == null");
- Assert.IsNotNull (provider.Find ("TestMethod"), "method 'TestMethod' not found");
- }
-
- [Test()]
- public void TestExplicitResolving ()
- {
- CompletionDataList provider = CodeCompletionBugTests.CreateProvider (
-@"
-interface IMyInterface {
- object this [object i] { get; }
-}
-
-class MyClass<S, T> : IMyInterface
-{
- object IMyInterface.this[object i] {
- get {
- return null;
- }
- }
-
- public S this[T i] {
- get {
- return default(S);
- }
- }
-}
-
-class TestClass
-{
- void TestMethod ()
- {
- MyClass<TestClass, string> myClass = new MyClass<TestClass, string> ();
- $myClass[""test""].$
- }
-}
-");
- Assert.IsNotNull (provider, "provider == null");
- Assert.IsNotNull (provider.Find ("TestMethod"), "method 'TestMethod' not found");
- }
-
- [Test()]
- public void TestAlias ()
-
- {
- CompletionDataList provider = CodeCompletionBugTests.CreateProvider (
-@"
-namespace A
-{
- public class MyClass
- {
- public void MyMethod ()
- {
- }
- }
-}
-
-namespace X
-{
- using GG = A.MyClass;
-
- public abstract class I
- {
- protected virtual GG Foo ()
- {
- return null;
- }
- }
-}
-
-namespace X
-{
- public class B : I
- {
- public void A ()
- {
- $Foo ().$
- }
- }
-}");
- Assert.IsNotNull (provider, "provider == null");
- Assert.IsNotNull (provider.Find ("MyMethod"), "method 'MyMethod' not found");
- }
-
- [Test()]
- public void TestEnumInnerClass ()
- {
- CompletionDataList provider = CodeCompletionBugTests.CreateProvider (
-@"
-using System;
-namespace CaptainHook.Mail
-{
- public class TestClass
- {
- enum ParsingState
- {
- Any,
- Start,
- InMacro,
- InMacroArgumentList,
- InQuotedMacroArgument,
- PlainText
- }
-
- ParsingState state;
-
- public TestClass ()
- {
- $state = $
- }
- }
-}");
- Assert.IsNotNull (provider, "provider == null");
- Assert.IsNull (provider.Find ("CaptainHook.Mail.TestClass.ParsingState"), "class 'CaptainHook.Mail.TestClass.ParsingState' found!");
- Assert.IsNull (provider.Find ("TestClass.ParsingState"), "class 'TestClass.ParsingState' found!");
- Assert.IsNotNull (provider.Find ("ParsingState"), "class 'ParsingState' not found");
- }
-
- [Test()]
- public void TestInheritableTypeContext ()
- {
- CompletionDataList provider = CodeCompletionBugTests.CreateProvider (
-@"
-class Test
-{
- public class Inner {}
- public static void Foo () {}
-}
-
-$class Test2 : Test.$
-");
- Assert.IsNotNull (provider, "provider == null");
- Assert.IsNotNull (provider.Find ("Inner"), "class 'Inner' not found.");
- Assert.IsNull (provider.Find ("Foo"), "method 'Foo' found.");
- }
-
- [Test()]
- public void TestInheritableTypeWhereContext ()
- {
- CompletionDataList provider = CodeCompletionBugTests.CreateProvider (
-@"
-class Test
-{
- public class Inner {}
- public static void Foo () {}
-}
-
-$class Test2<T> where T : Test.$
-");
- Assert.IsNotNull (provider, "provider == null");
- Assert.IsNotNull (provider.Find ("Inner"), "class 'Inner' not found.");
- Assert.IsNull (provider.Find ("Foo"), "method 'Foo' found.");
- }
-
- [Test()]
- public void TestEnumAssignment ()
- {
- CompletionDataList provider = CodeCompletionBugTests.CreateCtrlSpaceProvider (
-@"
-public enum TestEnum { A, B, C}
-
-class TestClass
-{
- public void Foo ()
- {
- $TestEnum test = $
- }
-}");
- Assert.IsNotNull (provider, "provider not found.");
- Assert.IsNotNull (provider.Find ("TestEnum"), "enum 'TestEnum' not found.");
- Assert.IsNotNull (provider.Find ("TestEnum.A"), "enum 'TestEnum.A' not found.");
- Assert.IsNotNull (provider.Find ("TestEnum.B"), "enum 'TestEnum.B' not found.");
- Assert.IsNotNull (provider.Find ("TestEnum.C"), "enum 'TestEnum.C' not found.");
- }
-
- [Test()]
- public void TestEnumAssignmentCase2 ()
- {
- CompletionDataList provider = CodeCompletionBugTests.CreateCtrlSpaceProvider (
-@"
-public enum TestEnum { A, B, C}
-
-class TestClass
-{
- public void Foo ()
- {
- TestEnum test;
- $test = $
- }
-}");
- Assert.IsNotNull (provider, "provider not found.");
- Assert.IsNotNull (provider.Find ("TestEnum"), "enum 'TestEnum' not found.");
- Assert.IsNotNull (provider.Find ("TestEnum.A"), "enum 'TestEnum.A' not found.");
- Assert.IsNotNull (provider.Find ("TestEnum.B"), "enum 'TestEnum.B' not found.");
- Assert.IsNotNull (provider.Find ("TestEnum.C"), "enum 'TestEnum.C' not found.");
- }
-
- [Test()]
- public void TestEnumAsParameter ()
- {
- CompletionDataList provider = CodeCompletionBugTests.CreateCtrlSpaceProvider (
-@"
-public enum TestEnum { A, B, C}
-
-class TestClass
-{
- void Bar (TestEnum test) {}
- public void Foo ()
- {
- $Bar ($
- }
-}");
- Assert.IsNotNull (provider, "provider not found.");
- Assert.IsNotNull (provider.Find ("TestEnum"), "enum 'TestEnum' not found.");
- Assert.IsNotNull (provider.Find ("TestEnum.A"), "enum 'TestEnum.A' not found.");
- Assert.IsNotNull (provider.Find ("TestEnum.B"), "enum 'TestEnum.B' not found.");
- Assert.IsNotNull (provider.Find ("TestEnum.C"), "enum 'TestEnum.C' not found.");
- }
-
- [Test()]
- public void TestEnumAsParameterCase2 ()
- {
- CompletionDataList provider = CodeCompletionBugTests.CreateCtrlSpaceProvider (
-@"
-public enum TestEnum { A, B, C}
-
-class TestClass
-{
- void Bar (int a, TestEnum test) {}
- public void Foo ()
- {
- $Bar (5, $
- }
-}");
- Assert.IsNotNull (provider, "provider not found.");
- Assert.IsNotNull (provider.Find ("TestEnum"), "enum 'TestEnum' not found.");
- Assert.IsNotNull (provider.Find ("TestEnum.A"), "enum 'TestEnum.A' not found.");
- Assert.IsNotNull (provider.Find ("TestEnum.B"), "enum 'TestEnum.B' not found.");
- Assert.IsNotNull (provider.Find ("TestEnum.C"), "enum 'TestEnum.C' not found.");
- }
-
- [Test()]
- public void TestInnerEnums ()
- {
- CompletionDataList provider = CodeCompletionBugTests.CreateCtrlSpaceProvider (
-@"
-public class InnerEnumTest
-{
- public enum TestEnum { A, B, C}
- void Bar (TestEnum test) {}
-}
-
-class TestClass
-{
- public void Foo ()
- {
- InnerEnumTest test;
- $test.Bar ($
- }
-}");
- Assert.IsNotNull (provider, "provider not found.");
- Assert.IsNotNull (provider.Find ("InnerEnumTest.TestEnum"), "enum 'InnerEnumTest.TestEnum' not found.");
- Assert.IsNotNull (provider.Find ("InnerEnumTest.TestEnum.A"), "enum 'InnerEnumTest.TestEnum.A' not found.");
- Assert.IsNotNull (provider.Find ("InnerEnumTest.TestEnum.B"), "enum 'InnerEnumTest.TestEnum.B' not found.");
- Assert.IsNotNull (provider.Find ("InnerEnumTest.TestEnum.C"), "enum 'InnerEnumTest.TestEnum.C' not found.");
- }
-
-
- }
+");
+ Assert.IsNotNull (provider, "provider == null");
+ Assert.IsNull (provider.Find ("T"), "generic parameter 'T' found, but shouldn't");
+ Assert.IsNotNull (provider.Find ("TValue"), "generic parameter 'TValue' not found");
+ }
+
+ [Test()]
+ public void TestInheritedInnerClasses ()
+ {
+ CompletionDataList provider = CodeCompletionBugTests.CreateProvider (
+@"
+public class A {
+ public class B {
+ public void MethodB ()
+ {
+ }
+ }
+}
+public class C : A
+{
+ public override void MethodA (B something)
+ {
+ $something.$
+ }
+}");
+ Assert.IsNotNull (provider, "provider == null");
+ Assert.IsNotNull (provider.Find ("MethodB"), "method 'MethodB' not found");
+ }
+
+ [Test()]
+ public void TestNamespaceAccess ()
+ {
+ CompletionDataList provider = CodeCompletionBugTests.CreateProvider (
+@"
+namespace Foo.Bar {
+ class B
+ {
+ }
+}
+
+namespace Foo {
+ class Test
+ {
+ void TestMethod ()
+ {
+ $Bar.$
+ }
+ }
+}");
+ Assert.IsNotNull (provider, "provider == null");
+ Assert.IsNotNull (provider.Find ("B"), "class 'B' not found");
+ }
+
+ [Test()]
+ public void TestNamespaceAccess2 ()
+ {
+ CompletionDataList provider = CodeCompletionBugTests.CreateProvider (
+@"
+namespace Foo.Bar {
+ class B
+ {
+ }
+}
+
+namespace FooBar {
+ using Foo;
+ class Test
+ {
+ void TestMethod ()
+ {
+ $Bar.$
+ }
+ }
+}");
+ Assert.IsNotNull (provider, "provider == null");
+ Assert.IsNull (provider.Find ("B"), "class 'B' found, but shouldn't");
+ }
+
+
+ [Test()]
+ public void TestNamespaceAccess3 ()
+ {
+ CompletionDataList provider = CodeCompletionBugTests.CreateCtrlSpaceProvider (
+@"
+namespace SomeTest.TestNS {
+ class TestClass
+ {
+
+ }
+}
+
+namespace A {
+ using SomeTest;
+
+ public class Program2
+ {
+ public void Main ()
+ {
+ $$
+ }
+ }
+}
+");
+ Assert.IsNotNull (provider, "provider == null");
+ Assert.IsNull (provider.Find ("TestNS"), "namespace 'TestNS' found, but shouldn't");
+ }
+
+ [Test()]
+ public void TestNamespaceAccess4 ()
+ {
+ CompletionDataList provider = CodeCompletionBugTests.CreateCtrlSpaceProvider (
+@"
+namespace SomeTest.TestNS {
+ class TestClass
+ {
+
+ }
+}
+
+namespace SomeTest {
+
+ public class Program2
+ {
+ public void Main ()
+ {
+ $$
+ }
+ }
+}
+");
+ Assert.IsNotNull (provider, "provider == null");
+ Assert.IsNotNull (provider.Find ("TestNS"), "namespace 'TestNS' not found");
+ }
+
+ [Test()]
+ public void TestHideClassesWithPrivateConstructor ()
+ {
+ CompletionDataList provider = CodeCompletionBugTests.CreateProvider (
+@"
+class A
+{
+}
+
+class TestClass : A
+{
+ TestClass ()
+ {
+ }
+
+ void TestMe ()
+ {
+ $A a = new $
+ }
+}
+");
+ Assert.IsNotNull (provider, "provider == null");
+ Assert.IsNotNull (provider.Find ("A"), "class 'A' not found");
+ Assert.IsNull (provider.Find ("TestClass"), "class 'TestClass' found, but shouldn't.");
+ }
+
+ [Test()]
+ public void TestAttributePropertyAccess ()
+ {
+ CompletionDataList provider = CodeCompletionBugTests.CreateProvider (
+@"
+public class TestAttribute : System.Attribute
+{
+ public int MyIntProperty {
+ get;
+ set;
+ }
+
+ public string MyStringProperty {
+ get;
+ set;
+ }
+}
+
+[Test($M$)]
+public class Program
+{
+
+}
+");
+ Assert.IsNotNull (provider, "provider == null");
+ Assert.IsNotNull (provider.Find ("MyIntProperty"), "property 'MyIntProperty' not found");
+ Assert.IsNotNull (provider.Find ("MyStringProperty"), "property 'MyStringProperty' not found");
+ }
+
+ [Test()]
+ public void TestInnerClassEnumAccess ()
+ {
+ CompletionDataList provider = CodeCompletionBugTests.CreateProvider (
+@"
+public class TestInnerEnum
+{
+ enum InnerEnum { A, B, C }
+
+ public class InnerClass
+ {
+ void TestMethod (InnerEnum e)
+ {
+ $e = InnerEnum.$
+ }
+ }
+}");
+ Assert.IsNotNull (provider, "provider == null");
+ Assert.IsNotNull (provider.Find ("A"), "field 'A' not found");
+ Assert.IsNotNull (provider.Find ("B"), "field 'B' not found");
+ Assert.IsNotNull (provider.Find ("C"), "field 'C' not found");
+ }
+
+ [Test()]
+ public void TestInnerClassPrivateOuterMembersAccess ()
+ {
+ CompletionDataList provider = CodeCompletionBugTests.CreateProvider (
+@"
+public class TestClass
+{
+ void TestMethod ()
+ {
+ }
+
+ public class InnerClass
+ {
+ void TestMethod ()
+ {
+ TestClass tc = new TestClass ();
+ $tc.$
+ }
+ }
+}");
+ Assert.IsNotNull (provider, "provider == null");
+ Assert.IsNotNull (provider.Find ("TestMethod"), "method 'TestMethod' not found");
+ }
+
+ [Test()]
+ public void TestExplicitGenericMethodParameter ()
+ {
+ CompletionDataList provider = CodeCompletionBugTests.CreateProvider (
+@"
+public class TestClass
+{
+ public static T TestMethod<T> ()
+ {
+ return default(T);
+ }
+}
+
+public class Test
+{
+ public void TestMethod ()
+ {
+ $TestClass.TestMethod<Test> ().$
+ }
+}
+");
+ Assert.IsNotNull (provider, "provider == null");
+ Assert.IsNotNull (provider.Find ("TestMethod"), "method 'TestMethod' not found");
+ }
+
+ [Test()]
+ public void TestImplicitGenericMethodParameter ()
+ {
+ CompletionDataList provider = CodeCompletionBugTests.CreateProvider (
+@"
+public class TestClass
+{
+ public static T TestMethod<T> (T t)
+ {
+ return t;
+ }
+}
+
+public class Test
+{
+ public void TestMethod ()
+ {
+ $TestClass.TestMethod (this).$
+ }
+}
+ ");
+ Assert.IsNotNull (provider, "provider == null");
+ Assert.IsNotNull (provider.Find ("TestMethod"), "method 'TestMethod' not found");
+ }
+
+ [Test()]
+ public void TestImplicitGenericMethodParameterComplex ()
+ {
+ CompletionDataList provider = CodeCompletionBugTests.CreateProvider (
+@"
+using System;
+
+class SomeTemplate<T>
+{
+ public T Val { get; set; }
+ public SomeTemplate (T val)
+ {
+ this.Val = val;
+ }
+}
+
+class Test
+{
+ public T GetVal<T> (SomeTemplate<T> t)
+ {
+ return t.Val;
+ }
+
+ public void TestMethod ()
+ {
+ SomeTemplate<Test> c = SomeTemplate<Test> (this);
+ var x = GetVal (c);
+ $x.$
+
+ }
+}");
+ Assert.IsNotNull (provider, "provider == null");
+ Assert.IsNotNull (provider.Find ("TestMethod"), "method 'TestMethod' not found");
+ }
+
+ [Test()]
+ public void TestImplicitGenericArrayMethodParameter ()
+ {
+ CompletionDataList provider = CodeCompletionBugTests.CreateProvider (
+@"
+public class TestClass
+{
+ public static T[] Test<T> ()
+ {
+ return default(T[]);
+ }
+}
+
+public class Test
+{
+ public void TestMethod ()
+ {
+ var v = TestClass.Test<Test>();
+ $v[0].$
+ }
+}
+");
+ Assert.IsNotNull (provider, "provider == null");
+ Assert.IsNotNull (provider.Find ("TestMethod"), "method 'TestMethod' not found");
+ }
+
+ [Test()]
+ public void TestExplicitResolving ()
+ {
+ CompletionDataList provider = CodeCompletionBugTests.CreateProvider (
+@"
+interface IMyInterface {
+ object this [object i] { get; }
+}
+
+class MyClass<S, T> : IMyInterface
+{
+ object IMyInterface.this[object i] {
+ get {
+ return null;
+ }
+ }
+
+ public S this[T i] {
+ get {
+ return default(S);
+ }
+ }
+}
+
+class TestClass
+{
+ void TestMethod ()
+ {
+ MyClass<TestClass, string> myClass = new MyClass<TestClass, string> ();
+ $myClass[""test""].$
+ }
+}
+");
+ Assert.IsNotNull (provider, "provider == null");
+ Assert.IsNotNull (provider.Find ("TestMethod"), "method 'TestMethod' not found");
+ }
+
+ [Test()]
+ public void TestAlias ()
+
+ {
+ CompletionDataList provider = CodeCompletionBugTests.CreateProvider (
+@"
+namespace A
+{
+ public class MyClass
+ {
+ public void MyMethod ()
+ {
+ }
+ }
+}
+
+namespace X
+{
+ using GG = A.MyClass;
+
+ public abstract class I
+ {
+ protected virtual GG Foo ()
+ {
+ return null;
+ }
+ }
+}
+
+namespace X
+{
+ public class B : I
+ {
+ public void A ()
+ {
+ $Foo ().$
+ }
+ }
+}");
+ Assert.IsNotNull (provider, "provider == null");
+ Assert.IsNotNull (provider.Find ("MyMethod"), "method 'MyMethod' not found");
+ }
+
+ [Test()]
+ public void TestEnumInnerClass ()
+ {
+ CompletionDataList provider = CodeCompletionBugTests.CreateProvider (
+@"
+using System;
+namespace CaptainHook.Mail
+{
+ public class TestClass
+ {
+ enum ParsingState
+ {
+ Any,
+ Start,
+ InMacro,
+ InMacroArgumentList,
+ InQuotedMacroArgument,
+ PlainText
+ }
+
+ ParsingState state;
+
+ public TestClass ()
+ {
+ $state = $
+ }
+ }
+}");
+ Assert.IsNotNull (provider, "provider == null");
+ Assert.IsNull (provider.Find ("CaptainHook.Mail.TestClass.ParsingState"), "class 'CaptainHook.Mail.TestClass.ParsingState' found!");
+ Assert.IsNull (provider.Find ("TestClass.ParsingState"), "class 'TestClass.ParsingState' found!");
+ Assert.IsNotNull (provider.Find ("ParsingState"), "class 'ParsingState' not found");
+ }
+
+ [Test()]
+ public void TestInheritableTypeContext ()
+ {
+ CompletionDataList provider = CodeCompletionBugTests.CreateProvider (
+@"
+class Test
+{
+ public class Inner {}
+ public static void Foo () {}
+}
+
+$class Test2 : Test.$
+");
+ Assert.IsNotNull (provider, "provider == null");
+ Assert.IsNotNull (provider.Find ("Inner"), "class 'Inner' not found.");
+ Assert.IsNull (provider.Find ("Foo"), "method 'Foo' found.");
+ }
+
+ [Test()]
+ public void TestInheritableTypeWhereContext ()
+ {
+ CompletionDataList provider = CodeCompletionBugTests.CreateProvider (
+@"
+class Test
+{
+ public class Inner {}
+ public static void Foo () {}
+}
+
+$class Test2<T> where T : Test.$
+");
+ Assert.IsNotNull (provider, "provider == null");
+ Assert.IsNotNull (provider.Find ("Inner"), "class 'Inner' not found.");
+ Assert.IsNull (provider.Find ("Foo"), "method 'Foo' found.");
+ }
+
+ [Test()]
+ public void TestEnumAssignment ()
+ {
+ CompletionDataList provider = CodeCompletionBugTests.CreateCtrlSpaceProvider (
+@"
+public enum TestEnum { A, B, C}
+
+class TestClass
+{
+ public void Foo ()
+ {
+ $TestEnum test = $
+ }
+}");
+ Assert.IsNotNull (provider, "provider not found.");
+ Assert.IsNotNull (provider.Find ("TestEnum"), "enum 'TestEnum' not found.");
+ Assert.IsNotNull (provider.Find ("TestEnum.A"), "enum 'TestEnum.A' not found.");
+ Assert.IsNotNull (provider.Find ("TestEnum.B"), "enum 'TestEnum.B' not found.");
+ Assert.IsNotNull (provider.Find ("TestEnum.C"), "enum 'TestEnum.C' not found.");
+ }
+
+ [Test()]
+ public void TestEnumAssignmentCase2 ()
+ {
+ CompletionDataList provider = CodeCompletionBugTests.CreateCtrlSpaceProvider (
+@"
+public enum TestEnum { A, B, C}
+
+class TestClass
+{
+ public void Foo ()
+ {
+ TestEnum test;
+ $test = $
+ }
+}");
+ Assert.IsNotNull (provider, "provider not found.");
+ Assert.IsNotNull (provider.Find ("TestEnum"), "enum 'TestEnum' not found.");
+ Assert.IsNotNull (provider.Find ("TestEnum.A"), "enum 'TestEnum.A' not found.");
+ Assert.IsNotNull (provider.Find ("TestEnum.B"), "enum 'TestEnum.B' not found.");
+ Assert.IsNotNull (provider.Find ("TestEnum.C"), "enum 'TestEnum.C' not found.");
+ }
+
+ [Test()]
+ public void TestEnumAsParameter ()
+ {
+ CompletionDataList provider = CodeCompletionBugTests.CreateCtrlSpaceProvider (
+@"
+public enum TestEnum { A, B, C}
+
+class TestClass
+{
+ void Bar (TestEnum test) {}
+ public void Foo ()
+ {
+ $Bar ($
+ }
+}");
+ Assert.IsNotNull (provider, "provider not found.");
+ Assert.IsNotNull (provider.Find ("TestEnum"), "enum 'TestEnum' not found.");
+ Assert.IsNotNull (provider.Find ("TestEnum.A"), "enum 'TestEnum.A' not found.");
+ Assert.IsNotNull (provider.Find ("TestEnum.B"), "enum 'TestEnum.B' not found.");
+ Assert.IsNotNull (provider.Find ("TestEnum.C"), "enum 'TestEnum.C' not found.");
+ }
+
+ [Test()]
+ public void TestEnumAsParameterCase2 ()
+ {
+ CompletionDataList provider = CodeCompletionBugTests.CreateCtrlSpaceProvider (
+@"
+public enum TestEnum { A, B, C}
+
+class TestClass
+{
+ void Bar (int a, TestEnum test) {}
+ public void Foo ()
+ {
+ $Bar (5, $
+ }
+}");
+ Assert.IsNotNull (provider, "provider not found.");
+ Assert.IsNotNull (provider.Find ("TestEnum"), "enum 'TestEnum' not found.");
+ Assert.IsNotNull (provider.Find ("TestEnum.A"), "enum 'TestEnum.A' not found.");
+ Assert.IsNotNull (provider.Find ("TestEnum.B"), "enum 'TestEnum.B' not found.");
+ Assert.IsNotNull (provider.Find ("TestEnum.C"), "enum 'TestEnum.C' not found.");
+ }
+
+ [Test()]
+ public void TestInnerEnums ()
+ {
+ CompletionDataList provider = CodeCompletionBugTests.CreateCtrlSpaceProvider (
+@"
+public class InnerEnumTest
+{
+ public enum TestEnum { A, B, C}
+ void Bar (TestEnum test) {}
+}
+
+class TestClass
+{
+ public void Foo ()
+ {
+ InnerEnumTest test;
+ $test.Bar ($
+ }
+}");
+ Assert.IsNotNull (provider, "provider not found.");
+ Assert.IsNotNull (provider.Find ("InnerEnumTest.TestEnum"), "enum 'InnerEnumTest.TestEnum' not found.");
+ Assert.IsNotNull (provider.Find ("InnerEnumTest.TestEnum.A"), "enum 'InnerEnumTest.TestEnum.A' not found.");
+ Assert.IsNotNull (provider.Find ("InnerEnumTest.TestEnum.B"), "enum 'InnerEnumTest.TestEnum.B' not found.");
+ Assert.IsNotNull (provider.Find ("InnerEnumTest.TestEnum.C"), "enum 'InnerEnumTest.TestEnum.C' not found.");
+ }
+
+
+ }
} \ No newline at end of file
diff --git a/main/tests/UnitTests/MonoDevelop.CSharpBinding/CodeCompletionBugTests.cs b/main/tests/UnitTests/MonoDevelop.CSharpBinding/CodeCompletionBugTests.cs
index 067bd2438f..766ee37333 100644
--- a/main/tests/UnitTests/MonoDevelop.CSharpBinding/CodeCompletionBugTests.cs
+++ b/main/tests/UnitTests/MonoDevelop.CSharpBinding/CodeCompletionBugTests.cs
@@ -1,4 +1,4 @@
-//
+//
// CodeCompletionBugTests.cs
//
// Author:
@@ -27,231 +27,231 @@
//
using System;
-using NUnit.Framework;
-using MonoDevelop.Ide.Gui;
+using NUnit.Framework;
+using MonoDevelop.Ide.Gui;
using MonoDevelop.Projects;
using MonoDevelop.Core;
-using MonoDevelop.Ide.CodeCompletion;
-using MonoDevelop.Ide.Gui.Content;
-using MonoDevelop.Projects.Dom.Parser;
-using MonoDevelop.CSharp.Parser;
-using MonoDevelop.CSharp.Resolver;
-using MonoDevelop.CSharp.Completion;
+using MonoDevelop.Ide.CodeCompletion;
+using MonoDevelop.Ide.Gui.Content;
+using MonoDevelop.CSharp.Parser;
+using MonoDevelop.CSharp.Resolver;
+using MonoDevelop.CSharp.Completion;
+using MonoDevelop.TypeSystem;
namespace MonoDevelop.CSharpBinding.Tests
{
[TestFixture()]
public class CodeCompletionBugTests : UnitTests.TestBase
- {
- static int pcount = 0;
-
- public static CompletionDataList CreateProvider (string text)
- {
- return CreateProvider (text, false);
- }
-
- public static CompletionDataList CreateCtrlSpaceProvider (string text)
- {
- return CreateProvider (text, true);
- }
-
- class TestCompletionWidget : ICompletionWidget
- {
- Mono.TextEditor.TextEditorData data;
-
- public TestCompletionWidget (Mono.TextEditor.TextEditorData data)
- {
- this.data = data;
- }
-
- #region ICompletionWidget implementation
- public event EventHandler CompletionContextChanged;
-
- public string GetText (int startOffset, int endOffset)
- {
- return data.GetTextBetween (startOffset, endOffset);
- }
-
- public char GetChar (int offset)
- {
- return data.GetCharAt (offset);
- }
-
- public void Replace (int offset, int count, string text)
- {
- data.Replace (offset, count, text);
- }
-
- public CodeCompletionContext CreateCodeCompletionContext (int triggerOffset)
- {
- CodeCompletionContext result = new CodeCompletionContext ();
- result.TriggerOffset = triggerOffset;
- var loc = data.OffsetToLocation (triggerOffset);
- result.TriggerLine = loc.Line;
- result.TriggerLineOffset = loc.Column - 1;
- return result;
- }
-
- public string GetCompletionText (CodeCompletionContext ctx)
- {
- if (ctx == null)
- return null;
- int min = Math.Min (ctx.TriggerOffset, data.Caret.Offset);
- int max = Math.Max (ctx.TriggerOffset, data.Caret.Offset);
- return data.GetTextBetween (min, max);
- }
-
- public void SetCompletionText (CodeCompletionContext ctx, string partial_word, string complete_word)
- {
- }
-
- void ICompletionWidget.SetCompletionText (CodeCompletionContext ctx, string partial_word, string complete_word, int completeWordOffset)
- {
- }
-
- public CodeCompletionContext CurrentCodeCompletionContext {
- get;
- set;
- }
-
- public int TextLength {
- get;
- set;
- }
-
- public int SelectedLength {
- get;
- set;
- }
-
- public Gtk.Style GtkStyle {
- get;
- set;
- }
- #endregion
-
- }
- static CompletionDataList CreateProvider (string text, bool isCtrlSpace)
- {
- string parsedText;
- string editorText;
- int cursorPosition = text.IndexOf ('$');
- int endPos = text.IndexOf ('$', cursorPosition + 1);
- if (endPos == -1) {
- parsedText = editorText = text.Substring (0, cursorPosition) + text.Substring (cursorPosition + 1);
- } else {
- parsedText = text.Substring (0, cursorPosition) + new string (' ', endPos - cursorPosition) + text.Substring (endPos + 1);
- editorText = text.Substring (0, cursorPosition) + text.Substring (cursorPosition + 1, endPos - cursorPosition - 1) + text.Substring (endPos + 1);
- cursorPosition = endPos - 1;
- }
-
- TestWorkbenchWindow tww = new TestWorkbenchWindow ();
- TestViewContent sev = new TestViewContent ();
- DotNetProject project = new DotNetAssemblyProject ("C#");
- project.FileName = GetTempFile (".csproj");
-
- string file = GetTempFile (".cs");
- project.AddFile (file);
-
- ProjectDomService.Load (project);
- ProjectDom dom = ProjectDomService.GetProjectDom (project);
- dom.ForceUpdate (true);
- ProjectDomService.Parse (project, file, delegate { return parsedText; });
- ProjectDomService.Parse (project, file, delegate { return parsedText; });
-
- sev.Project = project;
- sev.ContentName = file;
- sev.Text = editorText;
- sev.CursorPosition = cursorPosition;
- tww.ViewContent = sev;
- Document doc = new Document (tww);
- doc.ParsedDocument = new McsParser ().Parse (null, sev.ContentName, parsedText);
- foreach (var e in doc.ParsedDocument.Errors)
- Console.WriteLine (e);
- CSharpTextEditorCompletion textEditorCompletion = new CSharpTextEditorCompletion (doc);
- int triggerWordLength = 1;
- CodeCompletionContext ctx = new CodeCompletionContext ();
- textEditorCompletion.CompletionWidget = new TestCompletionWidget (doc.Editor) {
- CurrentCodeCompletionContext = ctx
- };
- ctx.TriggerOffset = sev.CursorPosition;
- int line, column;
- sev.GetLineColumnFromPosition (sev.CursorPosition, out line, out column);
- ctx.TriggerLine = line;
- ctx.TriggerLineOffset = column - 1;
- if (isCtrlSpace)
- return textEditorCompletion.CodeCompletionCommand (ctx) as CompletionDataList;
- return textEditorCompletion.HandleCodeCompletion (ctx, editorText[cursorPosition - 1] , ref triggerWordLength) as CompletionDataList;
- }
-
- public static void CheckObjectMembers (CompletionDataList provider)
- {
- Assert.IsNotNull (provider.Find ("Equals"), "Method 'System.Object.Equals' not found.");
- Assert.IsNotNull (provider.Find ("GetHashCode"), "Method 'System.Object.GetHashCode' not found.");
- Assert.IsNotNull (provider.Find ("GetType"), "Method 'System.Object.GetType' not found.");
- Assert.IsNotNull (provider.Find ("ToString"), "Method 'System.Object.ToString' not found.");
- }
-
- public static void CheckProtectedObjectMembers (CompletionDataList provider)
- {
- CheckObjectMembers (provider);
- Assert.IsNotNull (provider.Find ("MemberwiseClone"), "Method 'System.Object.MemberwiseClone' not found.");
- }
-
- public static void CheckStaticObjectMembers (CompletionDataList provider)
- {
- Assert.IsNotNull (provider.Find ("Equals"), "Method 'System.Object.Equals' not found.");
- Assert.IsNotNull (provider.Find ("ReferenceEquals"), "Method 'System.Object.ReferenceEquals' not found.");
- }
+ {
+ static int pcount = 0;
+
+ public static CompletionDataList CreateProvider (string text)
+ {
+ return CreateProvider (text, false);
+ }
+
+ public static CompletionDataList CreateCtrlSpaceProvider (string text)
+ {
+ return CreateProvider (text, true);
+ }
+
+ class TestCompletionWidget : ICompletionWidget
+ {
+ Mono.TextEditor.TextEditorData data;
+
+ public TestCompletionWidget (Mono.TextEditor.TextEditorData data)
+ {
+ this.data = data;
+ }
+
+ #region ICompletionWidget implementation
+ public event EventHandler CompletionContextChanged;
+
+ public string GetText (int startOffset, int endOffset)
+ {
+ return data.GetTextBetween (startOffset, endOffset);
+ }
+
+ public char GetChar (int offset)
+ {
+ return data.GetCharAt (offset);
+ }
+
+ public void Replace (int offset, int count, string text)
+ {
+ data.Replace (offset, count, text);
+ }
+
+ public CodeCompletionContext CreateCodeCompletionContext (int triggerOffset)
+ {
+ CodeCompletionContext result = new CodeCompletionContext ();
+ result.TriggerOffset = triggerOffset;
+ var loc = data.OffsetToLocation (triggerOffset);
+ result.TriggerLine = loc.Line;
+ result.TriggerLineOffset = loc.Column - 1;
+ return result;
+ }
+
+ public string GetCompletionText (CodeCompletionContext ctx)
+ {
+ if (ctx == null)
+ return null;
+ int min = Math.Min (ctx.TriggerOffset, data.Caret.Offset);
+ int max = Math.Max (ctx.TriggerOffset, data.Caret.Offset);
+ return data.GetTextBetween (min, max);
+ }
+
+ public void SetCompletionText (CodeCompletionContext ctx, string partial_word, string complete_word)
+ {
+ }
+
+ void ICompletionWidget.SetCompletionText (CodeCompletionContext ctx, string partial_word, string complete_word, int completeWordOffset)
+ {
+ }
+
+ public CodeCompletionContext CurrentCodeCompletionContext {
+ get;
+ set;
+ }
+
+ public int TextLength {
+ get;
+ set;
+ }
+
+ public int SelectedLength {
+ get;
+ set;
+ }
+
+ public Gtk.Style GtkStyle {
+ get;
+ set;
+ }
+ #endregion
+
+ }
+ static CompletionDataList CreateProvider (string text, bool isCtrlSpace)
+ {
+ string parsedText;
+ string editorText;
+ int cursorPosition = text.IndexOf ('$');
+ int endPos = text.IndexOf ('$', cursorPosition + 1);
+ if (endPos == -1) {
+ parsedText = editorText = text.Substring (0, cursorPosition) + text.Substring (cursorPosition + 1);
+ } else {
+ parsedText = text.Substring (0, cursorPosition) + new string (' ', endPos - cursorPosition) + text.Substring (endPos + 1);
+ editorText = text.Substring (0, cursorPosition) + text.Substring (cursorPosition + 1, endPos - cursorPosition - 1) + text.Substring (endPos + 1);
+ cursorPosition = endPos - 1;
+ }
+
+ TestWorkbenchWindow tww = new TestWorkbenchWindow ();
+ TestViewContent sev = new TestViewContent ();
+ DotNetProject project = new DotNetAssemblyProject ("C#");
+ project.FileName = GetTempFile (".csproj");
+
+ string file = GetTempFile (".cs");
+ project.AddFile (file);
+ TypeSystemService.Load (project);
+ var dom = TypeSystemService.GetContext (project);
+ TypeSystemService.ForceUpdate (dom);
+ var content = TypeSystemService.GetProjectContext (project);
+ var parsedDocument = TypeSystemService.ParseFile (content, file, "text/x-csharp", parsedText);
+
+ sev.Project = project;
+ sev.ContentName = file;
+ sev.Text = editorText;
+ sev.CursorPosition = cursorPosition;
+ tww.ViewContent = sev;
+ Document doc = new Document (tww);
+ doc.ParsedDocument = parsedDocument;
+ foreach (var e in doc.ParsedDocument.Errors)
+ Console.WriteLine (e);
+ var textEditorCompletion = new CSharpCompletionTextEditorExtension (doc);
+ int triggerWordLength = 1;
+ CodeCompletionContext ctx = new CodeCompletionContext ();
+ textEditorCompletion.CompletionWidget = new TestCompletionWidget (doc.Editor) {
+ CurrentCodeCompletionContext = ctx
+ };
+ ctx.TriggerOffset = sev.CursorPosition;
+ int line, column;
+ sev.GetLineColumnFromPosition (sev.CursorPosition, out line, out column);
+ ctx.TriggerLine = line;
+ ctx.TriggerLineOffset = column - 1;
+ TypeSystemService.Unload (project);
+ if (isCtrlSpace)
+ return textEditorCompletion.CodeCompletionCommand (ctx) as CompletionDataList;
+ return textEditorCompletion.HandleCodeCompletion (ctx, editorText[cursorPosition - 1] , ref triggerWordLength) as CompletionDataList;
+ }
+
+ public static void CheckObjectMembers (CompletionDataList provider)
+ {
+ Assert.IsNotNull (provider.Find ("Equals"), "Method 'System.Object.Equals' not found.");
+ Assert.IsNotNull (provider.Find ("GetHashCode"), "Method 'System.Object.GetHashCode' not found.");
+ Assert.IsNotNull (provider.Find ("GetType"), "Method 'System.Object.GetType' not found.");
+ Assert.IsNotNull (provider.Find ("ToString"), "Method 'System.Object.ToString' not found.");
+ }
+
+ public static void CheckProtectedObjectMembers (CompletionDataList provider)
+ {
+ CheckObjectMembers (provider);
+ Assert.IsNotNull (provider.Find ("MemberwiseClone"), "Method 'System.Object.MemberwiseClone' not found.");
+ }
+
+ public static void CheckStaticObjectMembers (CompletionDataList provider)
+ {
+ Assert.IsNotNull (provider.Find ("Equals"), "Method 'System.Object.Equals' not found.");
+ Assert.IsNotNull (provider.Find ("ReferenceEquals"), "Method 'System.Object.ReferenceEquals' not found.");
+ }
[Test()]
public void TestSimpleCodeCompletion ()
- {
- CompletionDataList provider = CreateProvider (
-@"class Test { public void TM1 () {} public void TM2 () {} public int TF1; }
-class CCTest {
-void TestMethod ()
-{
- Test t;
- $t.$
-}
-}
-");
- Assert.IsNotNull (provider);
- Assert.AreEqual (7, provider.Count);
- CodeCompletionBugTests.CheckObjectMembers (provider); // 4 from System.Object
- Assert.IsNotNull (provider.Find ("TM1"));
- Assert.IsNotNull (provider.Find ("TM2"));
- Assert.IsNotNull (provider.Find ("TF1"));
- }
+ {
+ CompletionDataList provider = CreateProvider (
+@"class Test { public void TM1 () {} public void TM2 () {} public int TF1; }
+class CCTest {
+void TestMethod ()
+{
+ Test t;
+ $t.$
+}
+}
+");
+ Assert.IsNotNull (provider);
+ Assert.AreEqual (7, provider.Count);
+ CodeCompletionBugTests.CheckObjectMembers (provider); // 4 from System.Object
+ Assert.IsNotNull (provider.Find ("TM1"));
+ Assert.IsNotNull (provider.Find ("TM2"));
+ Assert.IsNotNull (provider.Find ("TF1"));
+ }
[Test()]
public void TestSimpleInterfaceCodeCompletion ()
- {
- CompletionDataList provider = CreateProvider (
-@"interface ITest { void TM1 (); void TM2 (); int TF1 { get; } }
-class CCTest {
-void TestMethod ()
-{
- ITest t;
- $t.$
-}
-}
-");
- Assert.IsNotNull (provider);
- Assert.AreEqual (7, provider.Count);
- CodeCompletionBugTests.CheckObjectMembers (provider); // 4 from System.Object
- Assert.IsNotNull (provider.Find ("TM1"));
- Assert.IsNotNull (provider.Find ("TM2"));
- Assert.IsNotNull (provider.Find ("TF1"));
- }
-
+ {
+ CompletionDataList provider = CreateProvider (
+@"interface ITest { void TM1 (); void TM2 (); int TF1 { get; } }
+class CCTest {
+void TestMethod ()
+{
+ ITest t;
+ $t.$
+}
+}
+");
+ Assert.IsNotNull (provider);
+ Assert.AreEqual (7, provider.Count);
+ CodeCompletionBugTests.CheckObjectMembers (provider); // 4 from System.Object
+ Assert.IsNotNull (provider.Find ("TM1"));
+ Assert.IsNotNull (provider.Find ("TM2"));
+ Assert.IsNotNull (provider.Find ("TF1"));
+ }
+
/// <summary>
/// Bug 399695 - Code completion not working with an enum in a different namespace
/// </summary>
- [Test()]
+ [Test()]
public void TestBug399695 ()
- {
- CompletionDataList provider = CreateProvider (
+ {
+ CompletionDataList provider = CreateProvider (
@"namespace Other { enum TheEnum { One, Two } }
namespace ThisOne {
public class Test {
@@ -263,18 +263,18 @@ namespace ThisOne {
$TheEnum = $
}
}
-}");
- Assert.IsNotNull (provider);
- Assert.IsNotNull (provider.Find ("Other.TheEnum"), "Other.TheEnum not found.");
- }
-
+}");
+ Assert.IsNotNull (provider);
+ Assert.IsNotNull (provider.Find ("Other.TheEnum"), "Other.TheEnum not found.");
+ }
+
/// <summary>
/// Bug 318834 - autocompletion kicks in when inputting decimals
/// </summary>
- [Test()]
+ [Test()]
public void TestBug318834 ()
- {
- CompletionDataList provider = CreateProvider (
+ {
+ CompletionDataList provider = CreateProvider (
@"class T
{
static void Main ()
@@ -283,17 +283,17 @@ namespace ThisOne {
}
}
-");
- Assert.IsNull (provider);
- }
-
+");
+ Assert.IsNull (provider);
+ }
+
/// <summary>
/// Bug 321306 - Code completion doesn't recognize child namespaces
/// </summary>
- [Test()]
+ [Test()]
public void TestBug321306 ()
- {
- CompletionDataList provider = CreateProvider (
+ {
+ CompletionDataList provider = CreateProvider (
@"namespace a
{
namespace b
@@ -307,146 +307,146 @@ namespace ThisOne {
public class d
{
public d ()
- {
+ {
$b.$
}
}
-}");
- Assert.IsNotNull (provider, "provider not found.");
- Assert.AreEqual (1, provider.Count);
- Assert.IsNotNull (provider.Find ("c"), "class 'c' not found.");
- }
-
+}");
+ Assert.IsNotNull (provider, "provider not found.");
+ Assert.AreEqual (1, provider.Count);
+ Assert.IsNotNull (provider.Find ("c"), "class 'c' not found.");
+ }
+
/// <summary>
/// Bug 322089 - Code completion for indexer
/// </summary>
- [Test()]
+ [Test()]
public void TestBug322089 ()
- {
- CompletionDataList provider = CreateProvider (
-@"class AClass
-{
- public int AField;
- public int BField;
-}
-
+ {
+ CompletionDataList provider = CreateProvider (
+@"class AClass
+{
+ public int AField;
+ public int BField;
+}
+
class Test
{
public void TestMethod ()
- {
- AClass[] list = new AClass[0];
- $list[0].$
- }
-}");
- Assert.IsNotNull (provider, "provider not found.");
- Assert.AreEqual (6, provider.Count);
- CodeCompletionBugTests.CheckObjectMembers (provider); // 4 from System.Object
- Assert.IsNotNull (provider.Find ("AField"), "field 'AField' not found.");
- Assert.IsNotNull (provider.Find ("BField"), "field 'BField' not found.");
- }
-
+ {
+ AClass[] list = new AClass[0];
+ $list[0].$
+ }
+}");
+ Assert.IsNotNull (provider, "provider not found.");
+ Assert.AreEqual (6, provider.Count);
+ CodeCompletionBugTests.CheckObjectMembers (provider); // 4 from System.Object
+ Assert.IsNotNull (provider.Find ("AField"), "field 'AField' not found.");
+ Assert.IsNotNull (provider.Find ("BField"), "field 'BField' not found.");
+ }
+
/// <summary>
/// Bug 323283 - Code completion for indexers offered by generic types (generics)
/// </summary>
- [Test()]
+ [Test()]
public void TestBug323283 ()
- {
- CompletionDataList provider = CreateProvider (
-@"class AClass
-{
- public int AField;
- public int BField;
-}
-
-class MyClass<T>
-{
- public T this[int i] {
- get {
- return default (T);
- }
- }
-}
-
+ {
+ CompletionDataList provider = CreateProvider (
+@"class AClass
+{
+ public int AField;
+ public int BField;
+}
+
+class MyClass<T>
+{
+ public T this[int i] {
+ get {
+ return default (T);
+ }
+ }
+}
+
class Test
{
public void TestMethod ()
- {
- MyClass<AClass> list = new MyClass<AClass> ();
- $list[0].$
- }
-}");
- Assert.IsNotNull (provider, "provider not found.");
- Assert.AreEqual (6, provider.Count);
- CodeCompletionBugTests.CheckObjectMembers (provider); // 4 from System.Object
- Assert.IsNotNull (provider.Find ("AField"), "field 'AField' not found.");
- Assert.IsNotNull (provider.Find ("BField"), "field 'BField' not found.");
- }
-
+ {
+ MyClass<AClass> list = new MyClass<AClass> ();
+ $list[0].$
+ }
+}");
+ Assert.IsNotNull (provider, "provider not found.");
+ Assert.AreEqual (6, provider.Count);
+ CodeCompletionBugTests.CheckObjectMembers (provider); // 4 from System.Object
+ Assert.IsNotNull (provider.Find ("AField"), "field 'AField' not found.");
+ Assert.IsNotNull (provider.Find ("BField"), "field 'BField' not found.");
+ }
+
/// <summary>
/// Bug 323317 - Code completion not working just after a constructor
/// </summary>
- [Test()]
+ [Test()]
public void TestBug323317 ()
- {
- CompletionDataList provider = CreateProvider (
-@"class AClass
-{
- public int AField;
- public int BField;
-}
-
+ {
+ CompletionDataList provider = CreateProvider (
+@"class AClass
+{
+ public int AField;
+ public int BField;
+}
+
class Test
{
public void TestMethod ()
- {
- $new AClass().$
- }
-}");
- Assert.IsNotNull (provider, "provider not found.");
- Assert.AreEqual (6, provider.Count);
- CodeCompletionBugTests.CheckObjectMembers (provider); // 4 from System.Object
- Assert.IsNotNull (provider.Find ("AField"), "field 'AField' not found.");
- Assert.IsNotNull (provider.Find ("BField"), "field 'BField' not found.");
- }
-
+ {
+ $new AClass().$
+ }
+}");
+ Assert.IsNotNull (provider, "provider not found.");
+ Assert.AreEqual (6, provider.Count);
+ CodeCompletionBugTests.CheckObjectMembers (provider); // 4 from System.Object
+ Assert.IsNotNull (provider.Find ("AField"), "field 'AField' not found.");
+ Assert.IsNotNull (provider.Find ("BField"), "field 'BField' not found.");
+ }
+
/// <summary>
/// Bug 325509 - Inaccessible methods displayed in autocomplete
/// </summary>
- [Test()]
+ [Test()]
public void TestBug325509 ()
- {
- CompletionDataList provider = CreateProvider (
-@"class AClass
-{
- public int A;
- public int B;
-
- protected int C;
- int D;
-}
-
+ {
+ CompletionDataList provider = CreateProvider (
+@"class AClass
+{
+ public int A;
+ public int B;
+
+ protected int C;
+ int D;
+}
+
class Test
{
public void TestMethod ()
- {
- AClass a;
- $a.$
- }
-}");
- Assert.IsNotNull (provider, "provider not found.");
- Assert.AreEqual (6, provider.Count);
- CodeCompletionBugTests.CheckObjectMembers (provider); // 4 from System.Object
- Assert.IsNotNull (provider.Find ("A"), "field 'A' not found.");
- Assert.IsNotNull (provider.Find ("B"), "field 'B' not found.");
- }
-
+ {
+ AClass a;
+ $a.$
+ }
+}");
+ Assert.IsNotNull (provider, "provider not found.");
+ Assert.AreEqual (6, provider.Count);
+ CodeCompletionBugTests.CheckObjectMembers (provider); // 4 from System.Object
+ Assert.IsNotNull (provider.Find ("A"), "field 'A' not found.");
+ Assert.IsNotNull (provider.Find ("B"), "field 'B' not found.");
+ }
+
/// <summary>
/// Bug 338392 - MD tries to use types when declaring namespace
/// </summary>
- [Test()]
+ [Test()]
public void TestBug338392 ()
- {
- CompletionDataList provider = CreateProvider (
+ {
+ CompletionDataList provider = CreateProvider (
@"namespace A
{
class C
@@ -454,73 +454,73 @@ class Test
}
}
-$namespace A.$
-");
- Assert.IsNotNull (provider, "provider not found.");
- Assert.AreEqual (0, provider.Count);
- }
-
+$namespace A.$
+");
+ Assert.IsNotNull (provider, "provider not found.");
+ Assert.AreEqual (0, provider.Count);
+ }
+
/// <summary>
/// Bug 427284 - Code Completion: class list shows the full name of classes
/// </summary>
- [Test()]
+ [Test()]
public void TestBug427284 ()
- {
- CompletionDataList provider = CreateProvider (
+ {
+ CompletionDataList provider = CreateProvider (
@"namespace TestNamespace
{
class Test
{
}
-}
-class TestClass
-{
- void Method ()
- {
- $TestNamespace.$
- }
-}
-");
- Assert.IsNotNull (provider, "provider not found.");
- Assert.AreEqual (1, provider.Count);
+}
+class TestClass
+{
+ void Method ()
+ {
+ $TestNamespace.$
+ }
+}
+");
+ Assert.IsNotNull (provider, "provider not found.");
+ Assert.AreEqual (1, provider.Count);
Assert.IsNotNull (provider.Find ("Test"), "class 'Test' not found.");
- }
-
+ }
+
/// <summary>
/// Bug 427294 - Code Completion: completion on values returned by methods doesn't work
/// </summary>
- [Test()]
+ [Test()]
public void TestBug427294 ()
- {
- CompletionDataList provider = CreateProvider (
-@"class TestClass
-{
- public TestClass GetTestClass ()
- {
- }
-}
-
+ {
+ CompletionDataList provider = CreateProvider (
+@"class TestClass
+{
+ public TestClass GetTestClass ()
+ {
+ }
+}
+
class Test
{
public void TestMethod ()
- {
- TestClass a;
- $a.GetTestClass ().$
- }
-}");
- Assert.IsNotNull (provider, "provider not found.");
- Assert.AreEqual (5, provider.Count);
- CodeCompletionBugTests.CheckObjectMembers (provider); // 4 from System.Object
+ {
+ TestClass a;
+ $a.GetTestClass ().$
+ }
+}");
+ Assert.IsNotNull (provider, "provider not found.");
+ Assert.AreEqual (5, provider.Count);
+ CodeCompletionBugTests.CheckObjectMembers (provider); // 4 from System.Object
Assert.IsNotNull (provider.Find ("GetTestClass"), "method 'GetTestClass' not found.");
- }
-
+ }
+
/// <summary>
/// Bug 405000 - Namespace alias qualifier operator (::) does not trigger code completion
/// </summary>
- [Test()]
+ [Test()]
public void TestBug405000 ()
- {
- CompletionDataList provider = CreateProvider (
+ {
+ CompletionDataList provider = CreateProvider (
@"namespace A {
class Test
{
@@ -536,19 +536,19 @@ namespace B {
$foo::$
}
}
-}");
- Assert.IsNotNull (provider, "provider not found.");
- Assert.AreEqual (1, provider.Count);
+}");
+ Assert.IsNotNull (provider, "provider not found.");
+ Assert.AreEqual (1, provider.Count);
Assert.IsNotNull (provider.Find ("Test"), "class 'Test' not found.");
- }
-
+ }
+
/// <summary>
/// Bug 427649 - Code Completion: protected methods shown in code completion
/// </summary>
- [Test()]
+ [Test()]
public void TestBug427649 ()
- {
- CompletionDataList provider = CreateProvider (
+ {
+ CompletionDataList provider = CreateProvider (
@"class BaseClass
{
protected void ProtecedMember ()
@@ -564,19 +564,19 @@ class C : BaseClass
$bc.$
}
}
-");
- Assert.IsNotNull (provider, "provider not found.");
- Assert.AreEqual (4, provider.Count);
- CodeCompletionBugTests.CheckObjectMembers (provider); // 4 from System.Object
- }
-
+");
+ Assert.IsNotNull (provider, "provider not found.");
+ Assert.AreEqual (4, provider.Count);
+ CodeCompletionBugTests.CheckObjectMembers (provider); // 4 from System.Object
+ }
+
/// <summary>
/// Bug 427734 - Code Completion issues with enums
/// </summary>
- [Test()]
+ [Test()]
public void TestBug427734A ()
- {
- CompletionDataList provider = CreateProvider (
+ {
+ CompletionDataList provider = CreateProvider (
@"public class Test
{
public enum SomeEnum { a,b }
@@ -585,20 +585,20 @@ class C : BaseClass
{
$Test.$
}
-}");
- Assert.IsNotNull (provider, "provider not found.");
- Assert.AreEqual (3, provider.Count);
- CodeCompletionBugTests.CheckStaticObjectMembers (provider); // 2 from System.Object
+}");
+ Assert.IsNotNull (provider, "provider not found.");
+ Assert.AreEqual (3, provider.Count);
+ CodeCompletionBugTests.CheckStaticObjectMembers (provider); // 2 from System.Object
Assert.IsNotNull (provider.Find ("SomeEnum"), "enum 'SomeEnum' not found.");
- }
-
+ }
+
/// <summary>
/// Bug 427734 - Code Completion issues with enums
/// </summary>
- [Test()]
+ [Test()]
public void TestBug427734B ()
- {
- CompletionDataList provider = CreateProvider (
+ {
+ CompletionDataList provider = CreateProvider (
@"public class Test
{
public enum SomeEnum { a,b }
@@ -607,74 +607,74 @@ class C : BaseClass
{
$SomeEnum.$
}
-}");
- Assert.IsNotNull (provider, "provider not found.");
- Assert.AreEqual (2, provider.Count);
+}");
+ Assert.IsNotNull (provider, "provider not found.");
+ Assert.AreEqual (2, provider.Count);
Assert.IsNotNull (provider.Find ("a"), "enum member 'a' not found.");
Assert.IsNotNull (provider.Find ("b"), "enum member 'b' not found.");
- }
-
+ }
+
/// <summary>
/// Bug 431764 - Completion doesn't work in properties
/// </summary>
- [Test()]
- public void TestBug431764 ()
- {
- CompletionDataList provider = CreateCtrlSpaceProvider (
+ [Test()]
+ public void TestBug431764 ()
+ {
+ CompletionDataList provider = CreateCtrlSpaceProvider (
@"public class Test
{
- int number;
- public int Number {
- set { $this.number = $ }
+ int number;
+ public int Number {
+ set { $this.number = $ }
}
-}");
- Assert.IsNotNull (provider, "provider not found.");
+}");
+ Assert.IsNotNull (provider, "provider not found.");
Assert.IsNotNull (provider.Find ("value"), "Should contain 'value'");
- }
-
+ }
+
/// <summary>
/// Bug 431797 - Code completion showing invalid options
- /// </summary>
- [Test()]
+ /// </summary>
+ [Test()]
public void TestBug431797A ()
- {
+ {
CompletionDataList provider = CreateCtrlSpaceProvider (
-@"public class Test
-{
+@"public class Test
+{
private List<string> strings;
$public $
}");
Assert.IsNotNull (provider, "provider not found.");
Assert.IsNull (provider.Find ("strings"), "should not contain 'strings'");
- }
-
+ }
+
/// <summary>
/// Bug 431797 - Code completion showing invalid options
- /// </summary>
- [Test()]
+ /// </summary>
+ [Test()]
public void TestBug431797B ()
- {
+ {
CompletionDataList provider = CreateProvider (
@"public class Test
-{
+{
public delegate string [] AutoCompleteHandler (string text, int pos);
public void Method ()
- {
+ {
Test t = new Test ();
- $t.$
+ $t.$
}
}");
Assert.IsNotNull (provider, "provider not found.");
Assert.IsNull (provider.Find ("AutoCompleteHandler"), "should not contain 'AutoCompleteHandler' delegate");
- }
-
+ }
+
/// <summary>
/// Bug 432681 - Incorrect completion in nested classes
- /// </summary>
- [Test()]
- public void TestBug432681 ()
- {
+ /// </summary>
+ [Test()]
+ public void TestBug432681 ()
+ {
CompletionDataList provider = CreateProvider (
@"
@@ -687,36 +687,36 @@ class C {
{
$C.D c = new $
}
-}");
- Assert.IsNotNull (provider, "provider not found.");
+}");
+ Assert.IsNotNull (provider, "provider not found.");
Assert.AreEqual ("D", provider.DefaultCompletionString, "Completion string is incorrect");
- }
-
- [Test()]
- public void TestGenericObjectCreation ()
- {
+ }
+
+ [Test()]
+ public void TestGenericObjectCreation ()
+ {
CompletionDataList provider = CreateProvider (
-@"
-class List<T>
-{
-}
+@"
+class List<T>
+{
+}
class Test{
public void Method ()
{
$List<int> i = new $
}
-}");
- Assert.IsNotNull (provider, "provider not found.");
+}");
+ Assert.IsNotNull (provider, "provider not found.");
Assert.IsTrue (provider.Find ("List<int>") != null, "List<int> not found");
- }
-
+ }
+
/// <summary>
/// Bug 431803 - Autocomplete not giving any options
- /// </summary>
+ /// </summary>
[Test()]
public void TestBug431803 ()
- {
- CompletionDataList provider = CreateProvider (
+ {
+ CompletionDataList provider = CreateProvider (
@"public class Test
{
public string[] GetStrings ()
@@ -726,30 +726,30 @@ class Test{
}");
Assert.IsNotNull (provider, "provider not found.");
Assert.IsNotNull (provider.Find ("string"), "type string not found.");
- }
-
+ }
+
/// <summary>
/// Bug 434770 - No autocomplete on array types
- /// </summary>
+ /// </summary>
[Test()]
public void TestBug434770 ()
- {
- CompletionDataList provider = CreateProvider (
-@"
-namespace System {
- public class Array
- {
- public int Length {
- get {}
- set {}
- }
- public int MyField;
- }
-}
+ {
+ CompletionDataList provider = CreateProvider (
+@"
+namespace System {
+ public class Array
+ {
+ public int Length {
+ get {}
+ set {}
+ }
+ public int MyField;
+ }
+}
public class Test
{
public void AMethod ()
- {
+ {
byte[] buffer = new byte[1024];
$buffer.$
}
@@ -757,16 +757,16 @@ public class Test
Assert.IsNotNull (provider, "provider not found.");
Assert.IsNotNull (provider.Find ("Length"), "property 'Length' not found.");
Assert.IsNotNull (provider.Find ("MyField"), "field 'MyField' not found.");
- }
-
+ }
+
/// <summary>
/// Bug 439601 - Intellisense Broken For Partial Classes
- /// </summary>
+ /// </summary>
[Test()]
public void TestBug439601 ()
- {
- CompletionDataList provider = CreateProvider (
-@"
+ {
+ CompletionDataList provider = CreateProvider (
+@"
namespace MyNamespace
{
partial class FormMain
@@ -802,14 +802,14 @@ namespace MyNamespace
Assert.IsNotNull (provider.Find ("Foo"), "method 'Foo' not found.");
Assert.IsNotNull (provider.Find ("Blah"), "method 'Blah' not found.");
Assert.IsNotNull (provider.Find ("Bar"), "method 'Bar' not found.");
- }
-
+ }
+
/// <summary>
/// Bug 432434 - Code completion doesn't work with subclasses
- /// </summary>
- [Test()]
- public void TestBug432434 ()
- {
+ /// </summary>
+ [Test()]
+ public void TestBug432434 ()
+ {
CompletionDataList provider = CreateProvider (
@"public class Test
@@ -831,18 +831,18 @@ namespace MyNamespace
$inner.$
}
}
-");
- Assert.IsNotNull (provider, "provider not found.");
- Assert.IsNotNull (provider.Find ("Inner1"), "Method inner1 not found.");
+");
+ Assert.IsNotNull (provider, "provider not found.");
+ Assert.IsNotNull (provider.Find ("Inner1"), "Method inner1 not found.");
Assert.IsNotNull (provider.Find ("Inner2"), "Method inner2 not found.");
- }
-
+ }
+
/// <summary>
/// Bug 432434A - Code completion doesn't work with subclasses
- /// </summary>
- [Test()]
- public void TestBug432434A ()
- {
+ /// </summary>
+ [Test()]
+ public void TestBug432434A ()
+ {
CompletionDataList provider = CreateProvider (
@" public class E
@@ -856,17 +856,17 @@ namespace MyNamespace
}
}
}
-");
- Assert.IsNotNull (provider, "provider not found.");
- Assert.IsNotNull (provider.Find ("Method"), "Method 'Method' not found.");
+");
+ Assert.IsNotNull (provider, "provider not found.");
+ Assert.IsNotNull (provider.Find ("Method"), "Method 'Method' not found.");
}
-
+
/// <summary>
/// Bug 432434B - Code completion doesn't work with subclasses
- /// </summary>
- [Test()]
- public void TestBug432434B ()
- {
+ /// </summary>
+ [Test()]
+ public void TestBug432434B ()
+ {
CompletionDataList provider = CreateProvider (
@" public class E
@@ -879,20 +879,20 @@ namespace MyNamespace
}
}
}
-");
- Assert.IsNotNull (provider, "provider not found.");
- Assert.IsNotNull (provider.Find ("E"), "Class 'E' not found.");
- Assert.IsNotNull (provider.Find ("Inner"), "Class 'Inner' not found.");
- Assert.IsNull (provider.Find ("ReallyInner"), "Class 'ReallyInner' found, but shouldn't.");
+");
+ Assert.IsNotNull (provider, "provider not found.");
+ Assert.IsNotNull (provider.Find ("E"), "Class 'E' not found.");
+ Assert.IsNotNull (provider.Find ("Inner"), "Class 'Inner' not found.");
+ Assert.IsNull (provider.Find ("ReallyInner"), "Class 'ReallyInner' found, but shouldn't.");
}
/// <summary>
/// Bug 436705 - code completion for constructors does not handle class name collisions properly
- /// </summary>
- [Test()]
- public void TestBug436705 ()
- {
+ /// </summary>
+ [Test()]
+ public void TestBug436705 ()
+ {
CompletionDataList provider = CreateProvider (
@"
public class Point
@@ -905,17 +905,17 @@ class C {
{
$System.Drawing.Point p = new $
}
-}");
- Assert.IsNotNull (provider, "provider not found.");
+}");
+ Assert.IsNotNull (provider, "provider not found.");
Assert.AreEqual ("System.Drawing.Point", provider.DefaultCompletionString, "Completion string is incorrect");
- }
-
+ }
+
/// <summary>
/// Bug 439963 - Lacking members in code completion
- /// </summary>
- [Test()]
- public void TestBug439963 ()
- {
+ /// </summary>
+ [Test()]
+ public void TestBug439963 ()
+ {
CompletionDataList provider = CreateProvider (
@"public class StaticTest
{
@@ -936,27 +936,27 @@ public class Test
$StaticTest.GetObject ().$
}
}
-");
- Assert.IsNotNull (provider, "provider not found.");
- Assert.IsNotNull (provider.Find ("Test1"), "Method 'Test1' not found.");
- Assert.IsNotNull (provider.Find ("Test2"), "Method 'Test2' not found.");
- Assert.IsNull (provider.Find ("GetObject"), "Method 'GetObject' found, but shouldn't.");
- }
-
+");
+ Assert.IsNotNull (provider, "provider not found.");
+ Assert.IsNotNull (provider.Find ("Test1"), "Method 'Test1' not found.");
+ Assert.IsNotNull (provider.Find ("Test2"), "Method 'Test2' not found.");
+ Assert.IsNull (provider.Find ("GetObject"), "Method 'GetObject' found, but shouldn't.");
+ }
+
/// <summary>
/// Bug 441671 - Finalisers show up in code completion
/// </summary>
- [Test()]
+ [Test()]
public void TestBug441671 ()
- {
- CompletionDataList provider = CreateProvider (
+ {
+ CompletionDataList provider = CreateProvider (
@"class TestClass
{
public TestClass (int i)
{
- }
- public void TestMethod ()
- {
+ }
+ public void TestMethod ()
+ {
}
public ~TestClass ()
{
@@ -970,22 +970,22 @@ class AClass
TestClass c;
$c.$
}
-}
-");
- Assert.IsNotNull (provider, "provider not found.");
- Assert.AreEqual (5, provider.Count);
- CodeCompletionBugTests.CheckObjectMembers (provider); // 4 from System.Object
+}
+");
+ Assert.IsNotNull (provider, "provider not found.");
+ Assert.AreEqual (5, provider.Count);
+ CodeCompletionBugTests.CheckObjectMembers (provider); // 4 from System.Object
Assert.IsNull (provider.Find (".dtor"), "destructor found - but shouldn't.");
- Assert.IsNotNull (provider.Find ("TestMethod"), "method 'TestMethod' not found.");
- }
-
+ Assert.IsNotNull (provider.Find ("TestMethod"), "method 'TestMethod' not found.");
+ }
+
/// <summary>
/// Bug 444110 - Code completion doesn't activate
/// </summary>
- [Test()]
+ [Test()]
public void TestBug444110 ()
- {
- CompletionDataList provider = CreateProvider (
+ {
+ CompletionDataList provider = CreateProvider (
@"using System;
using System.Collections.Generic;
@@ -1013,50 +1013,50 @@ namespace CCTests
$t.TemplateClass.$
}
}
-}");
- Assert.IsNotNull (provider, "provider not found.");
- Assert.AreEqual (5, provider.Count);
- CodeCompletionBugTests.CheckObjectMembers (provider); // 4 from System.Object
- Assert.IsNotNull (provider.Find ("TestField"), "field 'TestField' not found.");
- }
-
+}");
+ Assert.IsNotNull (provider, "provider not found.");
+ Assert.AreEqual (5, provider.Count);
+ CodeCompletionBugTests.CheckObjectMembers (provider); // 4 from System.Object
+ Assert.IsNotNull (provider.Find ("TestField"), "field 'TestField' not found.");
+ }
+
/// <summary>
/// Bug 460234 - Invalid options shown when typing 'override'
/// </summary>
- [Test()]
+ [Test()]
public void TestBug460234 ()
- {
- CompletionDataList provider = CreateProvider (
-@"
-namespace System {
- public class Object
- {
- public virtual int GetHashCode ()
- {
- }
- protected virtual void Finalize ()
- {
- }
- }
-}
-public class TestMe : System.Object
-{
- $override $
-}");
- Assert.IsNotNull (provider, "provider not found.");
- Assert.AreEqual (1, provider.Count);
- Assert.IsNull (provider.Find ("Finalize"), "method 'Finalize' found, but shouldn't.");
- Assert.IsNotNull (provider.Find ("GetHashCode"), "method 'GetHashCode' not found.");
- }
-
+ {
+ CompletionDataList provider = CreateProvider (
+@"
+namespace System {
+ public class Object
+ {
+ public virtual int GetHashCode ()
+ {
+ }
+ protected virtual void Finalize ()
+ {
+ }
+ }
+}
+public class TestMe : System.Object
+{
+ $override $
+}");
+ Assert.IsNotNull (provider, "provider not found.");
+ Assert.AreEqual (1, provider.Count);
+ Assert.IsNull (provider.Find ("Finalize"), "method 'Finalize' found, but shouldn't.");
+ Assert.IsNotNull (provider.Find ("GetHashCode"), "method 'GetHashCode' not found.");
+ }
+
/// <summary>
/// Bug 457003 - code completion shows variables out of scope
/// </summary>
- [Test()]
+ [Test()]
public void TestBug457003 ()
- {
- CompletionDataList provider = CreateProvider (
-@"
+ {
+ CompletionDataList provider = CreateProvider (
+@"
class A
{
public void Test ()
@@ -1071,19 +1071,19 @@ class A
}
}
}
-");
- Assert.IsNotNull (provider, "provider not found.");
- Assert.IsTrue (provider.Count == 0, "variable 'st' found, but shouldn't.");
- }
-
+");
+ Assert.IsNotNull (provider, "provider not found.");
+ Assert.IsTrue (provider.Count == 0, "variable 'st' found, but shouldn't.");
+ }
+
/// <summary>
/// Bug 457237 - code completion doesn't show static methods when setting global variable
/// </summary>
- [Test()]
+ [Test()]
public void TestBug457237 ()
- {
- CompletionDataList provider = CreateProvider (
-@"
+ {
+ CompletionDataList provider = CreateProvider (
+@"
class Test
{
public static double Val = 0.5;
@@ -1093,63 +1093,63 @@ class Test2
{
$double dd = Test.$
}
-");
- Assert.IsNotNull (provider, "provider not found.");
- Assert.IsNotNull (provider.Find ("Val"), "field 'Val' not found.");
- }
-
+");
+ Assert.IsNotNull (provider, "provider not found.");
+ Assert.IsNotNull (provider.Find ("Val"), "field 'Val' not found.");
+ }
+
/// <summary>
/// Bug 459682 - Static methods/properties don't show up in subclasses
/// </summary>
- [Test()]
+ [Test()]
public void TestBug459682 ()
- {
- CompletionDataList provider = CreateProvider (
+ {
+ CompletionDataList provider = CreateProvider (
@"public class BaseC
{
public static int TESTER;
}
public class Child : BaseC
-{
+{
public Child()
{
$Child.$
}
}
-");
- Assert.IsNotNull (provider, "provider not found.");
- Assert.IsNotNull (provider.Find ("TESTER"), "field 'TESTER' not found.");
- }
-
+");
+ Assert.IsNotNull (provider, "provider not found.");
+ Assert.IsNotNull (provider.Find ("TESTER"), "field 'TESTER' not found.");
+ }
+
/// <summary>
/// Bug 466692 - Missing completion for return/break keywords after yield
/// </summary>
- [Test()]
+ [Test()]
public void TestBug466692 ()
- {
- CompletionDataList provider = CreateProvider (
-@"
-public class TestMe
-{
- public int Test ()
- {
- $yield $
- }
-}");
- Assert.IsNotNull (provider, "provider not found.");
- Assert.AreEqual (2, provider.Count);
- Assert.IsNotNull (provider.Find ("break"), "keyword 'break' not found");
- Assert.IsNotNull (provider.Find ("return"), "keyword 'return' not found");
- }
-
+ {
+ CompletionDataList provider = CreateProvider (
+@"
+public class TestMe
+{
+ public int Test ()
+ {
+ $yield $
+ }
+}");
+ Assert.IsNotNull (provider, "provider not found.");
+ Assert.AreEqual (2, provider.Count);
+ Assert.IsNotNull (provider.Find ("break"), "keyword 'break' not found");
+ Assert.IsNotNull (provider.Find ("return"), "keyword 'return' not found");
+ }
+
/// <summary>
/// Bug 467507 - No completion of base members inside explicit events
/// </summary>
- [Test()]
+ [Test()]
public void TestBug467507 ()
- {
- CompletionDataList provider = CreateCtrlSpaceProvider (
-@"
+ {
+ CompletionDataList provider = CreateCtrlSpaceProvider (
+@"
using System;
class Test
@@ -1167,21 +1167,21 @@ class Test
}
}
}
-");
- Assert.IsNotNull (provider, "provider not found.");
-
- Assert.IsNotNull (provider.Find ("TestMe"), "method 'TestMe' not found");
- Assert.IsNotNull (provider.Find ("value"), "keyword 'value' not found");
- }
-
+");
+ Assert.IsNotNull (provider, "provider not found.");
+
+ Assert.IsNotNull (provider.Find ("TestMe"), "method 'TestMe' not found");
+ Assert.IsNotNull (provider.Find ("value"), "keyword 'value' not found");
+ }
+
/// <summary>
/// Bug 444643 - Extension methods don't show up on array types
/// </summary>
- [Test()]
+ [Test()]
public void TestBug444643 ()
- {
- CompletionDataList provider = CreateCtrlSpaceProvider (
-@"
+ {
+ CompletionDataList provider = CreateCtrlSpaceProvider (
+@"
using System;
using System.Collections.Generic;
@@ -1196,2257 +1196,2257 @@ using System.Collections.Generic;
class MainClass
{
public static void Main(string[] args)
- {
+ {
$args.$
}
}
-");
- Assert.IsNotNull (provider, "provider not found.");
- Assert.IsNotNull (provider.Find ("TestExt"), "method 'TestExt' not found");
- }
-
+");
+ Assert.IsNotNull (provider, "provider not found.");
+ Assert.IsNotNull (provider.Find ("TestExt"), "method 'TestExt' not found");
+ }
+
/// <summary>
/// Bug 471935 - Code completion window not showing in MD1CustomDataItem.cs
/// </summary>
- [Test()]
- public void TestBug471935 ()
- {
- CompletionDataList provider = CreateCtrlSpaceProvider (
-@"
-public class AClass
-{
- public AClass Test ()
- {
- if (true) {
- AClass data;
- $data.$
- return data;
- } else if (false) {
- AClass data;
- return data;
- }
- return null;
- }
-}
-");
- Assert.IsNotNull (provider, "provider not found.");
-
- Assert.IsNotNull (provider.Find ("Test"), "method 'Test' not found");
- }
-
- /// <summary>
- /// Bug 471937 - Code completion of 'new' showing invorrect entries
- /// </summary>
- [Test()]
- public void TestBug471937 ()
- {
- CompletionDataList provider = CreateCtrlSpaceProvider (
-@"
-class B
-{
-}
-
-class A
-{
- public void Test()
- {
- int i = 5;
- i += 5;
- $A a = new $
- }
-}
-");
- Assert.IsNotNull (provider, "provider not found.");
-
- Assert.IsNull (provider.Find ("B"), "class 'B' found, but shouldn'tj.");
- }
-
- /// <summary>
- /// Bug 473686 - Constants are not included in code completion
- /// </summary>
- [Test()]
- public void TestBug473686 ()
- {
- CompletionDataList provider = CreateCtrlSpaceProvider (
-@"
-class ATest
-{
- const int TESTCONST = 0;
-
- static void Test()
- {
- $$
- }
-}
-");
- Assert.IsNotNull (provider, "provider not found.");
-
- Assert.IsNotNull (provider.Find ("TESTCONST"), "constant 'TESTCONST' not found.");
- }
-
- /// <summary>
- /// Bug 473849 - Classes with no visible constructor shouldn't appear in "new" completion
- /// </summary>
- [Test()]
- public void TestBug473849 ()
- {
- CompletionDataList provider = CreateProvider (
-@"
-class TestB
-{
- protected TestB()
- {
- }
-}
-
-class TestC : TestB
-{
- internal TestC ()
- {
- }
-}
-
-class TestD : TestB
-{
- public TestD ()
- {
- }
-}
-
-class TestE : TestD
-{
- protected TestE ()
- {
- }
-}
-
-class Test : TestB
-{
- void TestMethod ()
- {
- $TestB test = new $
- }
-}
-");
- Assert.IsNotNull (provider, "provider not found.");
-
- Assert.IsNull (provider.Find ("TestE"), "class 'TestE' found, but shouldn't.");
- Assert.IsNotNull (provider.Find ("TestD"), "class 'TestD' not found");
- Assert.IsNotNull (provider.Find ("TestC"), "class 'TestC' not found");
- Assert.IsNotNull (provider.Find ("TestB"), "class 'TestB' not found");
- Assert.IsNotNull (provider.Find ("Test"), "class 'Test' not found");
- }
-
- /// <summary>
- /// Bug 474199 - Code completion not working for a nested class
- /// </summary>
- [Test()]
- public void TestBug474199A ()
- {
- CompletionDataList provider = CreateProvider (
-@"
-public class InnerTest
-{
- public class Inner
- {
- public void Test()
- {
- }
- }
-}
-
-public class ExtInner : InnerTest
-{
-}
-
-class Test
-{
- public void TestMethod ()
- {
- var inner = new ExtInner.Inner ();
- $inner.$
- }
-}
-");
- Assert.IsNotNull (provider, "provider not found.");
- Assert.IsNotNull (provider.Find ("Test"), "method 'Test' not found");
- }
-
- /// <summary>
- /// Bug 474199 - Code completion not working for a nested class
- /// </summary>
- [Test()]
- public void TestBug474199B ()
- {
- IParameterDataProvider provider = ParameterCompletionTests.CreateProvider (
-@"
-public class InnerTest
-{
- public class Inner
- {
- public Inner(string test)
- {
- }
- }
-}
-
-public class ExtInner : InnerTest
-{
-}
-
-class Test
-{
- public void TestMethod ()
- {
- $new ExtInner.Inner ($
- }
-}
-");
- Assert.IsNotNull (provider, "provider not found.");
- Assert.AreEqual (1, provider.OverloadCount, "There should be one overload");
- Assert.AreEqual (1, provider.GetParameterCount(0), "Parameter 'test' should exist");
- }
-
- /// <summary>
- /// Bug 350862 - Autocomplete bug with enums
- /// </summary>
- [Test()]
- public void TestBug350862 ()
- {
- CompletionDataList provider = CreateProvider (
-@"
-public enum MyEnum {
- A,
- B,
- C
-}
-
-public class Test
-{
- MyEnum item;
- public void Method (MyEnum val)
- {
- $item = $
- }
-}
-
-");
- Assert.IsNotNull (provider, "provider not found.");
-
- Assert.IsNotNull (provider.Find ("val"), "parameter 'val' not found");
- }
-
- /// <summary>
- /// Bug 470954 - using System.Windows.Forms is not honored
- /// </summary>
- [Test()]
- public void TestBug470954 ()
- {
- CompletionDataList provider = CreateProvider (
-@"
-public class Control
-{
- public MouseButtons MouseButtons { get; set; }
-}
-
-public enum MouseButtons {
- Left, Right
-}
-
-public class SomeControl : Control
-{
- public void Run ()
- {
- $MouseButtons m = MouseButtons.$
- }
-}
-");
- Assert.IsNotNull (provider, "provider not found.");
-
- Assert.IsNotNull (provider.Find ("Left"), "enum 'Left' not found");
- Assert.IsNotNull (provider.Find ("Right"), "enum 'Right' not found");
- }
-
- /// <summary>
- /// Bug 470954 - using System.Windows.Forms is not honored
- /// </summary>
- [Test()]
- public void TestBug470954_bis ()
- {
- CompletionDataList provider = CreateProvider (
-@"
-public class Control
-{
- public string MouseButtons { get; set; }
-}
-
-public enum MouseButtons {
- Left, Right
-}
-
-public class SomeControl : Control
-{
- public void Run ()
- {
- $int m = MouseButtons.$
- }
-}
-");
- Assert.IsNotNull (provider, "provider not found.");
-
- Assert.IsNull (provider.Find ("Left"), "enum 'Left' found");
- Assert.IsNull (provider.Find ("Right"), "enum 'Right' found");
- }
-
- /// <summary>
- /// Bug 487236 - Object initializer completion uses wrong type
- /// </summary>
- [Test()]
- public void TestBug487236 ()
- {
- CompletionDataList provider = CreateCtrlSpaceProvider (
-@"
-public class A
-{
- public string Name { get; set; }
-}
-
-class MyTest
-{
- public void Test ()
- {
- $var x = new A () { $
- }
-}
-");
- Assert.IsNotNull (provider, "provider not found.");
-
- Assert.IsNotNull (provider.Find ("Name"), "property 'Name' not found.");
- }
-
- /// <summary>
- /// Bug 487236 - Object initializer completion uses wrong type
- /// </summary>
- [Test()]
- public void TestBug487236B ()
- {
- CompletionDataList provider = CreateCtrlSpaceProvider (
-@"
-public class A
-{
- public string Name { get; set; }
-}
-
-class MyTest
-{
- public void Test ()
- {
- $A x = new NotExists () { $
- }
-}
-");
- Assert.IsNotNull (provider, "provider not found.");
-
- Assert.IsNull (provider.Find ("Name"), "property 'Name' found, but shouldn't'.");
- }
-
- /// <summary>
- /// Bug 487228 - No intellisense for implicit arrays
- /// </summary>
- [Test()]
- public void TestBug487228 ()
- {
- CompletionDataList provider = CreateProvider (
-@"
-public class Test
-{
- public void Method ()
- {
- var v = new [] { new Test () };
- $v[0].$
- }
-}
-");
- Assert.IsNotNull (provider, "provider not found.");
-
- Assert.IsNotNull (provider.Find ("Method"), "method 'Method' not found");
- }
-
- /// <summary>
- /// Bug 487218 - var does not work with arrays
- /// </summary>
- [Test()]
- public void TestBug487218 ()
- {
- CompletionDataList provider = CreateProvider (
-@"
-public class Test
-{
- public void Method ()
- {
- var v = new Test[] { new Test () };
- $v[0].$
- }
-}
-");
- Assert.IsNotNull (provider, "provider not found.");
-
- Assert.IsNotNull (provider.Find ("Method"), "method 'Method' not found");
- }
-
- /// <summary>
- /// Bug 487206 - Intellisense not working
- /// </summary>
- [Test()]
- public void TestBug487206 ()
- {
- CompletionDataList provider = CreateProvider (
-@"
-class CastByExample
-{
- static T Cast<T> (object obj, T type)
- {
- return (T) obj;
- }
-
- static void Main ()
- {
- var typed = Cast (o, new { Foo = 5 });
- $typed.$
- }
-}");
- Assert.IsNotNull (provider, "provider not found.");
-
- Assert.IsNotNull (provider.Find ("Foo"), "property 'Foo' not found");
- }
-
- /// <summary>
- /// Bug 487203 - Extension methods not working
- /// </summary>
- [Test()]
- public void TestBug487203 ()
- {
- CompletionDataList provider = CreateProvider (
-@"
-using System;
-using System.Collections.Generic;
-
-static class Linq
-{
- public static IEnumerable<T> Select<S, T> (this IEnumerable<S> collection, Func<S, T> func)
- {
- }
-}
-
-class Program
-{
- public void Foo ()
- {
- Program[] prgs;
- foreach (var prg in (from Program p in prgs select p)) {
- $prg.$
- }
- }
-}
-");
- Assert.IsNotNull (provider, "provider not found.");
- Assert.IsNotNull (provider.Find ("Foo"), "method 'Foo' not found");
- }
-
- /// <summary>
- /// Bug 491020 - Wrong typeof intellisense
- /// </summary>
- [Test()]
- public void TestBug491020 ()
- {
- CompletionDataList provider = CreateProvider (
-@"
-public class EventClass<T>
-{
- public class Inner {}
- public delegate void HookDelegate (T del);
- public void Method ()
- {}
-}
-
-public class Test
-{
- public static void Main ()
- {
- $EventClass<int>.$
- }
-}
-");
- Assert.IsNotNull (provider, "provider not found.");
- Assert.IsNotNull (provider.Find ("Inner"), "class 'Inner' not found.");
- Assert.IsNotNull (provider.Find ("HookDelegate"), "delegate 'HookDelegate' not found.");
- Assert.IsNull (provider.Find ("Method"), "method 'Method' found, but shouldn't.");
- }
-
- /// <summary>
- /// Bug 491020 - Wrong typeof intellisense
- /// It's a different case when the class is inside a namespace.
- /// </summary>
- [Test()]
- public void TestBug491020B ()
- {
- CompletionDataList provider = CreateProvider (
-@"
-
-namespace A {
- public class EventClass<T>
- {
- public class Inner {}
- public delegate void HookDelegate (T del);
- public void Method ()
- {}
- }
-}
-
-public class Test
-{
- public static void Main ()
- {
- $A.EventClass<int>.$
- }
-}
-");
- Assert.IsNotNull (provider, "provider not found.");
- Assert.IsNotNull (provider.Find ("Inner"), "class 'Inner' not found.");
- Assert.IsNotNull (provider.Find ("HookDelegate"), "delegate 'HookDelegate' not found.");
- Assert.IsNull (provider.Find ("Method"), "method 'Method' found, but shouldn't.");
- }
-
- /// <summary>
- /// Bug 491019 - No intellisense for recursive generics
- /// </summary>
- [Test()]
- public void TestBug491019 ()
- {
- CompletionDataList provider = CreateProvider (
-@"
-public abstract class NonGenericBase
-{
- public abstract int this[int i] { get; }
-}
-
-public abstract class GenericBase<T> : NonGenericBase where T : GenericBase<T>
-{
- T Instance { get { return default (T); } }
-
- public void Foo ()
- {
- $Instance.Instance.$
- }
-}
-");
- Assert.IsNotNull (provider, "provider not found.");
- Assert.IsNotNull (provider.Find ("Instance"), "property 'Instance' not found.");
- Assert.IsNull (provider.Find ("this"), "'this' found, but shouldn't.");
- }
-
-
-
- /// <summary>
- /// Bug 429034 - Class alias completion not working properly
- /// </summary>
- [Test()]
- public void TestBug429034 ()
- {
- CompletionDataList provider = CreateCtrlSpaceProvider (
-@"
-using Path = System.IO.Path;
-
-class Test
-{
- void Test ()
- {
- $$
- }
-}
-");
- Assert.IsNotNull (provider, "provider not found.");
- Assert.IsNotNull (provider.Find ("Path"), "class 'Path' not found.");
- }
-
- /// <summary>
- /// Bug 429034 - Class alias completion not working properly
- /// </summary>
- [Test()]
- public void TestBug429034B ()
- {
- CompletionDataList provider = CreateProvider (
-@"
-using Path = System.IO.Path;
-
-class Test
-{
- void Test ()
- {
- $Path.$
- }
-}
-");
- Assert.IsNotNull (provider, "provider not found.");
- Assert.IsNotNull (provider.Find ("DirectorySeparatorChar"), "method 'PathTest' not found.");
- }
-
- [Test()]
- public void TestInvalidCompletion ()
- {
- CompletionDataList provider = CreateProvider (
-@"
-class TestClass
-{
- public void TestMethod ()
- {
- }
-}
-
-class Test
-{
- public void Foo ()
- {
- TestClass tc;
- $tc.garbage.$
- }
-}
-");
- Assert.IsNotNull (provider, "provider not found.");
- Assert.IsNull (provider.Find ("TestMethod"), "method 'TestMethod' found, but shouldn't.");
- }
-
- /// <summary>
- /// Bug 510919 - Code completion does not show interface method when not using a local var
- /// </summary>
- [Test()]
- public void TestBug510919 ()
- {
- CompletionDataList provider = CreateProvider (
-@"
-public class Foo : IFoo
-{
- public void Bar () { }
-}
-
-public interface IFoo
-{
- void Bar ();
-}
-
-public class Program
-{
- static IFoo GiveMeFoo ()
- {
- return new Foo ();
- }
-
- static void Main ()
- {
- $GiveMeFoo ().$
- }
-}
-");
- Assert.IsNotNull (provider, "provider not found.");
- Assert.IsNotNull (provider.Find ("Bar"), "method 'Bar' not found.");
- }
-
-
- /// <summary>
- /// Bug 526667 - wrong code completion in object initialisation (new O() {...};)
- /// </summary>
- [Test()]
- public void TestBug526667 ()
- {
- CompletionDataList provider = CreateCtrlSpaceProvider (
-@"
-using System;
-using System.Collections.Generic;
-
-public class O
-{
- public string X {
- get;
- set;
- }
- public string Y {
- get;
- set;
- }
- public List<string> Z {
- get;
- set;
- }
-
- public static O A ()
- {
- return new O {
- X = ""x"",
- Z = new List<string> (new string[] {
- ""abc"",
- ""def""
- })
- $, $
- };
- }
-}
-");
- Assert.IsNotNull (provider, "provider not found.");
- Assert.IsNotNull (provider.Find ("Y"), "property 'Y' not found.");
- }
-
-
-
- /// <summary>
- /// Bug 538208 - Go to declaration not working over a generic method...
- /// </summary>
- [Test()]
- public void TestBug538208 ()
- {
- // We've to test 2 expressions for this bug. Since there are 2 ways of accessing
- // members.
- // First: the identifier expression
- CompletionDataList provider = CreateCtrlSpaceProvider (
-@"
-class MyClass
-{
- public string Test { get; set; }
-
- T foo<T>(T arg)
- {
- return arg;
- }
-
- public void Main(string[] args)
- {
- var myObject = foo<MyClass>(new MyClass());
- $myObject.$
- }
-}
-");
- Assert.IsNotNull (provider, "provider not found.");
- Assert.IsNotNull (provider.Find ("Test"), "property 'Test' not found.");
-
- // now the member reference expression
- provider = CreateCtrlSpaceProvider (
-@"
-class MyClass2
-{
- public string Test { get; set; }
-
- T foo<T>(T arg)
- {
- return arg;
- }
-
- public void Main(string[] args)
- {
- var myObject = this.foo<MyClass2>(new MyClass2());
- $myObject.$
- }
-}
-");
- Assert.IsNotNull (provider, "provider not found.");
- Assert.IsNotNull (provider.Find ("Test"), "property 'Test' not found.");
- }
-
- /// <summary>
- /// Bug 542976 resolution problem
- /// </summary>
- [Test()]
- public void TestBug542976 ()
- {
- CompletionDataList provider = CreateProvider (
-@"
-class KeyValuePair<S, T>
-{
- public S Key { get; set;}
- public T Value { get; set;}
-}
-
-class TestMe<T> : System.Collections.Generic.IEnumerable<T>
-{
- public System.Collections.Generic.IEnumerator<T> GetEnumerator ()
- {
- throw new System.NotImplementedException();
- }
-
- System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator ()
- {
- throw new System.NotImplementedException();
- }
-}
-
-namespace TestMe
-{
- class Bar
- {
- public int Field;
- }
-
- class Test
- {
- void Foo (TestMe<KeyValuePair<Bar, int>> things)
- {
- foreach (var thing in things) {
- $thing.Key.$
- }
- }
- }
-}
-");
- Assert.IsNotNull (provider, "provider not found.");
- Assert.IsNotNull (provider.Find ("Field"), "field 'Field' not found.");
- }
-
-
- /// <summary>
- /// Bug 545189 - C# resolver bug
- /// </summary>
- [Test()]
- public void TestBug545189A ()
- {
- CompletionDataList provider = CreateProvider (
-@"
-class A<T>
-{
- class B
- {
- public T field;
- }
-}
-
-public class Foo
-{
- public void Bar ()
- {
- A<Foo>.B baz = new A<Foo>.B ();
- $baz.field.$
- }
-}
-");
- Assert.IsNotNull (provider, "provider not found.");
- Assert.IsNotNull (provider.Find ("Bar"), "method 'Bar' not found.");
- }
-
- /// <summary>
- /// Bug 549864 - Intellisense does not work properly with expressions
- /// </summary>
- [Test()]
- public void TestBug549864 ()
- {
- CompletionDataList provider = CreateProvider (
-@"
-delegate T MyFunc<S, T> (S t);
-
-class TestClass
-{
- public string Value {
- get;
- set;
- }
-
- public static object GetProperty<TType> (MyFunc<TType, object> expression)
- {
- return null;
- }
- private static object ValueProperty = TestClass.GetProperty<TestClass> ($x => x.$);
-}
-");
- Assert.IsNotNull (provider, "provider not found.");
- Assert.IsNotNull (provider.Find ("Value"), "property 'Value' not found.");
- }
-
-
- /// <summary>
- /// Bug 550185 - Intellisence for extension methods
- /// </summary>
- [Test()]
- public void TestBug550185 ()
- {
- CompletionDataList provider = CreateProvider (
-@"
-public interface IMyinterface<T> {
- T Foo ();
-}
-
-public static class ExtMethods {
- public static int MyCountMethod(this IMyinterface<string> i)
- {
- return 0;
- }
-}
-
-class TestClass
-{
- void Test ()
- {
- IMyinterface<int> test;
- $test.$
- }
-}
-
-");
- Assert.IsNotNull (provider, "provider not found.");
- Assert.IsNull (provider.Find ("MyCountMet2hod"), "method 'MyCountMethod' found, but shouldn't.");
- }
-
-
- /// <summary>
- /// Bug 553101 – Enum completion does not use type aliases
- /// </summary>
- [Test()]
- public void TestBug553101 ()
- {
- CompletionDataList provider = CreateProvider (
-@"
-namespace Some.Type
-{
- public enum Name { Foo, Bar }
-}
-
-namespace Test
-{
- using STN = Some.Type.Name;
-
- public class Main
- {
- public void TestMe ()
- {
- $STN foo = $
- }
- }
-}
-");
- Assert.IsNotNull (provider, "provider not found.");
- }
-
- /// <summary>
- /// Bug 555523 - C# code completion gets confused by extension methods with same names as properties
- /// </summary>
- [Test()]
- public void TestBug555523A ()
- {
- CompletionDataList provider = CreateProvider (
-@"
-class A
-{
- public int AA { get; set; }
-}
-
-class B
-{
- public int BB { get; set; }
-}
-
-static class ExtMethod
-{
- public static A Extension (this MyClass myClass)
- {
- return null;
- }
-}
-
-class MyClass
-{
- public B Extension {
- get;
- set;
- }
-}
-
-class MainClass
-{
- public static void Main (string[] args)
- {
- MyClass myClass;
- $myClass.Extension ().$
- }
-}
-");
- Assert.IsNotNull (provider, "provider not found.");
- Assert.IsNotNull (provider.Find ("AA"), "property 'AA' not found.");
- }
-
- /// <summary>
- /// Bug 555523 - C# code completion gets confused by extension methods with same names as properties
- /// </summary>
- [Test()]
- public void TestBug555523B ()
- {
- CompletionDataList provider = CreateProvider (
-@"
-class A
-{
- public int AA { get; set; }
-}
-
-class B
-{
- public int BB { get; set; }
-}
-
-static class ExtMethod
-{
- public static A Extension (this MyClass myClass)
- {
- return null;
- }
-}
-
-class MyClass
-{
- public B Extension {
- get;
- set;
- }
-}
-
-class MainClass
-{
- public static void Main (string[] args)
- {
- MyClass myClass;
- $myClass.Extension.$
- }
-}
-");
- Assert.IsNotNull (provider, "provider not found.");
- Assert.IsNotNull (provider.Find ("BB"), "property 'BB' not found.");
- }
-
-
- /// <summary>
- /// Bug 561964 - Wrong type in tooltip when there are two properties with the same name
- /// </summary>
- [Test()]
- public void TestBug561964 ()
- {
- CompletionDataList provider = CreateProvider (
-@"
-interface A1 {
- int A { get; }
-}
-interface A2 {
- int B { get; }
-}
-
-interface IFoo {
- A1 Bar { get; }
-}
-
-class Foo : IFoo
-{
- A1 IFoo.Bar { get { return null; } }
- public A2 Bar { get { return null; } }
-
- public static int Main (string[] args)
- {
- $new Foo().Bar.$
- }
-}
-");
- Assert.IsNotNull (provider, "provider not found.");
- Assert.IsNotNull (provider.Find ("B"), "property 'B' not found.");
- }
-
-
- /// <summary>
- /// Bug 568204 - Inconsistency in resolution
- /// </summary>
- [Test()]
- public void TestBug568204 ()
- {
- CompletionDataList provider = CreateProvider (
-@"
-public class Style
-{
- public static Style TestMe ()
- {
- return new Style ();
- }
-
- public void Print ()
- {
- System.Console.WriteLine (""Hello World!"");
- }
-}
-
-public class Foo
-{
- public Style Style { get; set;}
-
- public void Bar ()
- {
- $Style.TestMe ().$
- }
-}
-");
- Assert.IsNotNull (provider, "provider not found.");
- Assert.IsNotNull (provider.Find ("Print"), "method 'Print' not found.");
- }
-
- /// <summary>
- /// Bug 577225 - Inconsistent autocomplete on returned value of generic method.
- /// </summary>
- [Test()]
- public void TestBug577225 ()
- {
- CompletionDataList provider = CreateProvider (
-@"
-using Foo;
-
-namespace Foo
-{
- public class FooBar
- {
- public void Bar ()
- {
- }
- }
-}
-
-namespace Other
-{
- public class MainClass
- {
- public static T Test<T> ()
- {
- return default (T);
- }
-
- public static void Main (string[] args)
- {
- $Test<FooBar> ().$
- }
- }
-}
-");
- Assert.IsNotNull (provider, "provider not found.");
- Assert.IsNotNull (provider.Find ("Bar"), "method 'Bar' not found.");
- }
-
-
-
- /// <summary>
- /// Bug 582017 - C# Generic Type Constraints
- /// </summary>
- [Test()]
- public void TestBug582017 ()
- {
- CompletionDataList provider = CreateProvider (
-@"
-class Bar
-{
- public void MyMethod ()
- {
- }
-}
-
-class Foo
-{
- public static void Test<T> (T theObject) where T : Bar
- {
- $theObject.$
- }
-}
-");
- Assert.IsNotNull (provider, "provider not found.");
- Assert.IsNotNull (provider.Find ("MyMethod"), "method 'MyMethod' not found.");
- }
-
- /// <summary>
- /// Bug 586304 - Intellisense does not show several linq extenion methods when using nested generic type
- /// </summary>
- [Test()]
- public void TestBug586304 ()
- {
- CompletionDataList provider = CreateProvider (
-@"
-using System;
-using System.Collections.Generic;
-
-public static class ExtMethods
-{
- public static bool IsEmpty<T> (this IEnumerable<T> v)
- {
- return !v.Any ();
- }
-}
-
-public class Lazy<T> {}
-
-public class IntelliSenseProblems
-{
- public IEnumerable<Lazy<T>> GetLazies<T>()
- {
- return Enumerable.Empty<Lazy<T>>();
- }
-}
-
-public class Test
-{
- void test ()
- {
- var values = new IntelliSenseProblems ();
- $var x = values.GetLazies<string> ().$
- }
-}
-");
- Assert.IsNotNull (provider, "provider not found.");
- Assert.IsNotNull (provider.Find ("IsEmpty"), "method 'IsEmpty' not found.");
- }
-
- /// <summary>
- /// Bug 586304 - Intellisense does not show several linq extenion methods when using nested generic type
- /// </summary>
- [Test()]
- public void TestBug586304B ()
- {
- CompletionDataList provider = CreateProvider (
-@"
-public delegate S Func<T, S> (T t);
-
-public class Lazy<T> {
- public virtual bool IsLazy ()
- {
- return true;
- }
-}
-
-static class ExtMethods
-{
- public static T Where<T>(this Lazy<T> t, Func<T, bool> pred)
- {
- return default (T);
- }
-}
-
-class MyClass
-{
- public void Test()
- {
- Lazy<Lazy<MyClass>> c;
- $c.Where (x => x.$
- }
-}
-");
- Assert.IsNotNull (provider, "provider not found.");
- Assert.IsNull (provider.Find ("Test"), "method 'Test' found, but shouldn't.");
- Assert.IsNotNull (provider.Find ("IsLazy"), "method 'IsLazy' not found.");
- }
-
-
- /// <summary>
- /// Bug 587543 - Intellisense ignores interface constraints
- /// </summary>
- [Test()]
- public void TestBug587543 ()
- {
- CompletionDataList provider = CreateProvider (
-@"
-interface ITest
-{
- void Foo ();
-}
-
-class C
-{
- void Test<T> (T t) where T : ITest
- {
- $t.$
- }
-}
-");
- Assert.IsNotNull (provider, "provider not found.");
- Assert.IsNotNull (provider.Find ("Foo"), "method 'Foo' not found.");
- }
-
-
- /// <summary>
- /// Bug 587549 - Intellisense does not work with override constraints
- /// </summary>
- [Test()]
- public void TestBug587549 ()
- {
- CompletionDataList provider = CreateProvider (
-@"
-public interface ITest
-{
- void Bar();
-}
-
-public class BaseClass
-{
- public void Foo ()
- {}
-}
-
-public abstract class Printer
-{
- public abstract void Print<T, U> (object x) where T : BaseClass, U where U : ITest;
-}
-
-public class PrinterImpl : Printer
-{
- public override void Print<A, B> (object x)
- {
- A a;
- $a.$
- }
-}
-");
- Assert.IsNotNull (provider, "provider not found.");
- Assert.IsNotNull (provider.Find ("Foo"), "method 'Foo' not found.");
- Assert.IsNotNull (provider.Find ("Bar"), "method 'Bar' not found.");
- }
-
- /// <summary>
- /// Bug 588223 - Intellisense does not recognize nested generics correctly.
- /// </summary>
- [Test()]
- public void TestBug588223 ()
- {
- CompletionDataList provider = CreateProvider (
-@"
-class Lazy<T> { public void Foo () {} }
-class Lazy<T, S> { public void Bar () {} }
-
-class Test
-{
- public object Get ()
- {
- return null;
- }
-
- public Lazy<T> Get<T> ()
- {
- return null;
- }
-
- public Lazy<T, TMetaDataView> Get<T, TMetaDataView> ()
- {
- return null;
- }
-
- public Test ()
- {
- Test t = new Test ();
- var bug = t.Get<string, string> ();
- $bug.$
- }
-}
-");
- Assert.IsNotNull (provider, "provider not found.");
- Assert.IsNotNull (provider.Find ("Bar"), "method 'Bar' not found.");
- }
-
- /// <summary>
- /// Bug 592120 - Type resolver bug with this.Property[]
- /// </summary>
- [Test()]
- public void TestBug592120 ()
- {
- CompletionDataList provider = CreateProvider (
-@"
-
-interface IBar
-{
- void Test ();
-}
-
-class Foo
-{
- public IBar[] X { get; set; }
-
- public void Bar ()
- {
- var y = this.X;
- $y.$
- }
-}
-");
- Assert.IsNotNull (provider, "provider not found.");
- Assert.IsNull (provider.Find ("Test"), "method 'Test' found, but shouldn't.");
- }
-
-
- /// <summary>
- /// Bug 576354 - Type inference failure
- /// </summary>
- [Test()]
- public void TestBug576354 ()
- {
- CompletionDataList provider = CreateProvider (
-@"
-delegate T Func<S, T> (S s);
-
-class Foo
-{
- string str;
-
- public Foo (string str)
- {
- this.str = str;
- }
-
- public void Bar ()
- {
- System.Console.WriteLine (str);
- }
-}
-
-class MyTest
-{
- static T Test<T> (Func<string, T> myFunc)
- {
- return myFunc (""Hello World"");
- }
-
- public static void Main (string[] args)
- {
- var result = Test (str => new Foo (str));
- $result.$
- }
-}
-");
- Assert.IsNotNull (provider, "provider not found.");
- Assert.IsNotNull (provider.Find ("Bar"), "method 'Bar' not found.");
- }
-
- /// <summary>
- /// Bug 534680 - LINQ keywords missing from Intellisense
- /// </summary>
- [Test()]
- public void TestBug534680 ()
- {
- CompletionDataList provider = CreateProvider (
-@"
-class Foo
-{
- public static void Main (string[] args)
- {
- $from str in args $
- }
-}
-");
- Assert.IsNotNull (provider, "provider not found.");
- Assert.IsNotNull (provider.Find ("select"), "keyword 'select' not found.");
- }
-
- /// <summary>
- /// Bug 610006 - Intellisense gives members of return type of functions even when that function isn't invoked
- /// </summary>
- [Test()]
- public void TestBug610006 ()
- {
- CompletionDataList provider = CreateProvider (
-@"
-class MainClass
-{
- public MainClass FooBar ()
- {
- }
-
- public void Test ()
- {
- $FooBar.$
- }
-}
-");
- Assert.IsNotNull (provider, "provider not found.");
- Assert.IsNull (provider.Find ("FooBar"), "method 'FooBar' found, but shouldn't.");
- }
-
-
- /// <summary>
- /// Bug 614045 - Types hidden by members are not formatted properly by ambience
- /// </summary>
- [Test()]
- public void TestBug614045 ()
- {
- CompletionDataList provider = CreateProvider (
-@"
-namespace A
-{
- enum Foo
- {
- One,
- Two,
- Three
- }
-}
-
-namespace B
-{
- using A;
-
- public class Baz
- {
- public string Foo;
-
- void Test (Foo a)
- {
- $switch (a) {
- case $
- }
- }
-}
-");
- Assert.IsNotNull (provider, "provider not found.");
- Assert.IsNull (provider.Find ("Foo"), "enum 'Foo' found, but shouldn't.");
- Assert.IsNotNull (provider.Find ("A.Foo"), "enum 'A.Foo' not found.");
- }
-
- /// <summary>
- /// Bug 615992 - Intellisense broken when calling generic method.
- /// </summary>
- [Test()]
- public void TestBug615992 ()
- {
- CompletionDataList provider = CreateProvider (
-@"public delegate void Act<T> (T t);
-
-public class Foo
-{
- public void Bar ()
- {
- }
-}
-
-class TestBase
-{
- protected void Method<T> (Act<T> action)
- {
- }
-}
-
-class Test : TestBase
-{
- public Test ()
- {
- $Method<Foo> (f => f.$
- }
-}");
- Assert.IsNotNull (provider, "provider not found.");
- Assert.IsNotNull (provider.Find ("Bar"), "method 'Bar' not found.");
- }
-
- /// <summary>
- /// Bug 625064 - Internal classes aren't suggested for completion
- /// </summary>
- [Test()]
- public void TestBug625064 ()
- {
- CompletionDataList provider = CreateCtrlSpaceProvider (
-@"class Foo
-{
- class Bar { }
- $List<$
-}");
- Assert.IsNotNull (provider, "provider not found.");
- Assert.IsNotNull (provider.Find ("Bar"), "class 'Bar' not found.");
- }
-
-
- /// <summary>
- /// Bug 631875 - No Intellisense for arrays
- /// </summary>
- [Test()]
- public void TestBug631875 ()
- {
- CompletionDataList provider = CreateCtrlSpaceProvider (
-@"class C
-{
- static void Main ()
- {
- var objects = new[] { new { X = (object)null }};
- $objects[0].$
- }
-}
-");
- Assert.IsNotNull (provider, "provider not found.");
- Assert.IsNotNull (provider.Find ("X"), "property 'X' not found.");
- }
-
- /// <summary>
- /// Bug 632228 - Wrong var inference
- /// </summary>
- [Test()]
- public void TestBug632228 ()
- {
- CompletionDataList provider = CreateCtrlSpaceProvider (
-@"
-class C {
- public void FooBar () {}
- public static void Main ()
- {
- var thingToTest = new[] { new C (), 22, new object(), string.Empty, null };
- $thingToTest[0].$
- }
-}
-");
- Assert.IsNotNull (provider, "provider not found.");
- Assert.IsNull (provider.Find ("FooBar"), "method 'FooBar' found, but shouldn't.");
- }
-
- /// <summary>
- /// Bug 632696 - No intellisense for constraints
- /// </summary>
- [Test()]
- public void TestBug632696 ()
- {
- CompletionDataList provider = CreateCtrlSpaceProvider (
-@"
-class Program
-{
- void Foo ()
- {
- }
-
- static void Foo<T> () where T : Program
- {
- var s = new[] { default(T) };
- $s[0].$
- }
-}");
- Assert.IsNotNull (provider, "provider not found.");
- Assert.IsNotNull (provider.Find ("Foo"), "method 'Foo' not found.");
- }
-
- [Test()]
- public void TestCommentsWithWindowsEol ()
- {
- CompletionDataList provider = CreateCtrlSpaceProvider ("class TestClass\r\n{\r\npublic static void Main (string[] args) {\r\n// TestComment\r\n$args.$\r\n}\r\n}");
- Assert.IsNotNull (provider, "provider not found.");
- Assert.IsNotNull (provider.Find ("ToString"), "method 'ToString' not found.");
- }
-
- [Test()]
- public void TestGhostEntryBug ()
- {
- CompletionDataList provider = CreateCtrlSpaceProvider (
-@"
-using System.IO;
-
-class TestClass
-{
- public Path Path {
- get;
- set;
- }
-
- void Test ()
- {
- $$
- }
-}");
- Assert.IsNotNull (provider, "provider not found.");
- Assert.IsNull (provider.Find ("System.IO.Path"), "'System.IO.Path' found but shouldn't.");
- Assert.IsNotNull (provider.Find ("Path"), "property 'Path' not found.");
- }
-
-
- /// <summary>
- /// Bug 648562 – Abstract members are allowed by base call
- /// </summary>
- [Test()]
- public void TestBug648562 ()
- {
- CompletionDataList provider = CreateCtrlSpaceProvider (
-@"using System;
-
-abstract class A
-{
- public abstract void Foo<T> (T type);
-}
-
-class B : A
-{
- public override void Foo<U> (U type)
- {
- $base.$
- }
-}
-");
- Assert.IsNotNull (provider, "provider not found.");
- Assert.IsNull (provider.Find ("Foo"), "method 'Foo' found, but shouldn't.");
- }
-
- /// <summary>
- /// Bug 633767 - Wrong intellisense for simple lambda
- /// </summary>
- [Test()]
- public void TestBug633767 ()
- {
- CompletionDataList provider = CreateCtrlSpaceProvider (
-@"using System;
-
-public class E
-{
- public int Foo { get; set; }
-}
-
-public class C
-{
- delegate void D<T> (T t);
-
- static T M<T> (T t, D<T> a)
- {
- return t;
- }
-
- static void MethodArg (object o)
- {
- }
-
- public static int Main ()
- {
- D<object> action = l => Console.WriteLine (l);
- var b = M (new E (), action);
- $b.$
- }
-}");
- Assert.IsNotNull (provider, "provider not found.");
- Assert.IsNull (provider.Find ("Foo"), "property 'Foo' found, but shouldn't.");
- }
-
- /// <summary>
- /// Bug 616208 - Renaming a struct/class is renaming too much
- /// </summary>
- [Test()]
- public void TestBug616208 ()
- {
- CompletionDataList provider = CreateCtrlSpaceProvider (
-@"using System;
-
-namespace System
-{
- public class Foo { public int Bar; };
-}
-
-namespace test.Util
-{
- public class Foo { public string x; }
-}
-
-namespace Test
-{
- public class A
- {
- public Foo X;
-
- public A ()
- {
- $X.$
- }
- }
-}
-
-");
- Assert.IsNotNull (provider, "provider not found.");
- Assert.IsNotNull (provider.Find ("Bar"), "property 'Bar' not found.");
- }
-
- /// <summary>
- /// Bug 668135 - Problems with "new" completion
- /// </summary>
- [Test()]
- public void TestBug668135a ()
- {
- CompletionDataList provider = CreateCtrlSpaceProvider (
-@"public class A
-{
- public A ()
- {
- string test;
- $Console.WriteLine (test = new $
- }
-}
-");
- Assert.IsNotNull (provider, "provider not found.");
- Assert.IsNotNull (provider.Find ("string"), "class 'string' not found.");
- }
-
- /// <summary>
- /// Bug 668453 - var completion infers var type too eagerly
- /// </summary>
- [Test()]
- public void TestBug668453 ()
- {
- CompletionDataList provider = CreateCtrlSpaceProvider (
-@"public class Test
-{
- private void FooBar ()
- {
- $var str = new $
- FooBar ();
- }
-}
-
-");
- Assert.IsNotNull (provider, "provider not found.");
- Assert.IsNull (provider.Find ("FooBar"), "method 'FooBar' found.");
- }
-
- /// <summary>
- /// Bug 669285 - Extension method on T[] shows up on T
- /// </summary>
- [Test()]
- public void TestBug669285 ()
- {
- CompletionDataList provider = CreateCtrlSpaceProvider (
-@"static class Ext
-{
- public static void Foo<T> (this T[] t)
- {
- }
-}
-
-public class Test<T>
-{
- public void Foo ()
- {
- T t;
- $t.$
- }
-}
-");
- Assert.IsNotNull (provider, "provider not found.");
- Assert.IsNull (provider.Find ("Foo"), "method 'Foo' found.");
- provider = CreateCtrlSpaceProvider (
-@"static class Ext
-{
- public static void Foo<T> (this T[] t)
- {
- }
-}
-
-public class Test<T>
-{
- public void Foo ()
- {
- T[] t;
- $t.$
- }
-}
-");
- Assert.IsNotNull (provider, "provider not found.");
- Assert.IsNotNull (provider.Find ("Foo"), "method 'Foo' not found.");
- }
-
-
- /// <summary>
- /// Bug 669818 - Autocomplete missing for new nested class
- /// </summary>
- [Test()]
- public void TestBug669818 ()
- {
- CompletionDataList provider = CreateCtrlSpaceProvider (
-@"using System;
-public class Foo
-{
- public class Bar
- {
- }
- public static void FooBar () {}
-}
-class TestNested
-{
- public static void Main (string[] args)
- {
- $new Foo.$
- }
-}
-
-");
- Assert.IsNotNull (provider, "provider not found.");
- Assert.IsNotNull (provider.Find ("Bar"), "class 'Bar' not found.");
- Assert.IsNull (provider.Find ("FooBar"), "method 'FooBar' found.");
- }
-
- /// <summary>
- /// Bug 674514 - foreach value should not be in the completion list
- /// </summary>
- [Test()]
- public void TestBug674514 ()
- {
- CompletionDataList provider = CreateCtrlSpaceProvider (
-@"using System;
-using System.Linq;
-using System.Collections.Generic;
-
-class Foo
-{
- public static void Main (string[] args)
- {
- $foreach (var arg in $
- }
-}
-");
- Assert.IsNotNull (provider, "provider not found.");
- Assert.IsNotNull (provider.Find ("args"), "parameter 'args' not found.");
- Assert.IsNull (provider.Find ("arg"), "variable 'arg' found.");
-
- provider = CreateCtrlSpaceProvider (
-@"using System;
-using System.Linq;
-using System.Collections.Generic;
-
-class Foo
-{
- public static void Main (string[] args)
- {
- $foreach (var arg in args)
- Console.WriteLine ($
- }
-}
-");
- Assert.IsNotNull (provider, "provider not found.");
- Assert.IsNotNull (provider.Find ("args"), "parameter 'args' not found.");
- Assert.IsNotNull (provider.Find ("arg"), "variable 'arg' not found.");
- }
-
- /// <summary>
- /// Bug 675436 - Completion is trying to complete symbol names in declarations
- /// </summary>
- [Test()]
- public void TestBug675436_LocalVar ()
- {
- CompletionDataList provider = CreateCtrlSpaceProvider (
-@"class Test
-{
- public static void Main (string[] args)
- {
- $int test = $
- }
-}
-");
- Assert.IsNull (provider.Find ("test"), "name 'test' found.");
- }
-
- /// <summary>
- /// Bug 675956 - Completion in for loops is broken
- /// </summary>
- [Test()]
- public void TestBug675956 ()
- {
- CompletionDataList provider = CreateCtrlSpaceProvider (
-@"class Test
-{
- public static void Main (string[] args)
- {
- $for (int i = 0; $
- }
-}
-");
- Assert.IsNotNull (provider.Find ("i"), "variable 'i' not found.");
- }
-
- /// <summary>
- /// Bug 676311 - auto completion too few proposals in fluent API (Moq)
- /// </summary>
- [Test()]
- public void TestBug676311 ()
- {
- CompletionDataList provider = CreateCtrlSpaceProvider (
-@"using System;
-
-namespace Test
-{
- public interface IFoo<T>
- {
- void Foo1 ();
- }
-
- public interface IFoo<T, S>
- {
- void Foo2 ();
- }
-
- public class Test<T>
- {
- public IFoo<T> TestMe (Expression<Action<T>> act)
- {
- return null;
- }
-
- public IFoo<T, S> TestMe<S> (Expression<Func<S, T>> func)
- {
- return null;
- }
-
- public string TestMethod (string str)
- {
- return str;
- }
- }
-
- class MainClass
- {
- public static void Main (string[] args)
- {
- var t = new Test<string> ();
- var s = t.TestMe (x => t.TestMethod (x));
- $s.$
- }
- }
-}");
- Assert.IsNotNull (provider.Find ("Foo2"), "method 'Foo2' not found.");
- }
-
- /// <summary>
- /// Bug 676311 - auto completion too few proposals in fluent API (Moq)
- /// </summary>
- [Test()]
- public void TestBug676311_Case2 ()
- {
- CompletionDataList provider = CreateCtrlSpaceProvider (
-@"using System;
-using System.Linq.Expressions;
-
-namespace Test
-{
- public interface IFoo<T>
- {
- void Foo1 ();
- }
-
- public interface IFoo<T, S>
- {
- void Foo2 ();
- }
-
- public class Test<T>
- {
- public IFoo<T> TestMe (Expression<Action<T>> act)
- {
- return null;
- }
-
- public IFoo<T, S> TestMe<S> (Expression<Func<S, T>> func)
- {
- return null;
- }
-
- public void TestMethod (string str)
- {
- }
- }
-
- class MainClass
- {
- public static void Main (string[] args)
- {
- var t = new Test<string> ();
- var s = t.TestMe (x => t.TestMethod (x));
- $s.$
- }
- }
-}");
- Assert.IsNotNull (provider.Find ("Foo1"), "method 'Foo2' not found.");
- }
-
- /// <summary>
- /// Bug 678340 - Cannot infer types from Dictionary<K,V>.Values
- /// </summary>
- [Test()]
- public void TestBug678340 ()
- {
- CompletionDataList provider = CreateCtrlSpaceProvider (
-@"using System;
-using System.Collections.Generic;
-
-public class Test
-{
- public void SomeMethod ()
- {
- var foo = new Dictionary<string,Test> ();
- foreach (var bar in foo.Values) {
+ [Test()]
+ public void TestBug471935 ()
+ {
+ CompletionDataList provider = CreateCtrlSpaceProvider (
+@"
+public class AClass
+{
+ public AClass Test ()
+ {
+ if (true) {
+ AClass data;
+ $data.$
+ return data;
+ } else if (false) {
+ AClass data;
+ return data;
+ }
+ return null;
+ }
+}
+");
+ Assert.IsNotNull (provider, "provider not found.");
+
+ Assert.IsNotNull (provider.Find ("Test"), "method 'Test' not found");
+ }
+
+ /// <summary>
+ /// Bug 471937 - Code completion of 'new' showing invorrect entries
+ /// </summary>
+ [Test()]
+ public void TestBug471937 ()
+ {
+ CompletionDataList provider = CreateCtrlSpaceProvider (
+@"
+class B
+{
+}
+
+class A
+{
+ public void Test()
+ {
+ int i = 5;
+ i += 5;
+ $A a = new $
+ }
+}
+");
+ Assert.IsNotNull (provider, "provider not found.");
+
+ Assert.IsNull (provider.Find ("B"), "class 'B' found, but shouldn'tj.");
+ }
+
+ /// <summary>
+ /// Bug 473686 - Constants are not included in code completion
+ /// </summary>
+ [Test()]
+ public void TestBug473686 ()
+ {
+ CompletionDataList provider = CreateCtrlSpaceProvider (
+@"
+class ATest
+{
+ const int TESTCONST = 0;
+
+ static void Test()
+ {
+ $$
+ }
+}
+");
+ Assert.IsNotNull (provider, "provider not found.");
+
+ Assert.IsNotNull (provider.Find ("TESTCONST"), "constant 'TESTCONST' not found.");
+ }
+
+ /// <summary>
+ /// Bug 473849 - Classes with no visible constructor shouldn't appear in "new" completion
+ /// </summary>
+ [Test()]
+ public void TestBug473849 ()
+ {
+ CompletionDataList provider = CreateProvider (
+@"
+class TestB
+{
+ protected TestB()
+ {
+ }
+}
+
+class TestC : TestB
+{
+ internal TestC ()
+ {
+ }
+}
+
+class TestD : TestB
+{
+ public TestD ()
+ {
+ }
+}
+
+class TestE : TestD
+{
+ protected TestE ()
+ {
+ }
+}
+
+class Test : TestB
+{
+ void TestMethod ()
+ {
+ $TestB test = new $
+ }
+}
+");
+ Assert.IsNotNull (provider, "provider not found.");
+
+ Assert.IsNull (provider.Find ("TestE"), "class 'TestE' found, but shouldn't.");
+ Assert.IsNotNull (provider.Find ("TestD"), "class 'TestD' not found");
+ Assert.IsNotNull (provider.Find ("TestC"), "class 'TestC' not found");
+ Assert.IsNotNull (provider.Find ("TestB"), "class 'TestB' not found");
+ Assert.IsNotNull (provider.Find ("Test"), "class 'Test' not found");
+ }
+
+ /// <summary>
+ /// Bug 474199 - Code completion not working for a nested class
+ /// </summary>
+ [Test()]
+ public void TestBug474199A ()
+ {
+ CompletionDataList provider = CreateProvider (
+@"
+public class InnerTest
+{
+ public class Inner
+ {
+ public void Test()
+ {
+ }
+ }
+}
+
+public class ExtInner : InnerTest
+{
+}
+
+class Test
+{
+ public void TestMethod ()
+ {
+ var inner = new ExtInner.Inner ();
+ $inner.$
+ }
+}
+");
+ Assert.IsNotNull (provider, "provider not found.");
+ Assert.IsNotNull (provider.Find ("Test"), "method 'Test' not found");
+ }
+
+ /// <summary>
+ /// Bug 474199 - Code completion not working for a nested class
+ /// </summary>
+ [Test()]
+ public void TestBug474199B ()
+ {
+ IParameterDataProvider provider = ParameterCompletionTests.CreateProvider (
+@"
+public class InnerTest
+{
+ public class Inner
+ {
+ public Inner(string test)
+ {
+ }
+ }
+}
+
+public class ExtInner : InnerTest
+{
+}
+
+class Test
+{
+ public void TestMethod ()
+ {
+ $new ExtInner.Inner ($
+ }
+}
+");
+ Assert.IsNotNull (provider, "provider not found.");
+ Assert.AreEqual (1, provider.OverloadCount, "There should be one overload");
+ Assert.AreEqual (1, provider.GetParameterCount(0), "Parameter 'test' should exist");
+ }
+
+ /// <summary>
+ /// Bug 350862 - Autocomplete bug with enums
+ /// </summary>
+ [Test()]
+ public void TestBug350862 ()
+ {
+ CompletionDataList provider = CreateProvider (
+@"
+public enum MyEnum {
+ A,
+ B,
+ C
+}
+
+public class Test
+{
+ MyEnum item;
+ public void Method (MyEnum val)
+ {
+ $item = $
+ }
+}
+
+");
+ Assert.IsNotNull (provider, "provider not found.");
+
+ Assert.IsNotNull (provider.Find ("val"), "parameter 'val' not found");
+ }
+
+ /// <summary>
+ /// Bug 470954 - using System.Windows.Forms is not honored
+ /// </summary>
+ [Test()]
+ public void TestBug470954 ()
+ {
+ CompletionDataList provider = CreateProvider (
+@"
+public class Control
+{
+ public MouseButtons MouseButtons { get; set; }
+}
+
+public enum MouseButtons {
+ Left, Right
+}
+
+public class SomeControl : Control
+{
+ public void Run ()
+ {
+ $MouseButtons m = MouseButtons.$
+ }
+}
+");
+ Assert.IsNotNull (provider, "provider not found.");
+
+ Assert.IsNotNull (provider.Find ("Left"), "enum 'Left' not found");
+ Assert.IsNotNull (provider.Find ("Right"), "enum 'Right' not found");
+ }
+
+ /// <summary>
+ /// Bug 470954 - using System.Windows.Forms is not honored
+ /// </summary>
+ [Test()]
+ public void TestBug470954_bis ()
+ {
+ CompletionDataList provider = CreateProvider (
+@"
+public class Control
+{
+ public string MouseButtons { get; set; }
+}
+
+public enum MouseButtons {
+ Left, Right
+}
+
+public class SomeControl : Control
+{
+ public void Run ()
+ {
+ $int m = MouseButtons.$
+ }
+}
+");
+ Assert.IsNotNull (provider, "provider not found.");
+
+ Assert.IsNull (provider.Find ("Left"), "enum 'Left' found");
+ Assert.IsNull (provider.Find ("Right"), "enum 'Right' found");
+ }
+
+ /// <summary>
+ /// Bug 487236 - Object initializer completion uses wrong type
+ /// </summary>
+ [Test()]
+ public void TestBug487236 ()
+ {
+ CompletionDataList provider = CreateCtrlSpaceProvider (
+@"
+public class A
+{
+ public string Name { get; set; }
+}
+
+class MyTest
+{
+ public void Test ()
+ {
+ $var x = new A () { $
+ }
+}
+");
+ Assert.IsNotNull (provider, "provider not found.");
+
+ Assert.IsNotNull (provider.Find ("Name"), "property 'Name' not found.");
+ }
+
+ /// <summary>
+ /// Bug 487236 - Object initializer completion uses wrong type
+ /// </summary>
+ [Test()]
+ public void TestBug487236B ()
+ {
+ CompletionDataList provider = CreateCtrlSpaceProvider (
+@"
+public class A
+{
+ public string Name { get; set; }
+}
+
+class MyTest
+{
+ public void Test ()
+ {
+ $A x = new NotExists () { $
+ }
+}
+");
+ Assert.IsNotNull (provider, "provider not found.");
+
+ Assert.IsNull (provider.Find ("Name"), "property 'Name' found, but shouldn't'.");
+ }
+
+ /// <summary>
+ /// Bug 487228 - No intellisense for implicit arrays
+ /// </summary>
+ [Test()]
+ public void TestBug487228 ()
+ {
+ CompletionDataList provider = CreateProvider (
+@"
+public class Test
+{
+ public void Method ()
+ {
+ var v = new [] { new Test () };
+ $v[0].$
+ }
+}
+");
+ Assert.IsNotNull (provider, "provider not found.");
+
+ Assert.IsNotNull (provider.Find ("Method"), "method 'Method' not found");
+ }
+
+ /// <summary>
+ /// Bug 487218 - var does not work with arrays
+ /// </summary>
+ [Test()]
+ public void TestBug487218 ()
+ {
+ CompletionDataList provider = CreateProvider (
+@"
+public class Test
+{
+ public void Method ()
+ {
+ var v = new Test[] { new Test () };
+ $v[0].$
+ }
+}
+");
+ Assert.IsNotNull (provider, "provider not found.");
+
+ Assert.IsNotNull (provider.Find ("Method"), "method 'Method' not found");
+ }
+
+ /// <summary>
+ /// Bug 487206 - Intellisense not working
+ /// </summary>
+ [Test()]
+ public void TestBug487206 ()
+ {
+ CompletionDataList provider = CreateProvider (
+@"
+class CastByExample
+{
+ static T Cast<T> (object obj, T type)
+ {
+ return (T) obj;
+ }
+
+ static void Main ()
+ {
+ var typed = Cast (o, new { Foo = 5 });
+ $typed.$
+ }
+}");
+ Assert.IsNotNull (provider, "provider not found.");
+
+ Assert.IsNotNull (provider.Find ("Foo"), "property 'Foo' not found");
+ }
+
+ /// <summary>
+ /// Bug 487203 - Extension methods not working
+ /// </summary>
+ [Test()]
+ public void TestBug487203 ()
+ {
+ CompletionDataList provider = CreateProvider (
+@"
+using System;
+using System.Collections.Generic;
+
+static class Linq
+{
+ public static IEnumerable<T> Select<S, T> (this IEnumerable<S> collection, Func<S, T> func)
+ {
+ }
+}
+
+class Program
+{
+ public void Foo ()
+ {
+ Program[] prgs;
+ foreach (var prg in (from Program p in prgs select p)) {
+ $prg.$
+ }
+ }
+}
+");
+ Assert.IsNotNull (provider, "provider not found.");
+ Assert.IsNotNull (provider.Find ("Foo"), "method 'Foo' not found");
+ }
+
+ /// <summary>
+ /// Bug 491020 - Wrong typeof intellisense
+ /// </summary>
+ [Test()]
+ public void TestBug491020 ()
+ {
+ CompletionDataList provider = CreateProvider (
+@"
+public class EventClass<T>
+{
+ public class Inner {}
+ public delegate void HookDelegate (T del);
+ public void Method ()
+ {}
+}
+
+public class Test
+{
+ public static void Main ()
+ {
+ $EventClass<int>.$
+ }
+}
+");
+ Assert.IsNotNull (provider, "provider not found.");
+ Assert.IsNotNull (provider.Find ("Inner"), "class 'Inner' not found.");
+ Assert.IsNotNull (provider.Find ("HookDelegate"), "delegate 'HookDelegate' not found.");
+ Assert.IsNull (provider.Find ("Method"), "method 'Method' found, but shouldn't.");
+ }
+
+ /// <summary>
+ /// Bug 491020 - Wrong typeof intellisense
+ /// It's a different case when the class is inside a namespace.
+ /// </summary>
+ [Test()]
+ public void TestBug491020B ()
+ {
+ CompletionDataList provider = CreateProvider (
+@"
+
+namespace A {
+ public class EventClass<T>
+ {
+ public class Inner {}
+ public delegate void HookDelegate (T del);
+ public void Method ()
+ {}
+ }
+}
+
+public class Test
+{
+ public static void Main ()
+ {
+ $A.EventClass<int>.$
+ }
+}
+");
+ Assert.IsNotNull (provider, "provider not found.");
+ Assert.IsNotNull (provider.Find ("Inner"), "class 'Inner' not found.");
+ Assert.IsNotNull (provider.Find ("HookDelegate"), "delegate 'HookDelegate' not found.");
+ Assert.IsNull (provider.Find ("Method"), "method 'Method' found, but shouldn't.");
+ }
+
+ /// <summary>
+ /// Bug 491019 - No intellisense for recursive generics
+ /// </summary>
+ [Test()]
+ public void TestBug491019 ()
+ {
+ CompletionDataList provider = CreateProvider (
+@"
+public abstract class NonGenericBase
+{
+ public abstract int this[int i] { get; }
+}
+
+public abstract class GenericBase<T> : NonGenericBase where T : GenericBase<T>
+{
+ T Instance { get { return default (T); } }
+
+ public void Foo ()
+ {
+ $Instance.Instance.$
+ }
+}
+");
+ Assert.IsNotNull (provider, "provider not found.");
+ Assert.IsNotNull (provider.Find ("Instance"), "property 'Instance' not found.");
+ Assert.IsNull (provider.Find ("this"), "'this' found, but shouldn't.");
+ }
+
+
+
+ /// <summary>
+ /// Bug 429034 - Class alias completion not working properly
+ /// </summary>
+ [Test()]
+ public void TestBug429034 ()
+ {
+ CompletionDataList provider = CreateCtrlSpaceProvider (
+@"
+using Path = System.IO.Path;
+
+class Test
+{
+ void Test ()
+ {
+ $$
+ }
+}
+");
+ Assert.IsNotNull (provider, "provider not found.");
+ Assert.IsNotNull (provider.Find ("Path"), "class 'Path' not found.");
+ }
+
+ /// <summary>
+ /// Bug 429034 - Class alias completion not working properly
+ /// </summary>
+ [Test()]
+ public void TestBug429034B ()
+ {
+ CompletionDataList provider = CreateProvider (
+@"
+using Path = System.IO.Path;
+
+class Test
+{
+ void Test ()
+ {
+ $Path.$
+ }
+}
+");
+ Assert.IsNotNull (provider, "provider not found.");
+ Assert.IsNotNull (provider.Find ("DirectorySeparatorChar"), "method 'PathTest' not found.");
+ }
+
+ [Test()]
+ public void TestInvalidCompletion ()
+ {
+ CompletionDataList provider = CreateProvider (
+@"
+class TestClass
+{
+ public void TestMethod ()
+ {
+ }
+}
+
+class Test
+{
+ public void Foo ()
+ {
+ TestClass tc;
+ $tc.garbage.$
+ }
+}
+");
+ Assert.IsNotNull (provider, "provider not found.");
+ Assert.IsNull (provider.Find ("TestMethod"), "method 'TestMethod' found, but shouldn't.");
+ }
+
+ /// <summary>
+ /// Bug 510919 - Code completion does not show interface method when not using a local var
+ /// </summary>
+ [Test()]
+ public void TestBug510919 ()
+ {
+ CompletionDataList provider = CreateProvider (
+@"
+public class Foo : IFoo
+{
+ public void Bar () { }
+}
+
+public interface IFoo
+{
+ void Bar ();
+}
+
+public class Program
+{
+ static IFoo GiveMeFoo ()
+ {
+ return new Foo ();
+ }
+
+ static void Main ()
+ {
+ $GiveMeFoo ().$
+ }
+}
+");
+ Assert.IsNotNull (provider, "provider not found.");
+ Assert.IsNotNull (provider.Find ("Bar"), "method 'Bar' not found.");
+ }
+
+
+ /// <summary>
+ /// Bug 526667 - wrong code completion in object initialisation (new O() {...};)
+ /// </summary>
+ [Test()]
+ public void TestBug526667 ()
+ {
+ CompletionDataList provider = CreateCtrlSpaceProvider (
+@"
+using System;
+using System.Collections.Generic;
+
+public class O
+{
+ public string X {
+ get;
+ set;
+ }
+ public string Y {
+ get;
+ set;
+ }
+ public List<string> Z {
+ get;
+ set;
+ }
+
+ public static O A ()
+ {
+ return new O {
+ X = ""x"",
+ Z = new List<string> (new string[] {
+ ""abc"",
+ ""def""
+ })
+ $, $
+ };
+ }
+}
+");
+ Assert.IsNotNull (provider, "provider not found.");
+ Assert.IsNotNull (provider.Find ("Y"), "property 'Y' not found.");
+ }
+
+
+
+ /// <summary>
+ /// Bug 538208 - Go to declaration not working over a generic method...
+ /// </summary>
+ [Test()]
+ public void TestBug538208 ()
+ {
+ // We've to test 2 expressions for this bug. Since there are 2 ways of accessing
+ // members.
+ // First: the identifier expression
+ CompletionDataList provider = CreateCtrlSpaceProvider (
+@"
+class MyClass
+{
+ public string Test { get; set; }
+
+ T foo<T>(T arg)
+ {
+ return arg;
+ }
+
+ public void Main(string[] args)
+ {
+ var myObject = foo<MyClass>(new MyClass());
+ $myObject.$
+ }
+}
+");
+ Assert.IsNotNull (provider, "provider not found.");
+ Assert.IsNotNull (provider.Find ("Test"), "property 'Test' not found.");
+
+ // now the member reference expression
+ provider = CreateCtrlSpaceProvider (
+@"
+class MyClass2
+{
+ public string Test { get; set; }
+
+ T foo<T>(T arg)
+ {
+ return arg;
+ }
+
+ public void Main(string[] args)
+ {
+ var myObject = this.foo<MyClass2>(new MyClass2());
+ $myObject.$
+ }
+}
+");
+ Assert.IsNotNull (provider, "provider not found.");
+ Assert.IsNotNull (provider.Find ("Test"), "property 'Test' not found.");
+ }
+
+ /// <summary>
+ /// Bug 542976 resolution problem
+ /// </summary>
+ [Test()]
+ public void TestBug542976 ()
+ {
+ CompletionDataList provider = CreateProvider (
+@"
+class KeyValuePair<S, T>
+{
+ public S Key { get; set;}
+ public T Value { get; set;}
+}
+
+class TestMe<T> : System.Collections.Generic.IEnumerable<T>
+{
+ public System.Collections.Generic.IEnumerator<T> GetEnumerator ()
+ {
+ throw new System.NotImplementedException();
+ }
+
+ System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator ()
+ {
+ throw new System.NotImplementedException();
+ }
+}
+
+namespace TestMe
+{
+ class Bar
+ {
+ public int Field;
+ }
+
+ class Test
+ {
+ void Foo (TestMe<KeyValuePair<Bar, int>> things)
+ {
+ foreach (var thing in things) {
+ $thing.Key.$
+ }
+ }
+ }
+}
+");
+ Assert.IsNotNull (provider, "provider not found.");
+ Assert.IsNotNull (provider.Find ("Field"), "field 'Field' not found.");
+ }
+
+
+ /// <summary>
+ /// Bug 545189 - C# resolver bug
+ /// </summary>
+ [Test()]
+ public void TestBug545189A ()
+ {
+ CompletionDataList provider = CreateProvider (
+@"
+class A<T>
+{
+ class B
+ {
+ public T field;
+ }
+}
+
+public class Foo
+{
+ public void Bar ()
+ {
+ A<Foo>.B baz = new A<Foo>.B ();
+ $baz.field.$
+ }
+}
+");
+ Assert.IsNotNull (provider, "provider not found.");
+ Assert.IsNotNull (provider.Find ("Bar"), "method 'Bar' not found.");
+ }
+
+ /// <summary>
+ /// Bug 549864 - Intellisense does not work properly with expressions
+ /// </summary>
+ [Test()]
+ public void TestBug549864 ()
+ {
+ CompletionDataList provider = CreateProvider (
+@"
+delegate T MyFunc<S, T> (S t);
+
+class TestClass
+{
+ public string Value {
+ get;
+ set;
+ }
+
+ public static object GetProperty<TType> (MyFunc<TType, object> expression)
+ {
+ return null;
+ }
+ private static object ValueProperty = TestClass.GetProperty<TestClass> ($x => x.$);
+}
+");
+ Assert.IsNotNull (provider, "provider not found.");
+ Assert.IsNotNull (provider.Find ("Value"), "property 'Value' not found.");
+ }
+
+
+ /// <summary>
+ /// Bug 550185 - Intellisence for extension methods
+ /// </summary>
+ [Test()]
+ public void TestBug550185 ()
+ {
+ CompletionDataList provider = CreateProvider (
+@"
+public interface IMyinterface<T> {
+ T Foo ();
+}
+
+public static class ExtMethods {
+ public static int MyCountMethod(this IMyinterface<string> i)
+ {
+ return 0;
+ }
+}
+
+class TestClass
+{
+ void Test ()
+ {
+ IMyinterface<int> test;
+ $test.$
+ }
+}
+
+");
+ Assert.IsNotNull (provider, "provider not found.");
+ Assert.IsNull (provider.Find ("MyCountMet2hod"), "method 'MyCountMethod' found, but shouldn't.");
+ }
+
+
+ /// <summary>
+ /// Bug 553101 – Enum completion does not use type aliases
+ /// </summary>
+ [Test()]
+ public void TestBug553101 ()
+ {
+ CompletionDataList provider = CreateProvider (
+@"
+namespace Some.Type
+{
+ public enum Name { Foo, Bar }
+}
+
+namespace Test
+{
+ using STN = Some.Type.Name;
+
+ public class Main
+ {
+ public void TestMe ()
+ {
+ $STN foo = $
+ }
+ }
+}
+");
+ Assert.IsNotNull (provider, "provider not found.");
+ }
+
+ /// <summary>
+ /// Bug 555523 - C# code completion gets confused by extension methods with same names as properties
+ /// </summary>
+ [Test()]
+ public void TestBug555523A ()
+ {
+ CompletionDataList provider = CreateProvider (
+@"
+class A
+{
+ public int AA { get; set; }
+}
+
+class B
+{
+ public int BB { get; set; }
+}
+
+static class ExtMethod
+{
+ public static A Extension (this MyClass myClass)
+ {
+ return null;
+ }
+}
+
+class MyClass
+{
+ public B Extension {
+ get;
+ set;
+ }
+}
+
+class MainClass
+{
+ public static void Main (string[] args)
+ {
+ MyClass myClass;
+ $myClass.Extension ().$
+ }
+}
+");
+ Assert.IsNotNull (provider, "provider not found.");
+ Assert.IsNotNull (provider.Find ("AA"), "property 'AA' not found.");
+ }
+
+ /// <summary>
+ /// Bug 555523 - C# code completion gets confused by extension methods with same names as properties
+ /// </summary>
+ [Test()]
+ public void TestBug555523B ()
+ {
+ CompletionDataList provider = CreateProvider (
+@"
+class A
+{
+ public int AA { get; set; }
+}
+
+class B
+{
+ public int BB { get; set; }
+}
+
+static class ExtMethod
+{
+ public static A Extension (this MyClass myClass)
+ {
+ return null;
+ }
+}
+
+class MyClass
+{
+ public B Extension {
+ get;
+ set;
+ }
+}
+
+class MainClass
+{
+ public static void Main (string[] args)
+ {
+ MyClass myClass;
+ $myClass.Extension.$
+ }
+}
+");
+ Assert.IsNotNull (provider, "provider not found.");
+ Assert.IsNotNull (provider.Find ("BB"), "property 'BB' not found.");
+ }
+
+
+ /// <summary>
+ /// Bug 561964 - Wrong type in tooltip when there are two properties with the same name
+ /// </summary>
+ [Test()]
+ public void TestBug561964 ()
+ {
+ CompletionDataList provider = CreateProvider (
+@"
+interface A1 {
+ int A { get; }
+}
+interface A2 {
+ int B { get; }
+}
+
+interface IFoo {
+ A1 Bar { get; }
+}
+
+class Foo : IFoo
+{
+ A1 IFoo.Bar { get { return null; } }
+ public A2 Bar { get { return null; } }
+
+ public static int Main (string[] args)
+ {
+ $new Foo().Bar.$
+ }
+}
+");
+ Assert.IsNotNull (provider, "provider not found.");
+ Assert.IsNotNull (provider.Find ("B"), "property 'B' not found.");
+ }
+
+
+ /// <summary>
+ /// Bug 568204 - Inconsistency in resolution
+ /// </summary>
+ [Test()]
+ public void TestBug568204 ()
+ {
+ CompletionDataList provider = CreateProvider (
+@"
+public class Style
+{
+ public static Style TestMe ()
+ {
+ return new Style ();
+ }
+
+ public void Print ()
+ {
+ System.Console.WriteLine (""Hello World!"");
+ }
+}
+
+public class Foo
+{
+ public Style Style { get; set;}
+
+ public void Bar ()
+ {
+ $Style.TestMe ().$
+ }
+}
+");
+ Assert.IsNotNull (provider, "provider not found.");
+ Assert.IsNotNull (provider.Find ("Print"), "method 'Print' not found.");
+ }
+
+ /// <summary>
+ /// Bug 577225 - Inconsistent autocomplete on returned value of generic method.
+ /// </summary>
+ [Test()]
+ public void TestBug577225 ()
+ {
+ CompletionDataList provider = CreateProvider (
+@"
+using Foo;
+
+namespace Foo
+{
+ public class FooBar
+ {
+ public void Bar ()
+ {
+ }
+ }
+}
+
+namespace Other
+{
+ public class MainClass
+ {
+ public static T Test<T> ()
+ {
+ return default (T);
+ }
+
+ public static void Main (string[] args)
+ {
+ $Test<FooBar> ().$
+ }
+ }
+}
+");
+ Assert.IsNotNull (provider, "provider not found.");
+ Assert.IsNotNull (provider.Find ("Bar"), "method 'Bar' not found.");
+ }
+
+
+
+ /// <summary>
+ /// Bug 582017 - C# Generic Type Constraints
+ /// </summary>
+ [Test()]
+ public void TestBug582017 ()
+ {
+ CompletionDataList provider = CreateProvider (
+@"
+class Bar
+{
+ public void MyMethod ()
+ {
+ }
+}
+
+class Foo
+{
+ public static void Test<T> (T theObject) where T : Bar
+ {
+ $theObject.$
+ }
+}
+");
+ Assert.IsNotNull (provider, "provider not found.");
+ Assert.IsNotNull (provider.Find ("MyMethod"), "method 'MyMethod' not found.");
+ }
+
+ /// <summary>
+ /// Bug 586304 - Intellisense does not show several linq extenion methods when using nested generic type
+ /// </summary>
+ [Test()]
+ public void TestBug586304 ()
+ {
+ CompletionDataList provider = CreateProvider (
+@"
+using System;
+using System.Collections.Generic;
+
+public static class ExtMethods
+{
+ public static bool IsEmpty<T> (this IEnumerable<T> v)
+ {
+ return !v.Any ();
+ }
+}
+
+public class Lazy<T> {}
+
+public class IntelliSenseProblems
+{
+ public IEnumerable<Lazy<T>> GetLazies<T>()
+ {
+ return Enumerable.Empty<Lazy<T>>();
+ }
+}
+
+public class Test
+{
+ void test ()
+ {
+ var values = new IntelliSenseProblems ();
+ $var x = values.GetLazies<string> ().$
+ }
+}
+");
+ Assert.IsNotNull (provider, "provider not found.");
+ Assert.IsNotNull (provider.Find ("IsEmpty"), "method 'IsEmpty' not found.");
+ }
+
+ /// <summary>
+ /// Bug 586304 - Intellisense does not show several linq extenion methods when using nested generic type
+ /// </summary>
+ [Test()]
+ public void TestBug586304B ()
+ {
+ CompletionDataList provider = CreateProvider (
+@"
+public delegate S Func<T, S> (T t);
+
+public class Lazy<T> {
+ public virtual bool IsLazy ()
+ {
+ return true;
+ }
+}
+
+static class ExtMethods
+{
+ public static T Where<T>(this Lazy<T> t, Func<T, bool> pred)
+ {
+ return default (T);
+ }
+}
+
+class MyClass
+{
+ public void Test()
+ {
+ Lazy<Lazy<MyClass>> c;
+ $c.Where (x => x.$
+ }
+}
+");
+ Assert.IsNotNull (provider, "provider not found.");
+ Assert.IsNull (provider.Find ("Test"), "method 'Test' found, but shouldn't.");
+ Assert.IsNotNull (provider.Find ("IsLazy"), "method 'IsLazy' not found.");
+ }
+
+
+ /// <summary>
+ /// Bug 587543 - Intellisense ignores interface constraints
+ /// </summary>
+ [Test()]
+ public void TestBug587543 ()
+ {
+ CompletionDataList provider = CreateProvider (
+@"
+interface ITest
+{
+ void Foo ();
+}
+
+class C
+{
+ void Test<T> (T t) where T : ITest
+ {
+ $t.$
+ }
+}
+");
+ Assert.IsNotNull (provider, "provider not found.");
+ Assert.IsNotNull (provider.Find ("Foo"), "method 'Foo' not found.");
+ }
+
+
+ /// <summary>
+ /// Bug 587549 - Intellisense does not work with override constraints
+ /// </summary>
+ [Test()]
+ public void TestBug587549 ()
+ {
+ CompletionDataList provider = CreateProvider (
+@"
+public interface ITest
+{
+ void Bar();
+}
+
+public class BaseClass
+{
+ public void Foo ()
+ {}
+}
+
+public abstract class Printer
+{
+ public abstract void Print<T, U> (object x) where T : BaseClass, U where U : ITest;
+}
+
+public class PrinterImpl : Printer
+{
+ public override void Print<A, B> (object x)
+ {
+ A a;
+ $a.$
+ }
+}
+");
+ Assert.IsNotNull (provider, "provider not found.");
+ Assert.IsNotNull (provider.Find ("Foo"), "method 'Foo' not found.");
+ Assert.IsNotNull (provider.Find ("Bar"), "method 'Bar' not found.");
+ }
+
+ /// <summary>
+ /// Bug 588223 - Intellisense does not recognize nested generics correctly.
+ /// </summary>
+ [Test()]
+ public void TestBug588223 ()
+ {
+ CompletionDataList provider = CreateProvider (
+@"
+class Lazy<T> { public void Foo () {} }
+class Lazy<T, S> { public void Bar () {} }
+
+class Test
+{
+ public object Get ()
+ {
+ return null;
+ }
+
+ public Lazy<T> Get<T> ()
+ {
+ return null;
+ }
+
+ public Lazy<T, TMetaDataView> Get<T, TMetaDataView> ()
+ {
+ return null;
+ }
+
+ public Test ()
+ {
+ Test t = new Test ();
+ var bug = t.Get<string, string> ();
+ $bug.$
+ }
+}
+");
+ Assert.IsNotNull (provider, "provider not found.");
+ Assert.IsNotNull (provider.Find ("Bar"), "method 'Bar' not found.");
+ }
+
+ /// <summary>
+ /// Bug 592120 - Type resolver bug with this.Property[]
+ /// </summary>
+ [Test()]
+ public void TestBug592120 ()
+ {
+ CompletionDataList provider = CreateProvider (
+@"
+
+interface IBar
+{
+ void Test ();
+}
+
+class Foo
+{
+ public IBar[] X { get; set; }
+
+ public void Bar ()
+ {
+ var y = this.X;
+ $y.$
+ }
+}
+");
+ Assert.IsNotNull (provider, "provider not found.");
+ Assert.IsNull (provider.Find ("Test"), "method 'Test' found, but shouldn't.");
+ }
+
+
+ /// <summary>
+ /// Bug 576354 - Type inference failure
+ /// </summary>
+ [Test()]
+ public void TestBug576354 ()
+ {
+ CompletionDataList provider = CreateProvider (
+@"
+delegate T Func<S, T> (S s);
+
+class Foo
+{
+ string str;
+
+ public Foo (string str)
+ {
+ this.str = str;
+ }
+
+ public void Bar ()
+ {
+ System.Console.WriteLine (str);
+ }
+}
+
+class MyTest
+{
+ static T Test<T> (Func<string, T> myFunc)
+ {
+ return myFunc (""Hello World"");
+ }
+
+ public static void Main (string[] args)
+ {
+ var result = Test (str => new Foo (str));
+ $result.$
+ }
+}
+");
+ Assert.IsNotNull (provider, "provider not found.");
+ Assert.IsNotNull (provider.Find ("Bar"), "method 'Bar' not found.");
+ }
+
+ /// <summary>
+ /// Bug 534680 - LINQ keywords missing from Intellisense
+ /// </summary>
+ [Test()]
+ public void TestBug534680 ()
+ {
+ CompletionDataList provider = CreateProvider (
+@"
+class Foo
+{
+ public static void Main (string[] args)
+ {
+ $from str in args $
+ }
+}
+");
+ Assert.IsNotNull (provider, "provider not found.");
+ Assert.IsNotNull (provider.Find ("select"), "keyword 'select' not found.");
+ }
+
+ /// <summary>
+ /// Bug 610006 - Intellisense gives members of return type of functions even when that function isn't invoked
+ /// </summary>
+ [Test()]
+ public void TestBug610006 ()
+ {
+ CompletionDataList provider = CreateProvider (
+@"
+class MainClass
+{
+ public MainClass FooBar ()
+ {
+ }
+
+ public void Test ()
+ {
+ $FooBar.$
+ }
+}
+");
+ Assert.IsNotNull (provider, "provider not found.");
+ Assert.IsNull (provider.Find ("FooBar"), "method 'FooBar' found, but shouldn't.");
+ }
+
+
+ /// <summary>
+ /// Bug 614045 - Types hidden by members are not formatted properly by ambience
+ /// </summary>
+ [Test()]
+ public void TestBug614045 ()
+ {
+ CompletionDataList provider = CreateProvider (
+@"
+namespace A
+{
+ enum Foo
+ {
+ One,
+ Two,
+ Three
+ }
+}
+
+namespace B
+{
+ using A;
+
+ public class Baz
+ {
+ public string Foo;
+
+ void Test (Foo a)
+ {
+ $switch (a) {
+ case $
+ }
+ }
+}
+");
+ Assert.IsNotNull (provider, "provider not found.");
+ Assert.IsNull (provider.Find ("Foo"), "enum 'Foo' found, but shouldn't.");
+ Assert.IsNotNull (provider.Find ("A.Foo"), "enum 'A.Foo' not found.");
+ }
+
+ /// <summary>
+ /// Bug 615992 - Intellisense broken when calling generic method.
+ /// </summary>
+ [Test()]
+ public void TestBug615992 ()
+ {
+ CompletionDataList provider = CreateProvider (
+@"public delegate void Act<T> (T t);
+
+public class Foo
+{
+ public void Bar ()
+ {
+ }
+}
+
+class TestBase
+{
+ protected void Method<T> (Act<T> action)
+ {
+ }
+}
+
+class Test : TestBase
+{
+ public Test ()
+ {
+ $Method<Foo> (f => f.$
+ }
+}");
+ Assert.IsNotNull (provider, "provider not found.");
+ Assert.IsNotNull (provider.Find ("Bar"), "method 'Bar' not found.");
+ }
+
+ /// <summary>
+ /// Bug 625064 - Internal classes aren't suggested for completion
+ /// </summary>
+ [Test()]
+ public void TestBug625064 ()
+ {
+ CompletionDataList provider = CreateCtrlSpaceProvider (
+@"class Foo
+{
+ class Bar { }
+ $List<$
+}");
+ Assert.IsNotNull (provider, "provider not found.");
+ Assert.IsNotNull (provider.Find ("Bar"), "class 'Bar' not found.");
+ }
+
+
+ /// <summary>
+ /// Bug 631875 - No Intellisense for arrays
+ /// </summary>
+ [Test()]
+ public void TestBug631875 ()
+ {
+ CompletionDataList provider = CreateCtrlSpaceProvider (
+@"class C
+{
+ static void Main ()
+ {
+ var objects = new[] { new { X = (object)null }};
+ $objects[0].$
+ }
+}
+");
+ Assert.IsNotNull (provider, "provider not found.");
+ Assert.IsNotNull (provider.Find ("X"), "property 'X' not found.");
+ }
+
+ /// <summary>
+ /// Bug 632228 - Wrong var inference
+ /// </summary>
+ [Test()]
+ public void TestBug632228 ()
+ {
+ CompletionDataList provider = CreateCtrlSpaceProvider (
+@"
+class C {
+ public void FooBar () {}
+ public static void Main ()
+ {
+ var thingToTest = new[] { new C (), 22, new object(), string.Empty, null };
+ $thingToTest[0].$
+ }
+}
+");
+ Assert.IsNotNull (provider, "provider not found.");
+ Assert.IsNull (provider.Find ("FooBar"), "method 'FooBar' found, but shouldn't.");
+ }
+
+ /// <summary>
+ /// Bug 632696 - No intellisense for constraints
+ /// </summary>
+ [Test()]
+ public void TestBug632696 ()
+ {
+ CompletionDataList provider = CreateCtrlSpaceProvider (
+@"
+class Program
+{
+ void Foo ()
+ {
+ }
+
+ static void Foo<T> () where T : Program
+ {
+ var s = new[] { default(T) };
+ $s[0].$
+ }
+}");
+ Assert.IsNotNull (provider, "provider not found.");
+ Assert.IsNotNull (provider.Find ("Foo"), "method 'Foo' not found.");
+ }
+
+ [Test()]
+ public void TestCommentsWithWindowsEol ()
+ {
+ CompletionDataList provider = CreateCtrlSpaceProvider ("class TestClass\r\n{\r\npublic static void Main (string[] args) {\r\n// TestComment\r\n$args.$\r\n}\r\n}");
+ Assert.IsNotNull (provider, "provider not found.");
+ Assert.IsNotNull (provider.Find ("ToString"), "method 'ToString' not found.");
+ }
+
+ [Test()]
+ public void TestGhostEntryBug ()
+ {
+ CompletionDataList provider = CreateCtrlSpaceProvider (
+@"
+using System.IO;
+
+class TestClass
+{
+ public Path Path {
+ get;
+ set;
+ }
+
+ void Test ()
+ {
+ $$
+ }
+}");
+ Assert.IsNotNull (provider, "provider not found.");
+ Assert.IsNull (provider.Find ("System.IO.Path"), "'System.IO.Path' found but shouldn't.");
+ Assert.IsNotNull (provider.Find ("Path"), "property 'Path' not found.");
+ }
+
+
+ /// <summary>
+ /// Bug 648562 – Abstract members are allowed by base call
+ /// </summary>
+ [Test()]
+ public void TestBug648562 ()
+ {
+ CompletionDataList provider = CreateCtrlSpaceProvider (
+@"using System;
+
+abstract class A
+{
+ public abstract void Foo<T> (T type);
+}
+
+class B : A
+{
+ public override void Foo<U> (U type)
+ {
+ $base.$
+ }
+}
+");
+ Assert.IsNotNull (provider, "provider not found.");
+ Assert.IsNull (provider.Find ("Foo"), "method 'Foo' found, but shouldn't.");
+ }
+
+ /// <summary>
+ /// Bug 633767 - Wrong intellisense for simple lambda
+ /// </summary>
+ [Test()]
+ public void TestBug633767 ()
+ {
+ CompletionDataList provider = CreateCtrlSpaceProvider (
+@"using System;
+
+public class E
+{
+ public int Foo { get; set; }
+}
+
+public class C
+{
+ delegate void D<T> (T t);
+
+ static T M<T> (T t, D<T> a)
+ {
+ return t;
+ }
+
+ static void MethodArg (object o)
+ {
+ }
+
+ public static int Main ()
+ {
+ D<object> action = l => Console.WriteLine (l);
+ var b = M (new E (), action);
+ $b.$
+ }
+}");
+ Assert.IsNotNull (provider, "provider not found.");
+ Assert.IsNull (provider.Find ("Foo"), "property 'Foo' found, but shouldn't.");
+ }
+
+ /// <summary>
+ /// Bug 616208 - Renaming a struct/class is renaming too much
+ /// </summary>
+ [Test()]
+ public void TestBug616208 ()
+ {
+ CompletionDataList provider = CreateCtrlSpaceProvider (
+@"using System;
+
+namespace System
+{
+ public class Foo { public int Bar; };
+}
+
+namespace test.Util
+{
+ public class Foo { public string x; }
+}
+
+namespace Test
+{
+ public class A
+ {
+ public Foo X;
+
+ public A ()
+ {
+ $X.$
+ }
+ }
+}
+
+");
+ Assert.IsNotNull (provider, "provider not found.");
+ Assert.IsNotNull (provider.Find ("Bar"), "property 'Bar' not found.");
+ }
+
+ /// <summary>
+ /// Bug 668135 - Problems with "new" completion
+ /// </summary>
+ [Test()]
+ public void TestBug668135a ()
+ {
+ CompletionDataList provider = CreateCtrlSpaceProvider (
+@"public class A
+{
+ public A ()
+ {
+ string test;
+ $Console.WriteLine (test = new $
+ }
+}
+");
+ Assert.IsNotNull (provider, "provider not found.");
+ Assert.IsNotNull (provider.Find ("string"), "class 'string' not found.");
+ }
+
+ /// <summary>
+ /// Bug 668453 - var completion infers var type too eagerly
+ /// </summary>
+ [Test()]
+ public void TestBug668453 ()
+ {
+ CompletionDataList provider = CreateCtrlSpaceProvider (
+@"public class Test
+{
+ private void FooBar ()
+ {
+ $var str = new $
+ FooBar ();
+ }
+}
+
+");
+ Assert.IsNotNull (provider, "provider not found.");
+ Assert.IsNull (provider.Find ("FooBar"), "method 'FooBar' found.");
+ }
+
+ /// <summary>
+ /// Bug 669285 - Extension method on T[] shows up on T
+ /// </summary>
+ [Test()]
+ public void TestBug669285 ()
+ {
+ CompletionDataList provider = CreateCtrlSpaceProvider (
+@"static class Ext
+{
+ public static void Foo<T> (this T[] t)
+ {
+ }
+}
+
+public class Test<T>
+{
+ public void Foo ()
+ {
+ T t;
+ $t.$
+ }
+}
+");
+ Assert.IsNotNull (provider, "provider not found.");
+ Assert.IsNull (provider.Find ("Foo"), "method 'Foo' found.");
+ provider = CreateCtrlSpaceProvider (
+@"static class Ext
+{
+ public static void Foo<T> (this T[] t)
+ {
+ }
+}
+
+public class Test<T>
+{
+ public void Foo ()
+ {
+ T[] t;
+ $t.$
+ }
+}
+");
+ Assert.IsNotNull (provider, "provider not found.");
+ Assert.IsNotNull (provider.Find ("Foo"), "method 'Foo' not found.");
+ }
+
+
+ /// <summary>
+ /// Bug 669818 - Autocomplete missing for new nested class
+ /// </summary>
+ [Test()]
+ public void TestBug669818 ()
+ {
+ CompletionDataList provider = CreateCtrlSpaceProvider (
+@"using System;
+public class Foo
+{
+ public class Bar
+ {
+ }
+ public static void FooBar () {}
+}
+class TestNested
+{
+ public static void Main (string[] args)
+ {
+ $new Foo.$
+ }
+}
+
+");
+ Assert.IsNotNull (provider, "provider not found.");
+ Assert.IsNotNull (provider.Find ("Bar"), "class 'Bar' not found.");
+ Assert.IsNull (provider.Find ("FooBar"), "method 'FooBar' found.");
+ }
+
+ /// <summary>
+ /// Bug 674514 - foreach value should not be in the completion list
+ /// </summary>
+ [Test()]
+ public void TestBug674514 ()
+ {
+ CompletionDataList provider = CreateCtrlSpaceProvider (
+@"using System;
+using System.Linq;
+using System.Collections.Generic;
+
+class Foo
+{
+ public static void Main (string[] args)
+ {
+ $foreach (var arg in $
+ }
+}
+");
+ Assert.IsNotNull (provider, "provider not found.");
+ Assert.IsNotNull (provider.Find ("args"), "parameter 'args' not found.");
+ Assert.IsNull (provider.Find ("arg"), "variable 'arg' found.");
+
+ provider = CreateCtrlSpaceProvider (
+@"using System;
+using System.Linq;
+using System.Collections.Generic;
+
+class Foo
+{
+ public static void Main (string[] args)
+ {
+ $foreach (var arg in args)
+ Console.WriteLine ($
+ }
+}
+");
+ Assert.IsNotNull (provider, "provider not found.");
+ Assert.IsNotNull (provider.Find ("args"), "parameter 'args' not found.");
+ Assert.IsNotNull (provider.Find ("arg"), "variable 'arg' not found.");
+ }
+
+ /// <summary>
+ /// Bug 675436 - Completion is trying to complete symbol names in declarations
+ /// </summary>
+ [Test()]
+ public void TestBug675436_LocalVar ()
+ {
+ CompletionDataList provider = CreateCtrlSpaceProvider (
+@"class Test
+{
+ public static void Main (string[] args)
+ {
+ $int test = $
+ }
+}
+");
+ Assert.IsNull (provider.Find ("test"), "name 'test' found.");
+ }
+
+ /// <summary>
+ /// Bug 675956 - Completion in for loops is broken
+ /// </summary>
+ [Test()]
+ public void TestBug675956 ()
+ {
+ CompletionDataList provider = CreateCtrlSpaceProvider (
+@"class Test
+{
+ public static void Main (string[] args)
+ {
+ $for (int i = 0; $
+ }
+}
+");
+ Assert.IsNotNull (provider.Find ("i"), "variable 'i' not found.");
+ }
+
+ /// <summary>
+ /// Bug 676311 - auto completion too few proposals in fluent API (Moq)
+ /// </summary>
+ [Test()]
+ public void TestBug676311 ()
+ {
+ CompletionDataList provider = CreateCtrlSpaceProvider (
+@"using System;
+
+namespace Test
+{
+ public interface IFoo<T>
+ {
+ void Foo1 ();
+ }
+
+ public interface IFoo<T, S>
+ {
+ void Foo2 ();
+ }
+
+ public class Test<T>
+ {
+ public IFoo<T> TestMe (Expression<Action<T>> act)
+ {
+ return null;
+ }
+
+ public IFoo<T, S> TestMe<S> (Expression<Func<S, T>> func)
+ {
+ return null;
+ }
+
+ public string TestMethod (string str)
+ {
+ return str;
+ }
+ }
+
+ class MainClass
+ {
+ public static void Main (string[] args)
+ {
+ var t = new Test<string> ();
+ var s = t.TestMe (x => t.TestMethod (x));
+ $s.$
+ }
+ }
+}");
+ Assert.IsNotNull (provider.Find ("Foo2"), "method 'Foo2' not found.");
+ }
+
+ /// <summary>
+ /// Bug 676311 - auto completion too few proposals in fluent API (Moq)
+ /// </summary>
+ [Test()]
+ public void TestBug676311_Case2 ()
+ {
+ CompletionDataList provider = CreateCtrlSpaceProvider (
+@"using System;
+using System.Linq.Expressions;
+
+namespace Test
+{
+ public interface IFoo<T>
+ {
+ void Foo1 ();
+ }
+
+ public interface IFoo<T, S>
+ {
+ void Foo2 ();
+ }
+
+ public class Test<T>
+ {
+ public IFoo<T> TestMe (Expression<Action<T>> act)
+ {
+ return null;
+ }
+
+ public IFoo<T, S> TestMe<S> (Expression<Func<S, T>> func)
+ {
+ return null;
+ }
+
+ public void TestMethod (string str)
+ {
+ }
+ }
+
+ class MainClass
+ {
+ public static void Main (string[] args)
+ {
+ var t = new Test<string> ();
+ var s = t.TestMe (x => t.TestMethod (x));
+ $s.$
+ }
+ }
+}");
+ Assert.IsNotNull (provider.Find ("Foo1"), "method 'Foo2' not found.");
+ }
+
+ /// <summary>
+ /// Bug 678340 - Cannot infer types from Dictionary<K,V>.Values
+ /// </summary>
+ [Test()]
+ public void TestBug678340 ()
+ {
+ CompletionDataList provider = CreateCtrlSpaceProvider (
+@"using System;
+using System.Collections.Generic;
+
+public class Test
+{
+ public void SomeMethod ()
+ {
+ var foo = new Dictionary<string,Test> ();
+ foreach (var bar in foo.Values) {
$bar.$
- }
- }
-}
-");
- Assert.IsNotNull (provider, "provider not found.");
- Assert.IsNotNull (provider.Find ("SomeMethod"), "method 'SomeMethod' not found.");
- }
- /// <summary>
- /// Bug 678340 - Cannot infer types from Dictionary<K,V>.Values
- /// </summary>
- [Test()]
- public void TestBug678340_Case2 ()
- {
- CompletionDataList provider = CreateCtrlSpaceProvider (
-@"public class Foo<T>
-{
- public class TestFoo
- {
- T Return ()
- {
-
- }
- }
-
- public TestFoo Bar;
-}
-
-public class Test
-{
- public void SomeMethod ()
- {
- Foo<Test> foo;
- var f = foo.Bar;
- $f.Return ().$
- }
-}
-");
- Assert.IsNotNull (provider, "provider not found.");
- Assert.IsNotNull (provider.Find ("SomeMethod"), "method 'SomeMethod' not found.");
- }
-
- /// <summary>
- /// Bug 679792 - MonoDevelop becomes unresponsive and leaks memory
- /// </summary>
- [Test()]
- public void TestBug679792 ()
- {
- CompletionDataList provider = CreateCtrlSpaceProvider (
-@"using System.Collections.Generic;
-
-class TestClass
-{
- public static void Main (string[] args)
- {
- Dictionary<string, Dictionary<string, TestClass>> cache;
- $cache[""Hello""] [""World""] = new $
- }
-}");
- Assert.IsNotNull (provider, "provider not found.");
- Assert.IsNotNull (provider.Find ("TestClass"), "class 'TestClass' not found.");
- }
-
- /// <summary>
- /// Bug 679995 - Variable missing from completiom
- /// </summary>
- ///
- [Test()]
- public void TestBug679995 ()
- {
- CompletionDataList provider = CreateCtrlSpaceProvider (
-@"class TestClass
-{
- public void Foo ()
- {
- using (var testMe = new TestClass ()) {
- $$
- }
- }
-}");
- Assert.IsNotNull (provider, "provider not found.");
- Assert.IsNotNull (provider.Find ("testMe"), "variable 'testMe' not found.");
- }
-
- /// <summary>
- /// Bug 680264 - Lamba completion inference issues
- /// </summary>
- ///
- [Test()]
- public void TestBug680264 ()
- {
- CompletionDataList provider = CreateCtrlSpaceProvider (
-@"
-public delegate S Func<T, S> (T t);
-
-public static class Linq
-{
- public static bool Any<T> (this T[] t, Func<T, bool> func)
- {
- return true;
- }
-}
-
-class TestClass
-{
- public void Foo ()
- {
- TestClass[] test;
- $test.Any (t => t.$
- }
-}");
- Assert.IsNotNull (provider, "provider not found.");
- Assert.IsNotNull (provider.Find ("Foo"), "method 'Foo' not found.");
- }
-
- /// <summary>
- /// Bug 683037 - Missing autocompletion when 'using' directive references namespace by relative names
- /// </summary>
- ///
- [Test()]
- public void TestBug683037 ()
- {
- CompletionDataList provider = CreateCtrlSpaceProvider (
-@"namespace N1.N2
-{
- public class C1
- {
- public void Foo () {
- System.Console.WriteLine (1);
- }
- }
-}
-
-namespace N1
-{
- using N2;
-
- public class C2
- {
- public static void Main (string[] args)
- {
- C1 x = new C1 ();
-
- $x.$
- }
- }
-}
-
-");
- Assert.IsNotNull (provider, "provider not found.");
- Assert.IsNotNull (provider.Find ("Foo"), "method 'Foo' not found.");
- }
-
- /// <summary>
- /// Bug 690606 - Incomplete subclasses listing in code completion
-
-
- /// <summary>
- /// Bug 690606 - Incomplete subclasses listing in code completion
- /// </summary>
- [Test()]
- public void TestBug690606 ()
- {
- CompletionDataList provider = CreateCtrlSpaceProvider (
-@"
-public abstract class Base {}
-public abstract class MyBase<T> : Base {}
-public class A : MyBase<string> {}
-public class B : MyBase<int> {}
-public class C : MyBase<bool> {}
-
-public class Test
-{
- public static void Main (string[] args)
- {
- $Base x = new $
- }
-}
-
-");
- Assert.IsNotNull (provider, "provider not found.");
- Assert.IsNotNull (provider.Find ("A"), "class 'A' not found.");
- Assert.IsNotNull (provider.Find ("B"), "class 'B' not found.");
- Assert.IsNotNull (provider.Find ("C"), "class 'C' not found.");
- }
- }
+ }
+ }
+}
+");
+ Assert.IsNotNull (provider, "provider not found.");
+ Assert.IsNotNull (provider.Find ("SomeMethod"), "method 'SomeMethod' not found.");
+ }
+ /// <summary>
+ /// Bug 678340 - Cannot infer types from Dictionary<K,V>.Values
+ /// </summary>
+ [Test()]
+ public void TestBug678340_Case2 ()
+ {
+ CompletionDataList provider = CreateCtrlSpaceProvider (
+@"public class Foo<T>
+{
+ public class TestFoo
+ {
+ T Return ()
+ {
+
+ }
+ }
+
+ public TestFoo Bar;
+}
+
+public class Test
+{
+ public void SomeMethod ()
+ {
+ Foo<Test> foo;
+ var f = foo.Bar;
+ $f.Return ().$
+ }
+}
+");
+ Assert.IsNotNull (provider, "provider not found.");
+ Assert.IsNotNull (provider.Find ("SomeMethod"), "method 'SomeMethod' not found.");
+ }
+
+ /// <summary>
+ /// Bug 679792 - MonoDevelop becomes unresponsive and leaks memory
+ /// </summary>
+ [Test()]
+ public void TestBug679792 ()
+ {
+ CompletionDataList provider = CreateCtrlSpaceProvider (
+@"using System.Collections.Generic;
+
+class TestClass
+{
+ public static void Main (string[] args)
+ {
+ Dictionary<string, Dictionary<string, TestClass>> cache;
+ $cache[""Hello""] [""World""] = new $
+ }
+}");
+ Assert.IsNotNull (provider, "provider not found.");
+ Assert.IsNotNull (provider.Find ("TestClass"), "class 'TestClass' not found.");
+ }
+
+ /// <summary>
+ /// Bug 679995 - Variable missing from completiom
+ /// </summary>
+ ///
+ [Test()]
+ public void TestBug679995 ()
+ {
+ CompletionDataList provider = CreateCtrlSpaceProvider (
+@"class TestClass
+{
+ public void Foo ()
+ {
+ using (var testMe = new TestClass ()) {
+ $$
+ }
+ }
+}");
+ Assert.IsNotNull (provider, "provider not found.");
+ Assert.IsNotNull (provider.Find ("testMe"), "variable 'testMe' not found.");
+ }
+
+ /// <summary>
+ /// Bug 680264 - Lamba completion inference issues
+ /// </summary>
+ ///
+ [Test()]
+ public void TestBug680264 ()
+ {
+ CompletionDataList provider = CreateCtrlSpaceProvider (
+@"
+public delegate S Func<T, S> (T t);
+
+public static class Linq
+{
+ public static bool Any<T> (this T[] t, Func<T, bool> func)
+ {
+ return true;
+ }
+}
+
+class TestClass
+{
+ public void Foo ()
+ {
+ TestClass[] test;
+ $test.Any (t => t.$
+ }
+}");
+ Assert.IsNotNull (provider, "provider not found.");
+ Assert.IsNotNull (provider.Find ("Foo"), "method 'Foo' not found.");
+ }
+
+ /// <summary>
+ /// Bug 683037 - Missing autocompletion when 'using' directive references namespace by relative names
+ /// </summary>
+ ///
+ [Test()]
+ public void TestBug683037 ()
+ {
+ CompletionDataList provider = CreateCtrlSpaceProvider (
+@"namespace N1.N2
+{
+ public class C1
+ {
+ public void Foo () {
+ System.Console.WriteLine (1);
+ }
+ }
+}
+
+namespace N1
+{
+ using N2;
+
+ public class C2
+ {
+ public static void Main (string[] args)
+ {
+ C1 x = new C1 ();
+
+ $x.$
+ }
+ }
+}
+
+");
+ Assert.IsNotNull (provider, "provider not found.");
+ Assert.IsNotNull (provider.Find ("Foo"), "method 'Foo' not found.");
+ }
+
+ /// <summary>
+ /// Bug 690606 - Incomplete subclasses listing in code completion
+
+
+ /// <summary>
+ /// Bug 690606 - Incomplete subclasses listing in code completion
+ /// </summary>
+ [Test()]
+ public void TestBug690606 ()
+ {
+ CompletionDataList provider = CreateCtrlSpaceProvider (
+@"
+public abstract class Base {}
+public abstract class MyBase<T> : Base {}
+public class A : MyBase<string> {}
+public class B : MyBase<int> {}
+public class C : MyBase<bool> {}
+
+public class Test
+{
+ public static void Main (string[] args)
+ {
+ $Base x = new $
+ }
+}
+
+");
+ Assert.IsNotNull (provider, "provider not found.");
+ Assert.IsNotNull (provider.Find ("A"), "class 'A' not found.");
+ Assert.IsNotNull (provider.Find ("B"), "class 'B' not found.");
+ Assert.IsNotNull (provider.Find ("C"), "class 'C' not found.");
+ }
+ }
}
diff --git a/main/tests/UnitTests/MonoDevelop.CSharpBinding/CodeCompletionCSharp3Tests.cs b/main/tests/UnitTests/MonoDevelop.CSharpBinding/CodeCompletionCSharp3Tests.cs
index 30092d1089..167dff5d4d 100644
--- a/main/tests/UnitTests/MonoDevelop.CSharpBinding/CodeCompletionCSharp3Tests.cs
+++ b/main/tests/UnitTests/MonoDevelop.CSharpBinding/CodeCompletionCSharp3Tests.cs
@@ -1,4 +1,4 @@
-//
+//
// CodeCompletionCSharp3Tests.cs
//
// Author:
@@ -27,24 +27,23 @@
//
using System;
-using NUnit.Framework;
-using MonoDevelop.Ide.Gui;
+using NUnit.Framework;
+using MonoDevelop.Ide.Gui;
using MonoDevelop.Projects;
using MonoDevelop.Core;
-using MonoDevelop.Ide.CodeCompletion;
-using MonoDevelop.Ide.Gui.Content;
-using MonoDevelop.Projects.Dom.Parser;
+using MonoDevelop.Ide.CodeCompletion;
+using MonoDevelop.Ide.Gui.Content;
namespace MonoDevelop.CSharpBinding.Tests
{
[TestFixture()]
public class CodeCompletionCSharp3Tests : UnitTests.TestBase
- {
- /* Currently fails but works in monodevelop. Seems to be a bug in the unit test somewhere.
+ {
+ /* Currently fails but works in monodevelop. Seems to be a bug in the unit test somewhere.
[Test()]
public void TestExtensionMethods ()
- {
- CompletionDataList provider = CodeCompletionBugTests.CreateProvider (
+ {
+ CompletionDataList provider = CodeCompletionBugTests.CreateProvider (
@"using System;
public static class EMClass
@@ -63,23 +62,23 @@ class Program
int i = s.$
}
}
-");
- Assert.IsNotNull (provider, "provider == null");
- Assert.IsNotNull (provider.Find ("ToInt32Ext"), "extension method 'ToInt32Ext' not found.");
- }
- */
+");
+ Assert.IsNotNull (provider, "provider == null");
+ Assert.IsNotNull (provider.Find ("ToInt32Ext"), "extension method 'ToInt32Ext' not found.");
+ }
+ */
[Test()]
public void TestVarLocalVariables ()
- {
- CompletionDataList provider = CodeCompletionBugTests.CreateProvider (
+ {
+ CompletionDataList provider = CodeCompletionBugTests.CreateProvider (
@"using System;
-class Test
-{
- public void TestMethod ()
- {
- }
-}
+class Test
+{
+ public void TestMethod ()
+ {
+ }
+}
class Program
{
@@ -89,293 +88,293 @@ class Program
$t.$
}
}
-");
- Assert.IsNotNull (provider, "provider == null");
- Assert.IsNotNull (provider.Find ("TestMethod"), "method 'TestMethod' not found.");
- }
-
+");
+ Assert.IsNotNull (provider, "provider == null");
+ Assert.IsNotNull (provider.Find ("TestMethod"), "method 'TestMethod' not found.");
+ }
+
[Test()]
public void TestVarLoopVariable ()
- {
- CompletionDataList provider = CodeCompletionBugTests.CreateProvider (
+ {
+ CompletionDataList provider = CodeCompletionBugTests.CreateProvider (
@"using System;
-class Test
-{
- public void TestMethod ()
- {
- }
-}
+class Test
+{
+ public void TestMethod ()
+ {
+ }
+}
class Program
{
static void Main (string[] args)
{
var t = new Test[] {};
- foreach (var loopVar in t) {
- $loopVar.$
+ foreach (var loopVar in t) {
+ $loopVar.$
+ }
+ }
+}
+");
+ Assert.IsNotNull (provider, "provider == null");
+ Assert.IsNotNull (provider.Find ("TestMethod"), "method 'TestMethod' not found.");
+ }
+
+ [Test()]
+ public void TestAnonymousType ()
+ {
+ CompletionDataList provider = CodeCompletionBugTests.CreateProvider (
+@"
+class Program
+{
+ static void Main (string[] args)
+ {
+ var t = new { TestInt = 6, TestChar='e', TestString =""Test""};
+ $t.$
+ }
+}
+");
+ Assert.IsNotNull (provider, "provider == null");
+ Assert.IsNotNull (provider.Find ("TestInt"), "property 'TestInt' not found.");
+ Assert.IsNotNull (provider.Find ("TestChar"), "property 'TestChar' not found.");
+ Assert.IsNotNull (provider.Find ("TestString"), "property 'TestString' not found.");
}
+
+ [Test()]
+ public void TestQueryExpression ()
+ {
+ CompletionDataList provider = CodeCompletionBugTests.CreateProvider (
+@"
+using System;
+using System.Collections.Generic;
+
+static class Linq
+{
+ public static IEnumerable<T> Select<S, T> (this IEnumerable<S> collection, Func<S, T> func)
+ {
}
}
-");
- Assert.IsNotNull (provider, "provider == null");
- Assert.IsNotNull (provider.Find ("TestMethod"), "method 'TestMethod' not found.");
- }
-
- [Test()]
- public void TestAnonymousType ()
- {
- CompletionDataList provider = CodeCompletionBugTests.CreateProvider (
-@"
-class Program
-{
- static void Main (string[] args)
- {
- var t = new { TestInt = 6, TestChar='e', TestString =""Test""};
- $t.$
- }
-}
-");
- Assert.IsNotNull (provider, "provider == null");
- Assert.IsNotNull (provider.Find ("TestInt"), "property 'TestInt' not found.");
- Assert.IsNotNull (provider.Find ("TestChar"), "property 'TestChar' not found.");
- Assert.IsNotNull (provider.Find ("TestString"), "property 'TestString' not found.");
- }
-
- [Test()]
- public void TestQueryExpression ()
- {
- CompletionDataList provider = CodeCompletionBugTests.CreateProvider (
-@"
-using System;
-using System.Collections.Generic;
-
-static class Linq
-{
- public static IEnumerable<T> Select<S, T> (this IEnumerable<S> collection, Func<S, T> func)
- {
- }
-}
-
-class Program
-{
- public void TestMethod ()
- {
- }
-
- static void Main (string[] args)
- {
- Program[] numbers;
- foreach (var x in from n in numbers select n) {
- $x.$
- }
- }
-}
-");
- Assert.IsNotNull (provider, "provider == null");
- Assert.IsNotNull (provider.Find ("TestMethod"), "method 'TestMethod' not found.");
- }
-
- [Test()]
- public void TestObjectInitializer ()
- {
- CompletionDataList provider = CodeCompletionBugTests.CreateCtrlSpaceProvider (
-@"
-class foo {
- public string bar { get; set; }
- public string baz { get; set; }
-}
-
-class test {
- public void testcc ()
- {
- foo f = new foo () {
- $$
- };
- }
-}
-");
- Assert.IsNotNull (provider, "provider == null");
- Assert.IsNotNull (provider.Find ("bar"), "property 'bar' not found.");
- Assert.IsNotNull (provider.Find ("baz"), "property 'baz' not found.");
- }
-
- [Test()]
- public void TestLambdaExpressionCase1 ()
- {
- CompletionDataList provider = CodeCompletionBugTests.CreateCtrlSpaceProvider (
-@"
-using System;
-class Test
-{
- public void Foo ()
- {
- $Func<Test,int> x = s => s.$
- }
-}
-");
- Assert.IsNotNull (provider, "provider == null");
- Assert.IsNotNull (provider.Find ("Foo"), "method 'Foo' not found.");
- }
-
- [Test()]
- public void TestLambdaExpressionCase2 ()
- {
- CompletionDataList provider = CodeCompletionBugTests.CreateProvider (
-@"
-
-namespace System {
- public class Array {
- public Test this[int i] {
- get {
- }
- set {
- }
- }
- }
-}
-
-static class ExtMethods
-{
- public static T Where<T>(this T[] t, Func<T, bool> pred)
- {
- return t;
- }
-}
-
-class Test
-{
- public void TestMethod ()
- {
- Test[] en = new Test[0];
- var x = en.Where (t => t != null);
- $x.$
- }
-}
-");
- Assert.IsNotNull (provider, "provider == null");
- Assert.IsNotNull (provider.Find ("TestMethod"), "method 'TestMethod' not found.");
- }
-
- /// <summary>
- /// Bug 487237 - Broken lambda intellisense
- /// </summary>
- [Test()]
- public void TestBug487237 ()
- {
- CompletionDataList provider = CodeCompletionBugTests.CreateProvider (
-@"
-public interface IHelper
-{
- void DoIt ();
-}
-
-public class Program
-{
- delegate T MyDelegate <T> (T t);
-
- static int Main ()
- {
- $MyDelegate<IHelper> e = helper => helper.$
- return 0;
- }
-}
-");
- Assert.IsNotNull (provider, "provider == null");
- Assert.IsNotNull (provider.Find ("DoIt"), "method 'DoIt' not found.");
- }
-
- /// <summary>
- /// Bug 491016 - No intellisense for lambdas inside linq query
- /// </summary>
- [Test()]
- public void TestBug491016 ()
- {
- CompletionDataList provider = CodeCompletionBugTests.CreateProvider (
-@"
-using System;
-using System.Collections.Generic;
-
-namespace System.Collections.Generic {
- public interface IEnumerable<T>
- {
-
- }
-}
-namespace Foo
-{
- class Data
- {
- public int Value = 5;
- }
-
- static class Ex
- {
- public static System.Collections.Generic.IEnumerable<TR> Foo<T, TR> (this System.Collections.Generic.IEnumerable<T> t, Func<T, TR> f)
- {
- yield return f (t.First ());
- }
- }
-
- public class C
- {
- public static void Main ()
- {
- System.Collections.Generic.IEnumerable<Data> i = new Data [0];
- $var prods = from pe in i.Foo (p2 => p2.$
- }
- }
-}
-");
- Assert.IsNotNull (provider, "provider == null");
- Assert.IsNotNull (provider.Find ("Value"), "field 'Value' not found.");
- }
-
- /// <summary>
- /// Bug 491017 - No intellisense for static LINQ queries
- /// </summary>
- [Test()]
- public void TestBug491017 ()
- {
- CompletionDataList provider = CodeCompletionBugTests.CreateProvider (
-@"
-using System.Linq;
-using System.Linq.Expressions;
-
-class Test
-{
- $object e = from entity in ""olololcolc"" select entity.$
-}
-");
- Assert.IsNotNull (provider, "provider == null");
- Assert.IsNotNull (provider.Find ("ToString"), "method 'ToString' not found.");
- Assert.IsNull (provider.Find ("Length"), "property 'Length' found, but shouldn't (indicates wrong return type).");
- }
-
- [Test()]
- public void TestDefaultParameterBug ()
- {
- CompletionDataList provider = CodeCompletionBugTests.CreateProvider (
-@"
-namespace Foo
-{
- class Data
- {
- public int Value = 5;
- }
-
- public class C
- {
- public void Foo (bool aBool = false)
- {
- Data data;
- $data.$
- }
- }
-}
-");
- Assert.IsNotNull (provider, "provider == null");
- Assert.IsNotNull (provider.Find ("Value"), "field 'Value' not found.");
- }
- }
+
+class Program
+{
+ public void TestMethod ()
+ {
+ }
+
+ static void Main (string[] args)
+ {
+ Program[] numbers;
+ foreach (var x in from n in numbers select n) {
+ $x.$
+ }
+ }
+}
+");
+ Assert.IsNotNull (provider, "provider == null");
+ Assert.IsNotNull (provider.Find ("TestMethod"), "method 'TestMethod' not found.");
+ }
+
+ [Test()]
+ public void TestObjectInitializer ()
+ {
+ CompletionDataList provider = CodeCompletionBugTests.CreateCtrlSpaceProvider (
+@"
+class foo {
+ public string bar { get; set; }
+ public string baz { get; set; }
+}
+
+class test {
+ public void testcc ()
+ {
+ foo f = new foo () {
+ $$
+ };
+ }
+}
+");
+ Assert.IsNotNull (provider, "provider == null");
+ Assert.IsNotNull (provider.Find ("bar"), "property 'bar' not found.");
+ Assert.IsNotNull (provider.Find ("baz"), "property 'baz' not found.");
+ }
+
+ [Test()]
+ public void TestLambdaExpressionCase1 ()
+ {
+ CompletionDataList provider = CodeCompletionBugTests.CreateCtrlSpaceProvider (
+@"
+using System;
+class Test
+{
+ public void Foo ()
+ {
+ $Func<Test,int> x = s => s.$
+ }
+}
+");
+ Assert.IsNotNull (provider, "provider == null");
+ Assert.IsNotNull (provider.Find ("Foo"), "method 'Foo' not found.");
+ }
+
+ [Test()]
+ public void TestLambdaExpressionCase2 ()
+ {
+ CompletionDataList provider = CodeCompletionBugTests.CreateProvider (
+@"
+
+namespace System {
+ public class Array {
+ public Test this[int i] {
+ get {
+ }
+ set {
+ }
+ }
+ }
+}
+
+static class ExtMethods
+{
+ public static T Where<T>(this T[] t, Func<T, bool> pred)
+ {
+ return t;
+ }
+}
+
+class Test
+{
+ public void TestMethod ()
+ {
+ Test[] en = new Test[0];
+ var x = en.Where (t => t != null);
+ $x.$
+ }
+}
+");
+ Assert.IsNotNull (provider, "provider == null");
+ Assert.IsNotNull (provider.Find ("TestMethod"), "method 'TestMethod' not found.");
+ }
+
+ /// <summary>
+ /// Bug 487237 - Broken lambda intellisense
+ /// </summary>
+ [Test()]
+ public void TestBug487237 ()
+ {
+ CompletionDataList provider = CodeCompletionBugTests.CreateProvider (
+@"
+public interface IHelper
+{
+ void DoIt ();
+}
+
+public class Program
+{
+ delegate T MyDelegate <T> (T t);
+
+ static int Main ()
+ {
+ $MyDelegate<IHelper> e = helper => helper.$
+ return 0;
+ }
+}
+");
+ Assert.IsNotNull (provider, "provider == null");
+ Assert.IsNotNull (provider.Find ("DoIt"), "method 'DoIt' not found.");
+ }
+
+ /// <summary>
+ /// Bug 491016 - No intellisense for lambdas inside linq query
+ /// </summary>
+ [Test()]
+ public void TestBug491016 ()
+ {
+ CompletionDataList provider = CodeCompletionBugTests.CreateProvider (
+@"
+using System;
+using System.Collections.Generic;
+
+namespace System.Collections.Generic {
+ public interface IEnumerable<T>
+ {
+
+ }
+}
+namespace Foo
+{
+ class Data
+ {
+ public int Value = 5;
+ }
+
+ static class Ex
+ {
+ public static System.Collections.Generic.IEnumerable<TR> Foo<T, TR> (this System.Collections.Generic.IEnumerable<T> t, Func<T, TR> f)
+ {
+ yield return f (t.First ());
+ }
+ }
+
+ public class C
+ {
+ public static void Main ()
+ {
+ System.Collections.Generic.IEnumerable<Data> i = new Data [0];
+ $var prods = from pe in i.Foo (p2 => p2.$
+ }
+ }
+}
+");
+ Assert.IsNotNull (provider, "provider == null");
+ Assert.IsNotNull (provider.Find ("Value"), "field 'Value' not found.");
+ }
+
+ /// <summary>
+ /// Bug 491017 - No intellisense for static LINQ queries
+ /// </summary>
+ [Test()]
+ public void TestBug491017 ()
+ {
+ CompletionDataList provider = CodeCompletionBugTests.CreateProvider (
+@"
+using System.Linq;
+using System.Linq.Expressions;
+
+class Test
+{
+ $object e = from entity in ""olololcolc"" select entity.$
+}
+");
+ Assert.IsNotNull (provider, "provider == null");
+ Assert.IsNotNull (provider.Find ("ToString"), "method 'ToString' not found.");
+ Assert.IsNull (provider.Find ("Length"), "property 'Length' found, but shouldn't (indicates wrong return type).");
+ }
+
+ [Test()]
+ public void TestDefaultParameterBug ()
+ {
+ CompletionDataList provider = CodeCompletionBugTests.CreateProvider (
+@"
+namespace Foo
+{
+ class Data
+ {
+ public int Value = 5;
+ }
+
+ public class C
+ {
+ public void Foo (bool aBool = false)
+ {
+ Data data;
+ $data.$
+ }
+ }
+}
+");
+ Assert.IsNotNull (provider, "provider == null");
+ Assert.IsNotNull (provider.Find ("Value"), "field 'Value' not found.");
+ }
+ }
}
diff --git a/main/tests/UnitTests/MonoDevelop.CSharpBinding/CodeCompletionCSharpTests.cs b/main/tests/UnitTests/MonoDevelop.CSharpBinding/CodeCompletionCSharpTests.cs
index 02497fb779..4ef3a39997 100644
--- a/main/tests/UnitTests/MonoDevelop.CSharpBinding/CodeCompletionCSharpTests.cs
+++ b/main/tests/UnitTests/MonoDevelop.CSharpBinding/CodeCompletionCSharpTests.cs
@@ -33,7 +33,6 @@ using MonoDevelop.Projects;
using MonoDevelop.Core;
using MonoDevelop.Ide.CodeCompletion;
using MonoDevelop.Ide.Gui.Content;
-using MonoDevelop.Projects.Dom.Parser;
namespace MonoDevelop.CSharpBinding.Tests
{
diff --git a/main/tests/UnitTests/MonoDevelop.CSharpBinding/CodeCompletionOperatorTests.cs b/main/tests/UnitTests/MonoDevelop.CSharpBinding/CodeCompletionOperatorTests.cs
index b200b73919..88985df108 100644
--- a/main/tests/UnitTests/MonoDevelop.CSharpBinding/CodeCompletionOperatorTests.cs
+++ b/main/tests/UnitTests/MonoDevelop.CSharpBinding/CodeCompletionOperatorTests.cs
@@ -1,4 +1,4 @@
-//
+//
// OperatorTests.cs
//
// Author:
@@ -27,13 +27,12 @@
//
using System;
-using NUnit.Framework;
-using MonoDevelop.Ide.Gui;
+using NUnit.Framework;
+using MonoDevelop.Ide.Gui;
using MonoDevelop.Projects;
using MonoDevelop.Core;
-using MonoDevelop.Ide.CodeCompletion;
-using MonoDevelop.Ide.Gui.Content;
-using MonoDevelop.Projects.Dom.Parser;
+using MonoDevelop.Ide.CodeCompletion;
+using MonoDevelop.Ide.Gui.Content;
namespace MonoDevelop.CSharpBinding.Tests
{
@@ -42,8 +41,8 @@ namespace MonoDevelop.CSharpBinding.Tests
{
[Test()]
public void TestAddOperator ()
- {
- CompletionDataList provider = CodeCompletionBugTests.CreateProvider (
+ {
+ CompletionDataList provider = CodeCompletionBugTests.CreateProvider (
@"class A
{
public static B operator+(A left, A right)
@@ -67,15 +66,15 @@ class TestClass
A b = new A ();
$(a + b).$
}
-}");
- Assert.IsNotNull (provider);
- Assert.IsNotNull (provider.Find ("BMethod"));
- }
-
+}");
+ Assert.IsNotNull (provider);
+ Assert.IsNotNull (provider.Find ("BMethod"));
+ }
+
[Test()]
public void TestSubtractOperator ()
- {
- CompletionDataList provider = CodeCompletionBugTests.CreateProvider (
+ {
+ CompletionDataList provider = CodeCompletionBugTests.CreateProvider (
@"class A
{
public static B operator-(A left, A right)
@@ -99,15 +98,15 @@ class TestClass
A b = new A ();
$(a - b).$
}
-}");
- Assert.IsNotNull (provider);
- Assert.IsNotNull (provider.Find ("BMethod"));
- }
-
+}");
+ Assert.IsNotNull (provider);
+ Assert.IsNotNull (provider.Find ("BMethod"));
+ }
+
[Test()]
public void TestMultiplyOperator ()
- {
- CompletionDataList provider = CodeCompletionBugTests.CreateProvider (
+ {
+ CompletionDataList provider = CodeCompletionBugTests.CreateProvider (
@"class A
{
public static B operator*(A left, A right)
@@ -131,15 +130,15 @@ class TestClass
A b = new A ();
$(a * b).$
}
-}");
- Assert.IsNotNull (provider);
- Assert.IsNotNull (provider.Find ("BMethod"));
- }
-
+}");
+ Assert.IsNotNull (provider);
+ Assert.IsNotNull (provider.Find ("BMethod"));
+ }
+
[Test()]
public void TestDivideOperator ()
- {
- CompletionDataList provider = CodeCompletionBugTests.CreateProvider (
+ {
+ CompletionDataList provider = CodeCompletionBugTests.CreateProvider (
@"class A
{
public static B operator/(A left, A right)
@@ -163,15 +162,15 @@ class TestClass
A b = new A ();
$(a / b).$
}
-}");
- Assert.IsNotNull (provider);
- Assert.IsNotNull (provider.Find ("BMethod"));
- }
-
+}");
+ Assert.IsNotNull (provider);
+ Assert.IsNotNull (provider.Find ("BMethod"));
+ }
+
[Test()]
public void TestModulusOperator ()
- {
- CompletionDataList provider = CodeCompletionBugTests.CreateProvider (
+ {
+ CompletionDataList provider = CodeCompletionBugTests.CreateProvider (
@"class A
{
public static B operator%(A left, A right)
@@ -195,15 +194,15 @@ class TestClass
A b = new A ();
$(a % b).$
}
-}");
- Assert.IsNotNull (provider);
- Assert.IsNotNull (provider.Find ("BMethod"));
- }
-
+}");
+ Assert.IsNotNull (provider);
+ Assert.IsNotNull (provider.Find ("BMethod"));
+ }
+
[Test()]
public void TestBitwiseAndOperator ()
- {
- CompletionDataList provider = CodeCompletionBugTests.CreateProvider (
+ {
+ CompletionDataList provider = CodeCompletionBugTests.CreateProvider (
@"class A
{
public static B operator&(A left, A right)
@@ -227,15 +226,15 @@ class TestClass
A b = new A ();
$(a & b).$
}
-}");
- Assert.IsNotNull (provider);
- Assert.IsNotNull (provider.Find ("BMethod"));
- }
-
+}");
+ Assert.IsNotNull (provider);
+ Assert.IsNotNull (provider.Find ("BMethod"));
+ }
+
[Test()]
public void TestBitwiseOrOperator ()
- {
- CompletionDataList provider = CodeCompletionBugTests.CreateProvider (
+ {
+ CompletionDataList provider = CodeCompletionBugTests.CreateProvider (
@"class A
{
public static B operator|(A left, A right)
@@ -259,15 +258,15 @@ class TestClass
A b = new A ();
$(a | b).$
}
-}");
- Assert.IsNotNull (provider);
- Assert.IsNotNull (provider.Find ("BMethod"));
- }
-
+}");
+ Assert.IsNotNull (provider);
+ Assert.IsNotNull (provider.Find ("BMethod"));
+ }
+
[Test()]
public void TestExclusiveOrOperator ()
- {
- CompletionDataList provider = CodeCompletionBugTests.CreateProvider (
+ {
+ CompletionDataList provider = CodeCompletionBugTests.CreateProvider (
@"class A
{
public static B operator^(A left, A right)
@@ -291,15 +290,15 @@ class TestClass
A b = new A ();
$(a ^ b).$
}
-}");
- Assert.IsNotNull (provider);
- Assert.IsNotNull (provider.Find ("BMethod"));
- }
-
+}");
+ Assert.IsNotNull (provider);
+ Assert.IsNotNull (provider.Find ("BMethod"));
+ }
+
[Test()]
public void TestShiftLeftOperator ()
- {
- CompletionDataList provider = CodeCompletionBugTests.CreateProvider (
+ {
+ CompletionDataList provider = CodeCompletionBugTests.CreateProvider (
@"class A
{
public static B operator<<(A left, A right)
@@ -323,15 +322,15 @@ class TestClass
A b = new A ();
$(a << b).$
}
-}");
- Assert.IsNotNull (provider);
- Assert.IsNotNull (provider.Find ("BMethod"));
- }
-
+}");
+ Assert.IsNotNull (provider);
+ Assert.IsNotNull (provider.Find ("BMethod"));
+ }
+
[Test()]
public void TestShiftRightOperator ()
- {
- CompletionDataList provider = CodeCompletionBugTests.CreateProvider (
+ {
+ CompletionDataList provider = CodeCompletionBugTests.CreateProvider (
@"class A
{
public static B operator>>(A left, A right)
@@ -355,15 +354,15 @@ class TestClass
A b = new A ();
$(a >> b).$
}
-}");
- Assert.IsNotNull (provider);
- Assert.IsNotNull (provider.Find ("BMethod"));
- }
-
+}");
+ Assert.IsNotNull (provider);
+ Assert.IsNotNull (provider.Find ("BMethod"));
+ }
+
[Test()]
public void TestGreaterThanOperator ()
- {
- CompletionDataList provider = CodeCompletionBugTests.CreateProvider (
+ {
+ CompletionDataList provider = CodeCompletionBugTests.CreateProvider (
@"class A
{
public static B operator>(A left, A right)
@@ -387,15 +386,15 @@ class TestClass
A b = new A ();
$(a > b).$
}
-}");
- Assert.IsNotNull (provider);
- Assert.IsNotNull (provider.Find ("BMethod"));
- }
-
+}");
+ Assert.IsNotNull (provider);
+ Assert.IsNotNull (provider.Find ("BMethod"));
+ }
+
[Test()]
public void TestGreaterThanOrEqualOperator ()
- {
- CompletionDataList provider = CodeCompletionBugTests.CreateProvider (
+ {
+ CompletionDataList provider = CodeCompletionBugTests.CreateProvider (
@"class A
{
public static B operator>=(A left, A right)
@@ -419,15 +418,15 @@ class TestClass
A b = new A ();
$(a >= b).$
}
-}");
- Assert.IsNotNull (provider);
- Assert.IsNotNull (provider.Find ("BMethod"));
- }
-
+}");
+ Assert.IsNotNull (provider);
+ Assert.IsNotNull (provider.Find ("BMethod"));
+ }
+
[Test()]
public void TestEqualityOperator ()
- {
- CompletionDataList provider = CodeCompletionBugTests.CreateProvider (
+ {
+ CompletionDataList provider = CodeCompletionBugTests.CreateProvider (
@"class A
{
public static B operator==(A left, A right)
@@ -451,15 +450,15 @@ class TestClass
A b = new A ();
$(a == b).$
}
-}");
- Assert.IsNotNull (provider);
- Assert.IsNotNull (provider.Find ("BMethod"));
- }
-
+}");
+ Assert.IsNotNull (provider);
+ Assert.IsNotNull (provider.Find ("BMethod"));
+ }
+
[Test()]
public void TestInEqualityOperator ()
- {
- CompletionDataList provider = CodeCompletionBugTests.CreateProvider (
+ {
+ CompletionDataList provider = CodeCompletionBugTests.CreateProvider (
@"class A
{
public static B operator!=(A left, A right)
@@ -483,15 +482,15 @@ class TestClass
A b = new A ();
$(a != b).$
}
-}");
- Assert.IsNotNull (provider);
- Assert.IsNotNull (provider.Find ("BMethod"));
- }
-
+}");
+ Assert.IsNotNull (provider);
+ Assert.IsNotNull (provider.Find ("BMethod"));
+ }
+
[Test()]
public void TestLessThanOperator ()
- {
- CompletionDataList provider = CodeCompletionBugTests.CreateProvider (
+ {
+ CompletionDataList provider = CodeCompletionBugTests.CreateProvider (
@"class A
{
public static B operator<(A left, A right)
@@ -515,15 +514,15 @@ class TestClass
A b = new A ();
$(a < b).$
}
-}");
- Assert.IsNotNull (provider);
- Assert.IsNotNull (provider.Find ("BMethod"));
- }
-
+}");
+ Assert.IsNotNull (provider);
+ Assert.IsNotNull (provider.Find ("BMethod"));
+ }
+
[Test()]
public void TestLessThanOrEqualOperator ()
- {
- CompletionDataList provider = CodeCompletionBugTests.CreateProvider (
+ {
+ CompletionDataList provider = CodeCompletionBugTests.CreateProvider (
@"class A
{
public static B operator<=(A left, A right)
@@ -547,15 +546,15 @@ class TestClass
A b = new A ();
$(a <= b).$
}
-}");
- Assert.IsNotNull (provider);
- Assert.IsNotNull (provider.Find ("BMethod"));
- }
-
+}");
+ Assert.IsNotNull (provider);
+ Assert.IsNotNull (provider.Find ("BMethod"));
+ }
+
[Test()]
public void TestUnaryPlusOperator ()
- {
- CompletionDataList provider = CodeCompletionBugTests.CreateProvider (
+ {
+ CompletionDataList provider = CodeCompletionBugTests.CreateProvider (
@"class A
{
public static B operator+(A left)
@@ -578,15 +577,15 @@ class TestClass
A a = new A ();
$(+a).$
}
-}");
- Assert.IsNotNull (provider);
- Assert.IsNotNull (provider.Find ("BMethod"));
- }
-
+}");
+ Assert.IsNotNull (provider);
+ Assert.IsNotNull (provider.Find ("BMethod"));
+ }
+
[Test()]
public void TestUnaryMinusOperator ()
- {
- CompletionDataList provider = CodeCompletionBugTests.CreateProvider (
+ {
+ CompletionDataList provider = CodeCompletionBugTests.CreateProvider (
@"class A
{
public static B operator-(A left)
@@ -609,15 +608,15 @@ class TestClass
A a = new A ();
$(-a).$
}
-}");
- Assert.IsNotNull (provider);
- Assert.IsNotNull (provider.Find ("BMethod"));
- }
-
+}");
+ Assert.IsNotNull (provider);
+ Assert.IsNotNull (provider.Find ("BMethod"));
+ }
+
[Test()]
public void TestUnaryNotOperator ()
- {
- CompletionDataList provider = CodeCompletionBugTests.CreateProvider (
+ {
+ CompletionDataList provider = CodeCompletionBugTests.CreateProvider (
@"class A
{
public static B operator!(A left)
@@ -640,15 +639,15 @@ class TestClass
A a = new A ();
$(!a).$
}
-}");
- Assert.IsNotNull (provider);
- Assert.IsNotNull (provider.Find ("BMethod"));
- }
-
+}");
+ Assert.IsNotNull (provider);
+ Assert.IsNotNull (provider.Find ("BMethod"));
+ }
+
[Test()]
public void TestUnaryBitwiseNotOperator ()
- {
- CompletionDataList provider = CodeCompletionBugTests.CreateProvider (
+ {
+ CompletionDataList provider = CodeCompletionBugTests.CreateProvider (
@"class A
{
public static B operator~(A left)
@@ -671,9 +670,9 @@ class TestClass
A a = new A ();
$(~a).$
}
-}");
- Assert.IsNotNull (provider);
- Assert.IsNotNull (provider.Find ("BMethod"));
- }
+}");
+ Assert.IsNotNull (provider);
+ Assert.IsNotNull (provider.Find ("BMethod"));
+ }
}
}
diff --git a/main/tests/UnitTests/MonoDevelop.CSharpBinding/FindMemberVisitorTests.cs b/main/tests/UnitTests/MonoDevelop.CSharpBinding/FindMemberVisitorTests.cs
index e472f48db8..352140e5fd 100644
--- a/main/tests/UnitTests/MonoDevelop.CSharpBinding/FindMemberVisitorTests.cs
+++ b/main/tests/UnitTests/MonoDevelop.CSharpBinding/FindMemberVisitorTests.cs
@@ -1,874 +1,874 @@
+////
+//// FindMemberVisitorTests.cs
+////
+//// Author:
+//// Mike Krüger <mkrueger@novell.com>
+////
+//// Copyright (C) 2009 Novell, Inc (http://www.novell.com)
+////
+//// Permission is hereby granted, free of charge, to any person obtaining
+//// a copy of this software and associated documentation files (the
+//// "Software"), to deal in the Software without restriction, including
+//// without limitation the rights to use, copy, modify, merge, publish,
+//// distribute, sublicense, and/or sell copies of the Software, and to
+//// permit persons to whom the Software is furnished to do so, subject to
+//// the following conditions:
+////
+//// The above copyright notice and this permission notice shall be
+//// included in all copies or substantial portions of the Software.
+////
+//// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+//// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+//// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+//// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+//// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+//// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+//// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+////
//
-// FindMemberVisitorTests.cs
-//
-// Author:
-// Mike Krüger <mkrueger@novell.com>
-//
-// Copyright (C) 2009 Novell, Inc (http://www.novell.com)
-//
-// Permission is hereby granted, free of charge, to any person obtaining
-// a copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to
-// the following conditions:
-//
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-//
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-//
-
-using System;
-using System.Collections.Generic;
-using System.Text;
-
-using NUnit.Framework;
-using Mono.TextEditor;
-using MonoDevelop.Core;
-using MonoDevelop.Projects;
-using MonoDevelop.Projects.Dom;
-using MonoDevelop.Projects.Dom.Parser;
-using MonoDevelop.CSharpBinding;
-using MonoDevelop.Projects.CodeGeneration;
-using MonoDevelop.Projects.Text;
-using ICSharpCode.OldNRefactory.Visitors;
-using MonoDevelop.CSharp.Parser;
-using MonoDevelop.CSharp.Resolver;
-using MonoDevelop.CSharp.Refactoring;
-
-namespace MonoDevelop.CSharpBinding.Tests
-{
- [TestFixture]
- public class FindMemberVisitorTests : UnitTests.TestBase
- {
- #region TestHelper
- static McsParser parser = new McsParser ();
-
- void RunTest (string test)
- {
- RunTest (test, null);
- }
-
- void RunTest (string test, LocalVariable localVariable)
- {
- StringBuilder testText = new StringBuilder ();
- List<DomLocation> expectedReferences = new List<DomLocation> ();
- DomLocation memberLocation = DomLocation.Empty;
- int line = 1, col = 1;
- foreach (char ch in test) {
- switch (ch) {
- case '$':
- memberLocation = new DomLocation (line, col);
- break;
- case '@':
- expectedReferences.Add (new DomLocation (line, col));
- break;
- default:
- col++;
- if (ch == '\n') {
- col = 1;
- line++;
- }
- testText.Append (ch);
- break;
- }
- }
- DotNetProject project = new DotNetAssemblyProject ("C#");
- project.FileName = "/tmp/a.csproj";
-
- SimpleProjectDom dom = new SimpleProjectDom ();
- dom.Project = project;
- ProjectDomService.RegisterDom (dom, "Project:" + project.FileName);
-
- ParsedDocument parsedDocument = parser.Parse (null, "a.cs", testText.ToString ());
- dom.Add (parsedDocument.CompilationUnit);
-
- TestViewContent testViewContent = new TestViewContent ();
- testViewContent.Name = "a.cs";
- testViewContent.Text = testText.ToString ();
- // RefactorerContext ctx = new RefactorerContext (dom, new DumbTextFileProvider(testViewContent), null);
- NRefactoryResolver resolver = new NRefactoryResolver (dom,
- parsedDocument.CompilationUnit,
- testViewContent.Data,
- "a.cs");
- SearchMemberVisitor smv = new SearchMemberVisitor (memberLocation.Line);
- if (localVariable != null) {
- ((LocalVariable)localVariable).DeclaringMember = parsedDocument.CompilationUnit.GetMemberAt (expectedReferences[0]);
- smv.FoundMember = localVariable;
- } else {
- smv.Visit (parsedDocument.CompilationUnit, null);
- if (smv.FoundMember == null) {
- ResolveResult resolveResult = resolver.ResolveIdentifier ("a", memberLocation);
- if (resolveResult is LocalVariableResolveResult)
- smv.FoundMember = ((LocalVariableResolveResult)resolveResult).LocalVariable;
- }
- }
-
- Assert.IsNotNull (smv.FoundMember, "Member to search not found.");
- if (smv.FoundMember is IType) {
- smv.FoundMember = dom.GetType (((IType)smv.FoundMember).FullName,
- ((IType)smv.FoundMember).TypeParameters.Count,
- true);
- }
- FindMemberAstVisitor astVisitor = new FindMemberAstVisitor (testViewContent.GetTextEditorData ().Document, smv.FoundMember);
- astVisitor.RunVisitor (resolver);
-
- int i = 0, j = 0;
- StringBuilder errorText = new StringBuilder ();
- Document doc = new Document ();
- doc.Text = testViewContent.Text;
- while (i < expectedReferences.Count && j < astVisitor.FoundReferences.Count) {
-
- if (expectedReferences[i].Line != astVisitor.FoundReferences[j].Line || expectedReferences[i].Column != astVisitor.FoundReferences[j].Column) {
- if (expectedReferences[i].Line < astVisitor.FoundReferences[j].Line) {
- errorText.Append ("Reference at line " + expectedReferences[i].Line + " not found.");
- errorText.AppendLine ();
- errorText.Append (doc.GetTextAt (doc.GetLine (expectedReferences[i].Line)).Replace ('\t', ' '));
- errorText.AppendLine ();
- errorText.Append (new string (' ', expectedReferences[i].Column));errorText.Append ('^');
- errorText.AppendLine ();
- i++;
- continue;
- }
- if (expectedReferences[i].Line > astVisitor.FoundReferences[j].Line) {
- errorText.Append ("Found unexpected Reference at line " + astVisitor.FoundReferences[j].Line);
- errorText.AppendLine ();
- errorText.Append (doc.GetTextAt (doc.GetLine (astVisitor.FoundReferences[j].Line)).Replace ('\t', ' '));
- errorText.AppendLine ();
- errorText.Append (new string (' ', astVisitor.FoundReferences[j].Column));errorText.Append ('^');
- errorText.AppendLine ();
- j++;
- continue;
- }
-
- errorText.Append ("Column mismatch at line " + astVisitor.FoundReferences[j].Line + " was: " + astVisitor.FoundReferences[j].Column + " should be:" + expectedReferences[i].Column);
- errorText.AppendLine ();
- errorText.Append (doc.GetTextAt (doc.GetLine (astVisitor.FoundReferences[j].Line)).Replace ('\t', ' '));
- errorText.Append (new string (' ', expectedReferences[i].Column));errorText.Append ('^');
- errorText.AppendLine ();
- errorText.Append (new string (' ', astVisitor.FoundReferences[j].Column));errorText.Append ('^');
- errorText.AppendLine ();
- }
- i++;j++;
- }
- while (i < expectedReferences.Count) {
- errorText.Append ("Reference at line " + expectedReferences[i].Line + " not found.");
- errorText.AppendLine ();
- errorText.Append (doc.GetTextAt (doc.GetLine (expectedReferences[i].Line)).Replace ('\t', ' '));
- errorText.AppendLine ();
- errorText.Append (new string (' ', expectedReferences[j].Column));errorText.Append ('^');
- errorText.AppendLine ();
- i++;
- }
- while (j < astVisitor.FoundReferences.Count) {
- errorText.Append ("Found unexpected Reference at line " + astVisitor.FoundReferences[j].Line);
- errorText.AppendLine ();
- errorText.Append (doc.GetTextAt (doc.GetLine (astVisitor.FoundReferences[j].Line)).Replace ('\t', ' '));
- errorText.AppendLine ();
- errorText.Append (new string (' ', astVisitor.FoundReferences[i].Column));errorText.Append ('^');
- errorText.AppendLine ();
- j++;
- }
- if (errorText.Length > 0)
- Assert.Fail ("Member to find:" + smv.FoundMember + Environment.NewLine + errorText.ToString () + Environment.NewLine + "found : " + astVisitor.FoundReferences.Count + " expected:" + expectedReferences.Count);
- }
-
- class DumbTextFileProvider : ITextFileProvider
- {
- IEditableTextFile file;
- public DumbTextFileProvider (IEditableTextFile file)
- {
- this.file = file;
- }
- public IEditableTextFile GetEditableTextFile (FilePath filePath)
- {
- return file;
- }
- }
-
- class SearchMemberVisitor : AbstractDomVisitor<object, object>
- {
- public INode FoundMember {
- get;
- set;
- }
- int lineNumber;
- public SearchMemberVisitor (int lineNumber)
- {
- this.lineNumber = lineNumber;
- }
-
- void Check (IMember member)
- {
- if (member.Location.Line == lineNumber) {
- FoundMember = member;
- }
- }
-
- public override object Visit (IType type, object data)
- {
- Check (type);
- foreach (IMember member in type.Members) {
- member.AcceptVisitor (this, data);
- }
- return base.Visit (type, data);
- }
-
- public override object Visit (IField field, object data)
- {
- Check (field);
- return base.Visit (field, data);
- }
-
- public override object Visit (IMethod method, object data)
- {
- Check (method);
- return base.Visit (method, data);
- }
-
- public override object Visit (MonoDevelop.Projects.Dom.IParameter parameter, object data)
- {
- if (parameter.Location.Line == lineNumber)
- FoundMember = parameter;
- return base.Visit (parameter, data);
- }
-
- public override object Visit (IProperty property, object data)
- {
- Check (property);
- return base.Visit (property, data);
- }
-
- public override object Visit (IEvent evt, object data)
- {
- Check (evt);
- return base.Visit (evt, data);
- }
-
- public override object Visit (LocalVariable var, object data)
- {
- if (var.Region.Start.Line == lineNumber)
- FoundMember = var;
- return base.Visit (var, data);
- }
- }
- #endregion
-
- [Test()]
- public void FindClassReferences ()
- {
- RunTest (
-@"class $@Test {
- @Test (@Test t)
- {
- }
- ~@Test ()
- {}
-
- void TestMe(@Test p)
- {
- @Test i;
- }
-}
-
-delegate @Test TestDelegate (@Test test);
-
-class OuterTest : @Test
-{
- @Test testField;
- @Test TestProperty { get { } }
-
- event @Test TestEvent;
- public @Test this[int i] { get { } }
- public int this[@Test t] { get { } }
-
- public OuterTest (object t) : base ((@Test)t)
- {
- }
-
- @Test Outer (object o)
- {
- return ((@Test)o);
- }
-}
-namespace SomethingDifferent
-{
- class Test
- {
- }
-}
-");
- }
-
- [Test()]
- public void FindFieldReferences ()
- {
- RunTest (
-@"class TestClass {
- protected int $@testField;
-
- TestClass ()
- {
- @testField = 5;
- }
-
- void TestMe(int f)
- {
- this.@testField = f;
- }
-}
-
-
-class OuterTest : TestClass
-{
- int TestProperty { get { return base.@testField; } }
-}
-
-namespace SomethingDifferent
-{
- class Test
- {
- int testField;
- }
-}
-");
- }
-
- [Test()]
- public void FindEventReferences ()
- {
- RunTest (
-@"class TestClass {
- delegate void TestEventDelegate ();
-
- public event TestEventDelegate $@MyEvent;
-
- TestClass ()
- {
- @MyEvent += TestMe;
- }
-
- void TestMe()
- {
- }
-}
-
-
-class OuterTest : TestClass
-{
- void Test ()
- {
- @MyEvent -= TestMe;
- }
-}
-
-namespace SomethingDifferent
-{
- class Test
- {
- public event TestClass.TestEventDelegate MyEvent;
- }
-}
-");
- }
-
- [Test()]
- public void FindMethodReferences ()
- {
- RunTest (
-@"class TestClass {
- public void $@TestMethod (
-int a, int b)
- {
- }
- public void TestMethod (int a)
- {
- @TestMethod (a, 6);
- }
- public void TestMethod ()
- {
- TestMethod (4);
- }
-}
-
-
-class OuterTest : TestClass
-{
- void A ()
- {
- @TestMethod (5, 4);
- TestMethod (5);
- }
-}
-
-namespace SomethingOuter
-{
- class Test
- {
- void Bla (TestClass t)
- {
- t.@TestMethod (5, 4);
- }
- }
-}
-");
- }
-
- [Test()]
- public void FindPropertyReferences ()
- {
- RunTest (
-@"class TestClass {
- public int $@MyProperty { get {} set {}}
-
- public void TestMethod (int a)
- {
- @MyProperty = a;
- }
- public void TestMethod ()
- {
- WriteLine (this.@MyProperty);
- }
-}
-
-
-class OuterTest : TestClass
-{
- void A ()
- {
- @MyProperty = 5;
- WriteLine (base.@MyProperty);
- WriteLine (this.@MyProperty);
- }
-}
-
-namespace SomethingOuter
-{
- class Test
- {
- void Bla (TestClass t)
- {
- t.@MyProperty = 5;
- }
- }
-}
-");
- }
-
- [Test()]
- public void FindParameterReferences ()
- {
- RunTest (
-@"class TestClass {
- public void TestMethod (
-int $@a,
-int b)
- {
- WriteLine (@a);
- @a--;
- b = @a;
- @a = b;
- }
-}
-");
- }
-
- [Test()]
- public void FindLocalVariableReferences ()
- {
- RunTest (
-@"class TestClass {
- public void TestMethod ()
- {
- int $@a;
- int b = 5;
- WriteLine (@a);
- @a--;
- b = @a;
- @a = b;
- }
-
- public void TestMethod2 ()
- {
- int a;
- WriteLine (a);
- a--;
- int b = a;
- }
-}
-");
- }
-
- /// <summary>
- /// Bug 480492 - Find field references returns incorrect references
- /// </summary>
- [Test()]
- public void TestBug480492 ()
- {
- RunTest (
-@"class BaseClass
-{
-}
-
-class A : BaseClass
-{
- BaseClass $@myField;
-}
-
-class B : BaseClass
-{
- BaseClass myField;
- void TestMe ()
- {
- myField = null; // this should not be found.
- this.myField = null; // this should not be found.
- }
-}");
- }
-
- /// <summary>
- /// Bug 493202 - List References on private constructor yields nothing
- /// </summary>
- [Test()]
- public void TestBug493202 ()
- {
- RunTest (
-@"public class Foo {
- $@Foo () //right click on Foo and list constructor references
- {}
-
- public Foo Instance()
- {
- return new @Foo ();
- }
-}
-");
- }
-
-
-
- /// <summary>
- /// Bug 531525 - Refactoring + Renaming fails for delegate
- /// </summary>
- [Test()]
- public void TestBug531525 ()
- {
- RunTest (
-@"public class Foo {
- void $@IdeAppWorkspaceSolutionLoaded (
-object sender,
-SolutionEventArgs e)
- {}
-
- public void Main()
- {
- IdeApp.Workspace.SolutionLoaded += @IdeAppWorkspaceSolutionLoaded;
- }
-}
-");
- }
-
- /// <summary>
- /// Bug 545361 - Method -> Rename doesn't update instance in delegate constructor
- /// </summary>
- [Test()]
- public void TestBug545361 ()
- {
- RunTest (
-@"class TestClass {
- public void $@FlyZoomInCallback ()
- {
- }
- public void TestMethod (int a)
- {
- GLib.Idle.Add(new GLib.IdleHandler(@FlyZoomInCallback));
- }
-}
-");
- }
-
-
- /// <summary>
- /// Bug 547949 - Rename partial classes does not rename both classes
- /// </summary>
- [Test()]
- public void TestBug547949 ()
- {
- RunTest (
-@"partial class $@MyTest
-{
- void Test1 ()
- {
- @MyTest test;
- }
-
- public @MyTest (int a)
- {
- }
-}
-
-partial class @MyTest
-{
- public @MyTest ()
- {
- }
-}
-");
- }
-
- /// <summary>
- /// Bug 549858 - Refactoring does not change properties in lambda expressions
- /// </summary>
- [Test()]
- public void TestBug549858 ()
- {
- RunTest (
-@"public delegate S MyFunc<T, S> (T t);
-
-public static class TypeManager
-{
- public static object GetProperty<TType> (MyFunc<TType, object> expression)
- {
- return null;
- }
-}
-
-class TestClass
-{
- public string $@Value { get; set; }
-
- static object ValueProperty = TypeManager.GetProperty<TestClass> (x => x.@Value);
-}
-");
- }
-
- /// <summary>
- /// Bug 585454 - Lacking one reference to an enum type
- /// </summary>
- [Test()]
- public void TestBug585454 ()
- {
- RunTest (
-@"
-internal enum $@EnumTest {
- Value1,
- Value2
-}
-class DemoMain
-{
- @EnumTest innerEnum;
-
- public DemoMain (@EnumTest theEnum) {
- innerEnum = theEnum;
-
- if (innerEnum == @EnumTest.Value1)
- throw new Exception ();
- }
-}
-");
- }
-
- /// <summary>
- /// Bug 587071 - Find references shows a lot of methods with the same name but not from the correct class
- /// </summary>
- [Test()]
- public void TestBug587071 ()
- {
- RunTest (
-@"
-
-class Base {
-}
-
-class A : Base
-{
- public virtual void $@FooBar () {}
-}
-
-
-class B : Base
-{
- public virtual void FooBar () {}
-}
-");
- }
-
- /// <summary>
- /// Bug 587530 – for/foreach rename refactoring ignores the scope
- /// </summary>
- [Test()]
- public void TestBug587530 ()
- {
- LocalVariable localVariable = new LocalVariable (null,
- "t",
- DomReturnType.Int32,
- new DomRegion (12, 8, 13, 1));
- RunTest (
-@"using System;
-
-class C
-{
- static void Main ()
- {
- for (int t = 0;
-t < 10;
-++t)
- Console.WriteLine (t);
-
- for (int $@t = 0;
-@t < 10;
-++@t)
- Console.WriteLine (@t);
- }
-}
-", localVariable);
- }
-
- /// <summary>
- /// Bug 605104 - Highlighter fails to find an instance of my method
- /// </summary>
- [Test()]
- public void TestBug605104 ()
- {
- RunTest (
-@"class TestClass
-{
- bool $@RemoveFromFiltered (
-object item)
- {
- return item != null;
- }
-
- void RemoveFromFilteredAndGroup (object item)
- {
- if (@RemoveFromFiltered (item) && item != null)
- ;
- }
-}
-");
- }
-
- /// <summary>
- /// Bug 615702 - In-place variable renaming can't rename foreach loop variables
- /// </summary>
- [Test()]
- public void TestBug615702 ()
- {
- LocalVariable localVariable = new LocalVariable (null,
- "obj",
- DomReturnType.Int32,
- new DomRegion (6, 3, 8, 3));
- RunTest (
-@"class FooBar
-{
- public static void Main (string[] args)
- {
- foreach (object $@obj in new object[3])
- {
- Console.WriteLine (@obj.GetType());
- }
- }
-}", localVariable);
- }
-
-
- /// <summary>
- /// Bug 615983 - Refactoring does not include object initializers
- /// </summary>
- [Test()]
- public void TestBug615983 ()
- {
- RunTest (
-@"class test
-{
- public string $@property { get; set; }
-
- void Test ()
- {
- test product = new test {
- @property = ""asdf""
- };
- product.@property = ""asdf"";
- }
-}");
- }
-
- /// <summary>
- /// Bug 693228 - Rename in body of foreach loop doesn't change declaration instance
- /// </summary>
- [Test()]
- public void TestBug693228 ()
- {
- LocalVariable localVariable = new LocalVariable (null,
- "arg",
- DomReturnType.String,
- new DomRegion (4, 29, 6, 9));
- RunTest (
-@"class TestClass {
- public static void Main (string[] args)
- {
- foreach (var $@arg in args) {
- Console.WriteLine (@arg);
- }
-
- }
-}
-", localVariable);
- }
-
- /*
- [Test()]
- public void FindInterfaceMethodReferences ()
- {
- RunTest (
-@"
-public interface ITest {
- void $@doSomething(double par);
-}
-
-public abstract class AbstractTest: ITest {
- public abstract void @doSomething(double par); // Not renamed!!
-}
-
-public class ConcreteTest: AbstractTest {
- public override void @doSomething(double par)
- {
- base.@doSomething(par);
- }
-}
-");
- }
-
- [Test()]
- public void FindOverridenMethodReferences ()
- {
- RunTest (
-@"
-public class BaseTest
-{
- public virtual void $@MyMethod()
- {
- @MyMethod ();
- }
-}
-
-public class Test : BaseTest
-{
- public override void @MyMethod()
- {
- @MyMethod ();
- }
-}
-");
- }*/
-
- }
-}
+//using System;
+//using System.Collections.Generic;
+//using System.Text;
+//
+//using NUnit.Framework;
+//using Mono.TextEditor;
+//using MonoDevelop.Core;
+//using MonoDevelop.Projects;
+//using MonoDevelop.Projects.Dom;
+//using MonoDevelop.Projects.Dom.Parser;
+//using MonoDevelop.CSharpBinding;
+//using MonoDevelop.Projects.CodeGeneration;
+//using MonoDevelop.Projects.Text;
+//using ICSharpCode.OldNRefactory.Visitors;
+//using MonoDevelop.CSharp.Parser;
+//using MonoDevelop.CSharp.Resolver;
+//using MonoDevelop.CSharp.Refactoring;
+//
+//namespace MonoDevelop.CSharpBinding.Tests
+//{
+// [TestFixture]
+// public class FindMemberVisitorTests : UnitTests.TestBase
+// {
+// #region TestHelper
+// static McsParser parser = new McsParser ();
+//
+// void RunTest (string test)
+// {
+// RunTest (test, null);
+// }
+//
+// void RunTest (string test, LocalVariable localVariable)
+// {
+// StringBuilder testText = new StringBuilder ();
+// List<DomLocation> expectedReferences = new List<DomLocation> ();
+// DomLocation memberLocation = DomLocation.Empty;
+// int line = 1, col = 1;
+// foreach (char ch in test) {
+// switch (ch) {
+// case '$':
+// memberLocation = new DomLocation (line, col);
+// break;
+// case '@':
+// expectedReferences.Add (new DomLocation (line, col));
+// break;
+// default:
+// col++;
+// if (ch == '\n') {
+// col = 1;
+// line++;
+// }
+// testText.Append (ch);
+// break;
+// }
+// }
+// DotNetProject project = new DotNetAssemblyProject ("C#");
+// project.FileName = "/tmp/a.csproj";
+//
+// SimpleProjectDom dom = new SimpleProjectDom ();
+// dom.Project = project;
+// ProjectDomService.RegisterDom (dom, "Project:" + project.FileName);
+//
+// ParsedDocument parsedDocument = parser.Parse (null, "a.cs", testText.ToString ());
+// dom.Add (parsedDocument.CompilationUnit);
+//
+// TestViewContent testViewContent = new TestViewContent ();
+// testViewContent.Name = "a.cs";
+// testViewContent.Text = testText.ToString ();
+// // RefactorerContext ctx = new RefactorerContext (dom, new DumbTextFileProvider(testViewContent), null);
+// NRefactoryResolver resolver = new NRefactoryResolver (dom,
+// parsedDocument.CompilationUnit,
+// testViewContent.Data,
+// "a.cs");
+// SearchMemberVisitor smv = new SearchMemberVisitor (memberLocation.Line);
+// if (localVariable != null) {
+// ((LocalVariable)localVariable).DeclaringMember = parsedDocument.CompilationUnit.GetMemberAt (expectedReferences[0]);
+// smv.FoundMember = localVariable;
+// } else {
+// smv.Visit (parsedDocument.CompilationUnit, null);
+// if (smv.FoundMember == null) {
+// ResolveResult resolveResult = resolver.ResolveIdentifier ("a", memberLocation);
+// if (resolveResult is LocalVariableResolveResult)
+// smv.FoundMember = ((LocalVariableResolveResult)resolveResult).LocalVariable;
+// }
+// }
+//
+// Assert.IsNotNull (smv.FoundMember, "Member to search not found.");
+// if (smv.FoundMember is IType) {
+// smv.FoundMember = dom.GetType (((IType)smv.FoundMember).FullName,
+// ((IType)smv.FoundMember).TypeParameters.Count,
+// true);
+// }
+// FindMemberAstVisitor astVisitor = new FindMemberAstVisitor (testViewContent.GetTextEditorData ().Document, smv.FoundMember);
+// astVisitor.RunVisitor (resolver);
+//
+// int i = 0, j = 0;
+// StringBuilder errorText = new StringBuilder ();
+// Document doc = new Document ();
+// doc.Text = testViewContent.Text;
+// while (i < expectedReferences.Count && j < astVisitor.FoundReferences.Count) {
+//
+// if (expectedReferences[i].Line != astVisitor.FoundReferences[j].Line || expectedReferences[i].Column != astVisitor.FoundReferences[j].Column) {
+// if (expectedReferences[i].Line < astVisitor.FoundReferences[j].Line) {
+// errorText.Append ("Reference at line " + expectedReferences[i].Line + " not found.");
+// errorText.AppendLine ();
+// errorText.Append (doc.GetTextAt (doc.GetLine (expectedReferences[i].Line)).Replace ('\t', ' '));
+// errorText.AppendLine ();
+// errorText.Append (new string (' ', expectedReferences[i].Column));errorText.Append ('^');
+// errorText.AppendLine ();
+// i++;
+// continue;
+// }
+// if (expectedReferences[i].Line > astVisitor.FoundReferences[j].Line) {
+// errorText.Append ("Found unexpected Reference at line " + astVisitor.FoundReferences[j].Line);
+// errorText.AppendLine ();
+// errorText.Append (doc.GetTextAt (doc.GetLine (astVisitor.FoundReferences[j].Line)).Replace ('\t', ' '));
+// errorText.AppendLine ();
+// errorText.Append (new string (' ', astVisitor.FoundReferences[j].Column));errorText.Append ('^');
+// errorText.AppendLine ();
+// j++;
+// continue;
+// }
+//
+// errorText.Append ("Column mismatch at line " + astVisitor.FoundReferences[j].Line + " was: " + astVisitor.FoundReferences[j].Column + " should be:" + expectedReferences[i].Column);
+// errorText.AppendLine ();
+// errorText.Append (doc.GetTextAt (doc.GetLine (astVisitor.FoundReferences[j].Line)).Replace ('\t', ' '));
+// errorText.Append (new string (' ', expectedReferences[i].Column));errorText.Append ('^');
+// errorText.AppendLine ();
+// errorText.Append (new string (' ', astVisitor.FoundReferences[j].Column));errorText.Append ('^');
+// errorText.AppendLine ();
+// }
+// i++;j++;
+// }
+// while (i < expectedReferences.Count) {
+// errorText.Append ("Reference at line " + expectedReferences[i].Line + " not found.");
+// errorText.AppendLine ();
+// errorText.Append (doc.GetTextAt (doc.GetLine (expectedReferences[i].Line)).Replace ('\t', ' '));
+// errorText.AppendLine ();
+// errorText.Append (new string (' ', expectedReferences[j].Column));errorText.Append ('^');
+// errorText.AppendLine ();
+// i++;
+// }
+// while (j < astVisitor.FoundReferences.Count) {
+// errorText.Append ("Found unexpected Reference at line " + astVisitor.FoundReferences[j].Line);
+// errorText.AppendLine ();
+// errorText.Append (doc.GetTextAt (doc.GetLine (astVisitor.FoundReferences[j].Line)).Replace ('\t', ' '));
+// errorText.AppendLine ();
+// errorText.Append (new string (' ', astVisitor.FoundReferences[i].Column));errorText.Append ('^');
+// errorText.AppendLine ();
+// j++;
+// }
+// if (errorText.Length > 0)
+// Assert.Fail ("Member to find:" + smv.FoundMember + Environment.NewLine + errorText.ToString () + Environment.NewLine + "found : " + astVisitor.FoundReferences.Count + " expected:" + expectedReferences.Count);
+// }
+//
+// class DumbTextFileProvider : ITextFileProvider
+// {
+// IEditableTextFile file;
+// public DumbTextFileProvider (IEditableTextFile file)
+// {
+// this.file = file;
+// }
+// public IEditableTextFile GetEditableTextFile (FilePath filePath)
+// {
+// return file;
+// }
+// }
+//
+// class SearchMemberVisitor : AbstractDomVisitor<object, object>
+// {
+// public INode FoundMember {
+// get;
+// set;
+// }
+// int lineNumber;
+// public SearchMemberVisitor (int lineNumber)
+// {
+// this.lineNumber = lineNumber;
+// }
+//
+// void Check (IMember member)
+// {
+// if (member.Location.Line == lineNumber) {
+// FoundMember = member;
+// }
+// }
+//
+// public override object Visit (IType type, object data)
+// {
+// Check (type);
+// foreach (IMember member in type.Members) {
+// member.AcceptVisitor (this, data);
+// }
+// return base.Visit (type, data);
+// }
+//
+// public override object Visit (IField field, object data)
+// {
+// Check (field);
+// return base.Visit (field, data);
+// }
+//
+// public override object Visit (IMethod method, object data)
+// {
+// Check (method);
+// return base.Visit (method, data);
+// }
+//
+// public override object Visit (MonoDevelop.Projects.Dom.IParameter parameter, object data)
+// {
+// if (parameter.Location.Line == lineNumber)
+// FoundMember = parameter;
+// return base.Visit (parameter, data);
+// }
+//
+// public override object Visit (IProperty property, object data)
+// {
+// Check (property);
+// return base.Visit (property, data);
+// }
+//
+// public override object Visit (IEvent evt, object data)
+// {
+// Check (evt);
+// return base.Visit (evt, data);
+// }
+//
+// public override object Visit (LocalVariable var, object data)
+// {
+// if (var.Region.Start.Line == lineNumber)
+// FoundMember = var;
+// return base.Visit (var, data);
+// }
+// }
+// #endregion
+//
+// [Test()]
+// public void FindClassReferences ()
+// {
+// RunTest (
+//@"class $@Test {
+// @Test (@Test t)
+// {
+// }
+// ~@Test ()
+// {}
+//
+// void TestMe(@Test p)
+// {
+// @Test i;
+// }
+//}
+//
+//delegate @Test TestDelegate (@Test test);
+//
+//class OuterTest : @Test
+//{
+// @Test testField;
+// @Test TestProperty { get { } }
+//
+// event @Test TestEvent;
+// public @Test this[int i] { get { } }
+// public int this[@Test t] { get { } }
+//
+// public OuterTest (object t) : base ((@Test)t)
+// {
+// }
+//
+// @Test Outer (object o)
+// {
+// return ((@Test)o);
+// }
+//}
+//namespace SomethingDifferent
+//{
+// class Test
+// {
+// }
+//}
+//");
+// }
+//
+// [Test()]
+// public void FindFieldReferences ()
+// {
+// RunTest (
+//@"class TestClass {
+// protected int $@testField;
+//
+// TestClass ()
+// {
+// @testField = 5;
+// }
+//
+// void TestMe(int f)
+// {
+// this.@testField = f;
+// }
+//}
+//
+//
+//class OuterTest : TestClass
+//{
+// int TestProperty { get { return base.@testField; } }
+//}
+//
+//namespace SomethingDifferent
+//{
+// class Test
+// {
+// int testField;
+// }
+//}
+//");
+// }
+//
+// [Test()]
+// public void FindEventReferences ()
+// {
+// RunTest (
+//@"class TestClass {
+// delegate void TestEventDelegate ();
+//
+// public event TestEventDelegate $@MyEvent;
+//
+// TestClass ()
+// {
+// @MyEvent += TestMe;
+// }
+//
+// void TestMe()
+// {
+// }
+//}
+//
+//
+//class OuterTest : TestClass
+//{
+// void Test ()
+// {
+// @MyEvent -= TestMe;
+// }
+//}
+//
+//namespace SomethingDifferent
+//{
+// class Test
+// {
+// public event TestClass.TestEventDelegate MyEvent;
+// }
+//}
+//");
+// }
+//
+// [Test()]
+// public void FindMethodReferences ()
+// {
+// RunTest (
+//@"class TestClass {
+// public void $@TestMethod (
+//int a, int b)
+// {
+// }
+// public void TestMethod (int a)
+// {
+// @TestMethod (a, 6);
+// }
+// public void TestMethod ()
+// {
+// TestMethod (4);
+// }
+//}
+//
+//
+//class OuterTest : TestClass
+//{
+// void A ()
+// {
+// @TestMethod (5, 4);
+// TestMethod (5);
+// }
+//}
+//
+//namespace SomethingOuter
+//{
+// class Test
+// {
+// void Bla (TestClass t)
+// {
+// t.@TestMethod (5, 4);
+// }
+// }
+//}
+//");
+// }
+//
+// [Test()]
+// public void FindPropertyReferences ()
+// {
+// RunTest (
+//@"class TestClass {
+// public int $@MyProperty { get {} set {}}
+//
+// public void TestMethod (int a)
+// {
+// @MyProperty = a;
+// }
+// public void TestMethod ()
+// {
+// WriteLine (this.@MyProperty);
+// }
+//}
+//
+//
+//class OuterTest : TestClass
+//{
+// void A ()
+// {
+// @MyProperty = 5;
+// WriteLine (base.@MyProperty);
+// WriteLine (this.@MyProperty);
+// }
+//}
+//
+//namespace SomethingOuter
+//{
+// class Test
+// {
+// void Bla (TestClass t)
+// {
+// t.@MyProperty = 5;
+// }
+// }
+//}
+//");
+// }
+//
+// [Test()]
+// public void FindParameterReferences ()
+// {
+// RunTest (
+//@"class TestClass {
+// public void TestMethod (
+//int $@a,
+//int b)
+// {
+// WriteLine (@a);
+// @a--;
+// b = @a;
+// @a = b;
+// }
+//}
+//");
+// }
+//
+// [Test()]
+// public void FindLocalVariableReferences ()
+// {
+// RunTest (
+//@"class TestClass {
+// public void TestMethod ()
+// {
+// int $@a;
+// int b = 5;
+// WriteLine (@a);
+// @a--;
+// b = @a;
+// @a = b;
+// }
+//
+// public void TestMethod2 ()
+// {
+// int a;
+// WriteLine (a);
+// a--;
+// int b = a;
+// }
+//}
+//");
+// }
+//
+// /// <summary>
+// /// Bug 480492 - Find field references returns incorrect references
+// /// </summary>
+// [Test()]
+// public void TestBug480492 ()
+// {
+// RunTest (
+//@"class BaseClass
+//{
+//}
+//
+//class A : BaseClass
+//{
+// BaseClass $@myField;
+//}
+//
+//class B : BaseClass
+//{
+// BaseClass myField;
+// void TestMe ()
+// {
+// myField = null; // this should not be found.
+// this.myField = null; // this should not be found.
+// }
+//}");
+// }
+//
+// /// <summary>
+// /// Bug 493202 - List References on private constructor yields nothing
+// /// </summary>
+// [Test()]
+// public void TestBug493202 ()
+// {
+// RunTest (
+//@"public class Foo {
+// $@Foo () //right click on Foo and list constructor references
+// {}
+//
+// public Foo Instance()
+// {
+// return new @Foo ();
+// }
+//}
+//");
+// }
+//
+//
+//
+// /// <summary>
+// /// Bug 531525 - Refactoring + Renaming fails for delegate
+// /// </summary>
+// [Test()]
+// public void TestBug531525 ()
+// {
+// RunTest (
+//@"public class Foo {
+// void $@IdeAppWorkspaceSolutionLoaded (
+//object sender,
+//SolutionEventArgs e)
+// {}
+//
+// public void Main()
+// {
+// IdeApp.Workspace.SolutionLoaded += @IdeAppWorkspaceSolutionLoaded;
+// }
+//}
+//");
+// }
+//
+// /// <summary>
+// /// Bug 545361 - Method -> Rename doesn't update instance in delegate constructor
+// /// </summary>
+// [Test()]
+// public void TestBug545361 ()
+// {
+// RunTest (
+//@"class TestClass {
+// public void $@FlyZoomInCallback ()
+// {
+// }
+// public void TestMethod (int a)
+// {
+// GLib.Idle.Add(new GLib.IdleHandler(@FlyZoomInCallback));
+// }
+//}
+//");
+// }
+//
+//
+// /// <summary>
+// /// Bug 547949 - Rename partial classes does not rename both classes
+// /// </summary>
+// [Test()]
+// public void TestBug547949 ()
+// {
+// RunTest (
+//@"partial class $@MyTest
+//{
+// void Test1 ()
+// {
+// @MyTest test;
+// }
+//
+// public @MyTest (int a)
+// {
+// }
+//}
+//
+//partial class @MyTest
+//{
+// public @MyTest ()
+// {
+// }
+//}
+//");
+// }
+//
+// /// <summary>
+// /// Bug 549858 - Refactoring does not change properties in lambda expressions
+// /// </summary>
+// [Test()]
+// public void TestBug549858 ()
+// {
+// RunTest (
+//@"public delegate S MyFunc<T, S> (T t);
+//
+//public static class TypeManager
+//{
+// public static object GetProperty<TType> (MyFunc<TType, object> expression)
+// {
+// return null;
+// }
+//}
+//
+//class TestClass
+//{
+// public string $@Value { get; set; }
+//
+// static object ValueProperty = TypeManager.GetProperty<TestClass> (x => x.@Value);
+//}
+//");
+// }
+//
+// /// <summary>
+// /// Bug 585454 - Lacking one reference to an enum type
+// /// </summary>
+// [Test()]
+// public void TestBug585454 ()
+// {
+// RunTest (
+//@"
+//internal enum $@EnumTest {
+// Value1,
+// Value2
+//}
+//class DemoMain
+//{
+// @EnumTest innerEnum;
+//
+// public DemoMain (@EnumTest theEnum) {
+// innerEnum = theEnum;
+//
+// if (innerEnum == @EnumTest.Value1)
+// throw new Exception ();
+// }
+//}
+//");
+// }
+//
+// /// <summary>
+// /// Bug 587071 - Find references shows a lot of methods with the same name but not from the correct class
+// /// </summary>
+// [Test()]
+// public void TestBug587071 ()
+// {
+// RunTest (
+//@"
+//
+//class Base {
+//}
+//
+//class A : Base
+//{
+// public virtual void $@FooBar () {}
+//}
+//
+//
+//class B : Base
+//{
+// public virtual void FooBar () {}
+//}
+//");
+// }
+//
+// /// <summary>
+// /// Bug 587530 – for/foreach rename refactoring ignores the scope
+// /// </summary>
+// [Test()]
+// public void TestBug587530 ()
+// {
+// LocalVariable localVariable = new LocalVariable (null,
+// "t",
+// DomReturnType.Int32,
+// new DomRegion (12, 8, 13, 1));
+// RunTest (
+//@"using System;
+//
+//class C
+//{
+// static void Main ()
+// {
+// for (int t = 0;
+//t < 10;
+//++t)
+// Console.WriteLine (t);
+//
+// for (int $@t = 0;
+//@t < 10;
+//++@t)
+// Console.WriteLine (@t);
+// }
+//}
+//", localVariable);
+// }
+//
+// /// <summary>
+// /// Bug 605104 - Highlighter fails to find an instance of my method
+// /// </summary>
+// [Test()]
+// public void TestBug605104 ()
+// {
+// RunTest (
+//@"class TestClass
+//{
+// bool $@RemoveFromFiltered (
+//object item)
+// {
+// return item != null;
+// }
+//
+// void RemoveFromFilteredAndGroup (object item)
+// {
+// if (@RemoveFromFiltered (item) && item != null)
+// ;
+// }
+//}
+//");
+// }
+//
+// /// <summary>
+// /// Bug 615702 - In-place variable renaming can't rename foreach loop variables
+// /// </summary>
+// [Test()]
+// public void TestBug615702 ()
+// {
+// LocalVariable localVariable = new LocalVariable (null,
+// "obj",
+// DomReturnType.Int32,
+// new DomRegion (6, 3, 8, 3));
+// RunTest (
+//@"class FooBar
+//{
+// public static void Main (string[] args)
+// {
+// foreach (object $@obj in new object[3])
+// {
+// Console.WriteLine (@obj.GetType());
+// }
+// }
+//}", localVariable);
+// }
+//
+//
+// /// <summary>
+// /// Bug 615983 - Refactoring does not include object initializers
+// /// </summary>
+// [Test()]
+// public void TestBug615983 ()
+// {
+// RunTest (
+//@"class test
+//{
+// public string $@property { get; set; }
+//
+// void Test ()
+// {
+// test product = new test {
+// @property = ""asdf""
+// };
+// product.@property = ""asdf"";
+// }
+//}");
+// }
+//
+// /// <summary>
+// /// Bug 693228 - Rename in body of foreach loop doesn't change declaration instance
+// /// </summary>
+// [Test()]
+// public void TestBug693228 ()
+// {
+// LocalVariable localVariable = new LocalVariable (null,
+// "arg",
+// DomReturnType.String,
+// new DomRegion (4, 29, 6, 9));
+// RunTest (
+//@"class TestClass {
+// public static void Main (string[] args)
+// {
+// foreach (var $@arg in args) {
+// Console.WriteLine (@arg);
+// }
+//
+// }
+//}
+//", localVariable);
+// }
+//
+// /*
+// [Test()]
+// public void FindInterfaceMethodReferences ()
+// {
+// RunTest (
+//@"
+//public interface ITest {
+// void $@doSomething(double par);
+//}
+//
+//public abstract class AbstractTest: ITest {
+// public abstract void @doSomething(double par); // Not renamed!!
+//}
+//
+//public class ConcreteTest: AbstractTest {
+// public override void @doSomething(double par)
+// {
+// base.@doSomething(par);
+// }
+//}
+//");
+// }
+//
+// [Test()]
+// public void FindOverridenMethodReferences ()
+// {
+// RunTest (
+//@"
+//public class BaseTest
+//{
+// public virtual void $@MyMethod()
+// {
+// @MyMethod ();
+// }
+//}
+//
+//public class Test : BaseTest
+//{
+// public override void @MyMethod()
+// {
+// @MyMethod ();
+// }
+//}
+//");
+// }*/
+//
+// }
+//}
diff --git a/main/tests/UnitTests/MonoDevelop.CSharpBinding/MemberTests.cs b/main/tests/UnitTests/MonoDevelop.CSharpBinding/MemberTests.cs
index 132b5c7331..5db91c48e7 100644
--- a/main/tests/UnitTests/MonoDevelop.CSharpBinding/MemberTests.cs
+++ b/main/tests/UnitTests/MonoDevelop.CSharpBinding/MemberTests.cs
@@ -1,211 +1,209 @@
-//
-// MemberTests.cs
+////
+//// MemberTests.cs
+////
+//// Author:
+//// Mike Krüger <mkrueger@novell.com>
+////
+//// Copyright (C) 2008 Novell, Inc (http://www.novell.com)
+////
+//// Permission is hereby granted, free of charge, to any person obtaining
+//// a copy of this software and associated documentation files (the
+//// "Software"), to deal in the Software without restriction, including
+//// without limitation the rights to use, copy, modify, merge, publish,
+//// distribute, sublicense, and/or sell copies of the Software, and to
+//// permit persons to whom the Software is furnished to do so, subject to
+//// the following conditions:
+////
+//// The above copyright notice and this permission notice shall be
+//// included in all copies or substantial portions of the Software.
+////
+//// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+//// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+//// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+//// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+//// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+//// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+//// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+////
//
-// Author:
-// Mike Krüger <mkrueger@novell.com>
+//using System;
+//using System.Collections.Generic;
//
-// Copyright (C) 2008 Novell, Inc (http://www.novell.com)
+//using NUnit.Framework;
+//using MonoDevelop.CSharpBinding;
+//using MonoDevelop.CSharp.Parser;
//
-// Permission is hereby granted, free of charge, to any person obtaining
-// a copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to
-// the following conditions:
-//
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-//
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//namespace MonoDevelop.CSharpBinding.Tests
+//{
+// [TestFixture]
+// public class MemberTests
+// {
+// void DoTestFields (IParser parser)
+// {
+// ICompilationUnit unit = parser.Parse (null, "a.cs", @"class AClass { int x, y; }").CompilationUnit;
+// Assert.AreEqual (1, unit.Types.Count);
+// IType type = unit.Types[0];
+//
+// Assert.AreEqual (2, type.FieldCount);
+// List<IField> fields = new List<IField> (type.Fields);
+// Assert.AreEqual ("x", fields[0].Name);
+// Assert.AreEqual ("System.Int32", fields[0].ReturnType.FullName);
+// Assert.AreEqual ("y", fields[1].Name);
+// Assert.AreEqual ("System.Int32", fields[1].ReturnType.FullName);
+// }
+//
+// [Test]
+// public void TestFields ()
+// {
+// DoTestFields (new McsParser ());
+//// DoTestFields (new DomParser ());
+// }
+//
+// void DoTestMethods (IParser parser)
+// {
+// ICompilationUnit unit = parser.Parse (null, "a.cs",
+//@"class AClass {
+// void TestMethod<T> (string a, int b) {}
+// public static void ExtensionMethod (this int a) {};
+//}").CompilationUnit;
+// Assert.AreEqual (1, unit.Types.Count);
+// IType type = unit.Types[0];
+//
+// Assert.AreEqual (2, type.MethodCount);
+// List<IMethod> methods = new List<IMethod> (type.Methods);
+// Assert.AreEqual ("TestMethod", methods[0].Name);
+// Assert.AreEqual (2, methods[0].Parameters.Count);
+// Assert.AreEqual ("a", methods[0].Parameters[0].Name);
+// Assert.AreEqual ("b", methods[0].Parameters[1].Name);
+//
+// Assert.IsFalse (methods[1].IsConstructor);
+// Assert.IsTrue (methods[1].IsExtension);
+// Assert.AreEqual (1, methods[1].Parameters.Count);
+// Assert.AreEqual ("a", methods[1].Parameters[0].Name);
+// }
+//
+// [Test]
+// public void TestMethods ()
+// {
+// DoTestMethods (new McsParser ());
+//// DoTestMethods (new DomParser ());
+// }
+//
+// void DoTestConstructor (IParser parser)
+// {
+// ICompilationUnit unit = parser.Parse (null, "a.cs",
+//@"public abstract class BaseClass {
+// BaseClass () {}
+// protected BaseClass(int id)
+// {
+// }
+//}").CompilationUnit;
+// Assert.AreEqual (1, unit.Types.Count);
+// IType type = unit.Types[0];
+//
+// Assert.AreEqual (2, type.ConstructorCount);
+// List<IMethod> methods = new List<IMethod> (type.Methods);
+// Assert.IsTrue (methods[0].IsConstructor);
+// Assert.IsTrue (methods[1].IsConstructor);
+// }
+//
+// [Test]
+// public void TestConstructor ()
+// {
+// DoTestConstructor (new McsParser ());
+//// DoTestConstructor (new DomParser ());
+// }
+//
+// void DoTestProperties (IParser parser)
+// {
+// ICompilationUnit unit = parser.Parse (null, "a.cs",
+//@"class AClass {
+// int MyProperty {
+// get { }
+// set { }
+// }
+// string MyProperty2 {
+// set { }
+// }
+// string MyProperty3 {
+// get { }
+// }
+//}").CompilationUnit;
+// Assert.AreEqual (1, unit.Types.Count);
+// IType type = unit.Types[0];
+//
+// Assert.AreEqual (3, type.PropertyCount);
+// List<IProperty> properties = new List<IProperty> (type.Properties);
+// Assert.AreEqual ("MyProperty", properties[0].Name);
+// Assert.IsTrue (properties[0].HasGet);
+// Assert.IsTrue (properties[0].HasSet);
+// Assert.IsFalse (properties[0].IsIndexer);
+//
+// Assert.AreEqual ("MyProperty2", properties[1].Name);
+// Assert.IsFalse (properties[1].HasGet);
+// Assert.IsTrue (properties[1].HasSet);
+// Assert.IsFalse (properties[1].IsIndexer);
+//
+// Assert.AreEqual ("MyProperty3", properties[2].Name);
+// Assert.IsTrue (properties[2].HasGet);
+// Assert.IsFalse (properties[2].HasSet);
+// Assert.IsFalse (properties[2].IsIndexer);
+// }
+//
+// [Test]
+// public void TestProperties ()
+// {
+// DoTestProperties (new McsParser ());
+//// DoTestProperties (new DomParser ());
+// }
+//
+// void DoTestIndexer (IParser parser)
+// {
+// ICompilationUnit unit = parser.Parse (null, "a.cs",
+//@"class AClass {
+// int this[int a] {
+// get { }
+// set { }
+// }
+//}").CompilationUnit;
+// Assert.AreEqual (1, unit.Types.Count);
+// IType type = unit.Types[0];
+//
+// Assert.AreEqual (1, type.IndexerCount);
+// List<IProperty> properties = new List<IProperty> (type.Properties);
+// Assert.IsTrue (properties[0].IsIndexer);
+// Assert.AreEqual (1, properties[0].Parameters.Count);
+// Assert.AreEqual ("a", properties[0].Parameters[0].Name);
+// }
+//
+// [Test]
+// public void TestIndexer ()
+// {
+// DoTestIndexer (new McsParser ());
+//// DoTestIndexer (new DomParser ());
+// }
//
-
-using System;
-using System.Collections.Generic;
-
-using NUnit.Framework;
-using MonoDevelop.Projects.Dom;
-using MonoDevelop.Projects.Dom.Parser;
-using MonoDevelop.CSharpBinding;
-using MonoDevelop.CSharp.Parser;
-
-namespace MonoDevelop.CSharpBinding.Tests
-{
- [TestFixture]
- public class MemberTests
- {
- void DoTestFields (IParser parser)
- {
- ICompilationUnit unit = parser.Parse (null, "a.cs", @"class AClass { int x, y; }").CompilationUnit;
- Assert.AreEqual (1, unit.Types.Count);
- IType type = unit.Types[0];
-
- Assert.AreEqual (2, type.FieldCount);
- List<IField> fields = new List<IField> (type.Fields);
- Assert.AreEqual ("x", fields[0].Name);
- Assert.AreEqual ("System.Int32", fields[0].ReturnType.FullName);
- Assert.AreEqual ("y", fields[1].Name);
- Assert.AreEqual ("System.Int32", fields[1].ReturnType.FullName);
- }
-
- [Test]
- public void TestFields ()
- {
- DoTestFields (new McsParser ());
-// DoTestFields (new DomParser ());
- }
-
- void DoTestMethods (IParser parser)
- {
- ICompilationUnit unit = parser.Parse (null, "a.cs",
-@"class AClass {
- void TestMethod<T> (string a, int b) {}
- public static void ExtensionMethod (this int a) {};
-}").CompilationUnit;
- Assert.AreEqual (1, unit.Types.Count);
- IType type = unit.Types[0];
-
- Assert.AreEqual (2, type.MethodCount);
- List<IMethod> methods = new List<IMethod> (type.Methods);
- Assert.AreEqual ("TestMethod", methods[0].Name);
- Assert.AreEqual (2, methods[0].Parameters.Count);
- Assert.AreEqual ("a", methods[0].Parameters[0].Name);
- Assert.AreEqual ("b", methods[0].Parameters[1].Name);
-
- Assert.IsFalse (methods[1].IsConstructor);
- Assert.IsTrue (methods[1].IsExtension);
- Assert.AreEqual (1, methods[1].Parameters.Count);
- Assert.AreEqual ("a", methods[1].Parameters[0].Name);
- }
-
- [Test]
- public void TestMethods ()
- {
- DoTestMethods (new McsParser ());
-// DoTestMethods (new DomParser ());
- }
-
- void DoTestConstructor (IParser parser)
- {
- ICompilationUnit unit = parser.Parse (null, "a.cs",
-@"public abstract class BaseClass {
- BaseClass () {}
- protected BaseClass(int id)
- {
- }
-}").CompilationUnit;
- Assert.AreEqual (1, unit.Types.Count);
- IType type = unit.Types[0];
-
- Assert.AreEqual (2, type.ConstructorCount);
- List<IMethod> methods = new List<IMethod> (type.Methods);
- Assert.IsTrue (methods[0].IsConstructor);
- Assert.IsTrue (methods[1].IsConstructor);
- }
-
- [Test]
- public void TestConstructor ()
- {
- DoTestConstructor (new McsParser ());
-// DoTestConstructor (new DomParser ());
- }
-
- void DoTestProperties (IParser parser)
- {
- ICompilationUnit unit = parser.Parse (null, "a.cs",
-@"class AClass {
- int MyProperty {
- get { }
- set { }
- }
- string MyProperty2 {
- set { }
- }
- string MyProperty3 {
- get { }
- }
-}").CompilationUnit;
- Assert.AreEqual (1, unit.Types.Count);
- IType type = unit.Types[0];
-
- Assert.AreEqual (3, type.PropertyCount);
- List<IProperty> properties = new List<IProperty> (type.Properties);
- Assert.AreEqual ("MyProperty", properties[0].Name);
- Assert.IsTrue (properties[0].HasGet);
- Assert.IsTrue (properties[0].HasSet);
- Assert.IsFalse (properties[0].IsIndexer);
-
- Assert.AreEqual ("MyProperty2", properties[1].Name);
- Assert.IsFalse (properties[1].HasGet);
- Assert.IsTrue (properties[1].HasSet);
- Assert.IsFalse (properties[1].IsIndexer);
-
- Assert.AreEqual ("MyProperty3", properties[2].Name);
- Assert.IsTrue (properties[2].HasGet);
- Assert.IsFalse (properties[2].HasSet);
- Assert.IsFalse (properties[2].IsIndexer);
- }
-
- [Test]
- public void TestProperties ()
- {
- DoTestProperties (new McsParser ());
-// DoTestProperties (new DomParser ());
- }
-
- void DoTestIndexer (IParser parser)
- {
- ICompilationUnit unit = parser.Parse (null, "a.cs",
-@"class AClass {
- int this[int a] {
- get { }
- set { }
- }
-}").CompilationUnit;
- Assert.AreEqual (1, unit.Types.Count);
- IType type = unit.Types[0];
-
- Assert.AreEqual (1, type.IndexerCount);
- List<IProperty> properties = new List<IProperty> (type.Properties);
- Assert.IsTrue (properties[0].IsIndexer);
- Assert.AreEqual (1, properties[0].Parameters.Count);
- Assert.AreEqual ("a", properties[0].Parameters[0].Name);
- }
-
- [Test]
- public void TestIndexer ()
- {
- DoTestIndexer (new McsParser ());
-// DoTestIndexer (new DomParser ());
- }
-
- void DoTestEvents (IParser parser)
- {
- ICompilationUnit unit = parser.Parse (null, "a.cs",
-@"class AClass {
- event EventHandler TestEvent;
-}").CompilationUnit;
- Assert.AreEqual (1, unit.Types.Count);
- IType type = unit.Types[0];
-
- Assert.AreEqual (1, type.EventCount);
- List<IEvent> events = new List<IEvent> (type.Events);
- Assert.AreEqual ("TestEvent", events[0].Name);
- Assert.AreEqual ("EventHandler", events[0].ReturnType.Name);
- }
-
- [Test]
- public void TestEvents ()
- {
- DoTestEvents (new McsParser ());
-// DoTestEvents (new DomParser ());
- }
-
- }
-}
+// void DoTestEvents (IParser parser)
+// {
+// ICompilationUnit unit = parser.Parse (null, "a.cs",
+//@"class AClass {
+// event EventHandler TestEvent;
+//}").CompilationUnit;
+// Assert.AreEqual (1, unit.Types.Count);
+// IType type = unit.Types[0];
+//
+// Assert.AreEqual (1, type.EventCount);
+// List<IEvent> events = new List<IEvent> (type.Events);
+// Assert.AreEqual ("TestEvent", events[0].Name);
+// Assert.AreEqual ("EventHandler", events[0].ReturnType.Name);
+// }
+//
+// [Test]
+// public void TestEvents ()
+// {
+// DoTestEvents (new McsParser ());
+//// DoTestEvents (new DomParser ());
+// }
+//
+// }
+//}
diff --git a/main/tests/UnitTests/MonoDevelop.CSharpBinding/ParameterCompletionTests.cs b/main/tests/UnitTests/MonoDevelop.CSharpBinding/ParameterCompletionTests.cs
index 13556217dd..b355a4d315 100644
--- a/main/tests/UnitTests/MonoDevelop.CSharpBinding/ParameterCompletionTests.cs
+++ b/main/tests/UnitTests/MonoDevelop.CSharpBinding/ParameterCompletionTests.cs
@@ -1,4 +1,4 @@
-//
+//
// ParameterCompletionTests.cs
//
// Author:
@@ -27,78 +27,77 @@
//
using System;
-using NUnit.Framework;
-using MonoDevelop.Ide.Gui;
+using NUnit.Framework;
+using MonoDevelop.Ide.Gui;
using MonoDevelop.Projects;
using MonoDevelop.Core;
-using MonoDevelop.Ide.CodeCompletion;
-using MonoDevelop.Ide.Gui.Content;
-using MonoDevelop.Projects.Dom.Parser;
-using MonoDevelop.CSharp.Resolver;
-using MonoDevelop.CSharp.Parser;
-using MonoDevelop.CSharp.Completion;
+using MonoDevelop.Ide.CodeCompletion;
+using MonoDevelop.Ide.Gui.Content;
+using MonoDevelop.CSharp.Resolver;
+using MonoDevelop.CSharp.Parser;
+using MonoDevelop.CSharp.Completion;
+using MonoDevelop.TypeSystem;
namespace MonoDevelop.CSharpBinding.Tests
{
[TestFixture()]
public class ParameterCompletionTests : UnitTests.TestBase
- {
- static int pcount = 0;
- internal static IParameterDataProvider CreateProvider (string text)
- {
- string parsedText;
- string editorText;
- int cursorPosition = text.IndexOf ('$');
- int endPos = text.IndexOf ('$', cursorPosition + 1);
- if (endPos == -1)
- parsedText = editorText = text.Substring (0, cursorPosition) + text.Substring (cursorPosition + 1);
- else {
- parsedText = text.Substring (0, cursorPosition) + new string (' ', endPos - cursorPosition) + text.Substring (endPos + 1);
- editorText = text.Substring (0, cursorPosition) + text.Substring (cursorPosition + 1, endPos - cursorPosition - 1) + text.Substring (endPos + 1);
- cursorPosition = endPos - 1;
- }
-
- TestWorkbenchWindow tww = new TestWorkbenchWindow ();
- TestViewContent sev = new TestViewContent ();
- DotNetProject project = new DotNetAssemblyProject ("C#");
- project.FileName = GetTempFile (".csproj");
-
- string file = GetTempFile (".cs");
- project.AddFile (file);
-
- ProjectDomService.Load (project);
-// ProjectDom dom = ProjectDomService.GetProjectDom (project);
- ProjectDomService.Parse (project, file, delegate { return parsedText; });
- ProjectDomService.Parse (project, file, delegate { return parsedText; });
-
- sev.Project = project;
- sev.ContentName = file;
- sev.Text = editorText;
- sev.CursorPosition = cursorPosition;
- tww.ViewContent = sev;
- Document doc = new Document (tww);
- doc.ParsedDocument = new McsParser ().Parse (null, sev.ContentName, parsedText);
- CSharpTextEditorCompletion textEditorCompletion = new CSharpTextEditorCompletion (doc);
-
- CodeCompletionContext ctx = new CodeCompletionContext ();
- ctx.TriggerOffset = sev.CursorPosition;
- int line, column;
- sev.GetLineColumnFromPosition (sev.CursorPosition, out line, out column);
- ctx.TriggerLine = line;
- ctx.TriggerLineOffset = column - 1;
-
- IParameterDataProvider result = textEditorCompletion.HandleParameterCompletion (ctx, editorText[cursorPosition - 1]);
- ProjectDomService.Unload (project);
- return result;
- }
+ {
+ static int pcount = 0;
+ internal static IParameterDataProvider CreateProvider (string text)
+ {
+ string parsedText;
+ string editorText;
+ int cursorPosition = text.IndexOf ('$');
+ int endPos = text.IndexOf ('$', cursorPosition + 1);
+ if (endPos == -1)
+ parsedText = editorText = text.Substring (0, cursorPosition) + text.Substring (cursorPosition + 1);
+ else {
+ parsedText = text.Substring (0, cursorPosition) + new string (' ', endPos - cursorPosition) + text.Substring (endPos + 1);
+ editorText = text.Substring (0, cursorPosition) + text.Substring (cursorPosition + 1, endPos - cursorPosition - 1) + text.Substring (endPos + 1);
+ cursorPosition = endPos - 1;
+ }
+
+ TestWorkbenchWindow tww = new TestWorkbenchWindow ();
+ TestViewContent sev = new TestViewContent ();
+ DotNetProject project = new DotNetAssemblyProject ("C#");
+ project.FileName = GetTempFile (".csproj");
+
+ string file = GetTempFile (".cs");
+ project.AddFile (file);
+
+ TypeSystemService.Load (project);
+ var content = TypeSystemService.GetProjectContext (project);
+ var parsedDocument = TypeSystemService.ParseFile (content, file, "text/x-csharp", parsedText);
+
+ sev.Project = project;
+ sev.ContentName = file;
+ sev.Text = editorText;
+ sev.CursorPosition = cursorPosition;
+ tww.ViewContent = sev;
+ Document doc = new Document (tww);
+ doc.ParsedDocument = parsedDocument;
+ var textEditorCompletion = new CSharpCompletionTextEditorExtension (doc);
+
+ CodeCompletionContext ctx = new CodeCompletionContext ();
+ ctx.TriggerOffset = sev.CursorPosition;
+ int line, column;
+ sev.GetLineColumnFromPosition (sev.CursorPosition, out line, out column);
+ ctx.TriggerLine = line;
+ ctx.TriggerLineOffset = column - 1;
+
+ IParameterDataProvider result = textEditorCompletion.HandleParameterCompletion (ctx, editorText[cursorPosition - 1]);
+ TypeSystemService.Unload (project);
+ return result;
+ }
/// <summary>
/// Bug 427448 - Code Completion: completion of constructor parameters not working
/// </summary>
- [Test()]
+ [Test()]
public void TestBug427448 ()
- {
- IParameterDataProvider provider = CreateProvider (
+ {
+ IParameterDataProvider provider = CreateProvider (
@"class Test
{
public Test (int a)
@@ -107,12 +106,12 @@ namespace MonoDevelop.CSharpBinding.Tests
public Test (string b)
{
- }
- protected Test ()
- {
- }
- Test (double d, float m)
- {
+ }
+ protected Test ()
+ {
+ }
+ Test (double d, float m)
+ {
}
}
@@ -122,80 +121,80 @@ class AClass
{
$Test t = new Test ($
}
-}");
- Assert.IsNotNull (provider, "provider was not created.");
- Assert.AreEqual (2, provider.OverloadCount);
- }
-
+}");
+ Assert.IsNotNull (provider, "provider was not created.");
+ Assert.AreEqual (2, provider.OverloadCount);
+ }
+
/// <summary>
/// Bug 432437 - No completion when invoking delegates
/// </summary>
- [Test()]
- public void TestBug432437 ()
- {
+ [Test()]
+ public void TestBug432437 ()
+ {
IParameterDataProvider provider = CreateProvider (
@"public delegate void MyDel (int value);
-
+
class Test
{
- MyDel d;
+ MyDel d;
void A()
- {
+ {
$d ($
}
-}");
- Assert.IsNotNull (provider, "provider was not created.");
- Assert.AreEqual (1, provider.OverloadCount);
- }
-
+}");
+ Assert.IsNotNull (provider, "provider was not created.");
+ Assert.AreEqual (1, provider.OverloadCount);
+ }
+
/// <summary>
/// Bug 432658 - Incorrect completion when calling an extension method from inside another extension method
- /// </summary>
+ /// </summary>
[Test()]
public void TestBug432658 ()
- {
+ {
IParameterDataProvider provider = CreateProvider (
@"static class Extensions
{
public static void Ext1 (this int start)
- {
+ {
}
public static void Ext2 (this int end)
- {
+ {
$Ext1($
}
}");
Assert.IsNotNull (provider, "provider was not created.");
Assert.AreEqual (1, provider.OverloadCount, "There should be one overload");
Assert.AreEqual (1, provider.GetParameterCount(0), "Parameter 'start' should exist");
- }
-
+ }
+
/// <summary>
/// Bug 432727 - No completion if no constructor
/// </summary>
- [Test()]
+ [Test()]
public void TestBug432727 ()
- {
- IParameterDataProvider provider = CreateProvider (
+ {
+ IParameterDataProvider provider = CreateProvider (
@"class A
{
- void Method ()
- {
+ void Method ()
+ {
$A aTest = new A ($
- }
-}");
- Assert.IsNotNull (provider, "provider was not created.");
- Assert.AreEqual (1, provider.OverloadCount);
- }
-
+ }
+}");
+ Assert.IsNotNull (provider, "provider was not created.");
+ Assert.AreEqual (1, provider.OverloadCount);
+ }
+
/// <summary>
/// Bug 434705 - No autocomplete offered if not assigning result of 'new' to a variable
/// </summary>
- [Test()]
+ [Test()]
public void TestBug434705 ()
- {
- IParameterDataProvider provider = CreateProvider (
+ {
+ IParameterDataProvider provider = CreateProvider (
@"class Test
{
public Test (int a)
@@ -209,19 +208,19 @@ class AClass
{
$return new Test ($
}
-}");
- Assert.IsNotNull (provider, "provider was not created.");
- Assert.AreEqual (1, provider.OverloadCount);
- }
-
+}");
+ Assert.IsNotNull (provider, "provider was not created.");
+ Assert.AreEqual (1, provider.OverloadCount);
+ }
+
/// <summary>
/// Bug 434705 - No autocomplete offered if not assigning result of 'new' to a variable
/// </summary>
- [Test()]
+ [Test()]
public void TestBug434705B ()
- {
- IParameterDataProvider provider = CreateProvider (
-@"
+ {
+ IParameterDataProvider provider = CreateProvider (
+@"
class Test<T>
{
public Test (T t)
@@ -234,68 +233,68 @@ class TestClass
{
$Test<int> l = new Test<int> ($
}
-}");
- Assert.IsNotNull (provider, "provider was not created.");
- Assert.AreEqual (1, provider.OverloadCount);
- }
-
-
+}");
+ Assert.IsNotNull (provider, "provider was not created.");
+ Assert.AreEqual (1, provider.OverloadCount);
+ }
+
+
/// <summary>
/// Bug 434701 - No autocomplete in attributes
/// </summary>
- [Test()]
+ [Test()]
public void TestBug434701 ()
- {
- IParameterDataProvider provider = CreateProvider (
+ {
+ IParameterDataProvider provider = CreateProvider (
@"class TestAttribute : System.Attribute
{
public Test (int a)
{
}
}
-
+
$[Test ($
class AClass
{
-}");
- Assert.IsNotNull (provider, "provider was not created.");
- Assert.AreEqual (1, provider.OverloadCount);
- }
-
+}");
+ Assert.IsNotNull (provider, "provider was not created.");
+ Assert.AreEqual (1, provider.OverloadCount);
+ }
+
/// <summary>
/// Bug 447985 - Exception display tip is inaccurate for derived (custom) exceptions
/// </summary>
- [Test()]
+ [Test()]
public void TestBug447985 ()
- {
- IParameterDataProvider provider = CreateProvider (
-@"
-namespace System {
- public class Exception
- {
- public Exception () {}
- }
-}
-
-class MyException : System.Exception
-{
- public MyException (int test)
- {}
-}
-
+ {
+ IParameterDataProvider provider = CreateProvider (
+@"
+namespace System {
+ public class Exception
+ {
+ public Exception () {}
+ }
+}
+
+class MyException : System.Exception
+{
+ public MyException (int test)
+ {}
+}
+
class AClass
-{
- public void Test ()
- {
- $throw new MyException($
- }
+{
+ public void Test ()
+ {
+ $throw new MyException($
+ }
-}");
- Assert.IsNotNull (provider, "provider was not created.");
- Assert.AreEqual (1, provider.OverloadCount);
+}");
+ Assert.IsNotNull (provider, "provider was not created.");
+ Assert.AreEqual (1, provider.OverloadCount);
Assert.AreEqual (1, provider.GetParameterCount(0), "Parameter 'test' should exist");
- }
-
+ }
+
}
} \ No newline at end of file
diff --git a/main/tests/UnitTests/MonoDevelop.CSharpBinding/ProjectDomTests.cs b/main/tests/UnitTests/MonoDevelop.CSharpBinding/ProjectDomTests.cs
index 42c66321bc..37045dedc3 100644
--- a/main/tests/UnitTests/MonoDevelop.CSharpBinding/ProjectDomTests.cs
+++ b/main/tests/UnitTests/MonoDevelop.CSharpBinding/ProjectDomTests.cs
@@ -34,8 +34,6 @@ using MonoDevelop.Projects;
using MonoDevelop.Core;
using MonoDevelop.Ide.CodeCompletion;
using MonoDevelop.Ide.Gui.Content;
-using MonoDevelop.Projects.Dom;
-using MonoDevelop.Projects.Dom.Parser;
namespace MonoDevelop.CSharpBinding
{
diff --git a/main/tests/UnitTests/MonoDevelop.CSharpBinding/TopLevelTests.cs b/main/tests/UnitTests/MonoDevelop.CSharpBinding/TopLevelTests.cs
index f2c9abaee3..5b6986412a 100644
--- a/main/tests/UnitTests/MonoDevelop.CSharpBinding/TopLevelTests.cs
+++ b/main/tests/UnitTests/MonoDevelop.CSharpBinding/TopLevelTests.cs
@@ -1,256 +1,254 @@
-//
-// ParserTest.cs
+////
+//// ParserTest.cs
+////
+//// Author:
+//// Mike Krüger <mkrueger@novell.com>
+////
+//// Copyright (C) 2008 Novell, Inc (http://www.novell.com)
+////
+//// Permission is hereby granted, free of charge, to any person obtaining
+//// a copy of this software and associated documentation files (the
+//// "Software"), to deal in the Software without restriction, including
+//// without limitation the rights to use, copy, modify, merge, publish,
+//// distribute, sublicense, and/or sell copies of the Software, and to
+//// permit persons to whom the Software is furnished to do so, subject to
+//// the following conditions:
+////
+//// The above copyright notice and this permission notice shall be
+//// included in all copies or substantial portions of the Software.
+////
+//// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+//// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+//// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+//// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+//// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+//// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+//// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+////
//
-// Author:
-// Mike Krüger <mkrueger@novell.com>
+//using System;
+//using System.CodeDom;
+//using System.Collections.Generic;
+//using NUnit.Framework;
+//using MonoDevelop.CSharpBinding;
+//using MonoDevelop.CSharp.Parser;
//
-// Copyright (C) 2008 Novell, Inc (http://www.novell.com)
-//
-// Permission is hereby granted, free of charge, to any person obtaining
-// a copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to
-// the following conditions:
-//
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-//
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-//
-
-using System;
-using System.CodeDom;
-using System.Collections.Generic;
-using NUnit.Framework;
-using MonoDevelop.Projects.Dom;
-using MonoDevelop.Projects.Dom.Parser;
-using MonoDevelop.CSharpBinding;
-using MonoDevelop.CSharp.Parser;
-
-namespace MonoDevelop.CSharpBinding.Tests
-{
- [TestFixture]
- public class TopLevelTests
- {
- void DoTestUsings (IParser parser)
- {
- ICompilationUnit unit = parser.Parse (null, "a.cs",
-@"using System;
-using NUnit.Framework;").CompilationUnit;
- foreach (IUsing u in unit.Usings) {
- foreach (string ns in u.Namespaces) {
- if (ns == "System") {
- Assert.AreEqual (1, u.Region.End.Line);
- Assert.AreEqual (1, u.Region.Start.Line);
- } else if (ns == "NUnit.Framework") {
- Assert.AreEqual (2, u.Region.End.Line);
- Assert.AreEqual (2, u.Region.Start.Line);
- } else {
- Assert.Fail ("Unknown using: " + ns);
- }
- }
- }
- }
-
- [Test]
- public void TestUsings ()
- {
- DoTestUsings (new McsParser ());
- //DoTestUsings (new DomParser ());
- }
-
- void DoTestEnums (IParser parser)
- {
- ICompilationUnit unit = parser.Parse (null, "a.cs",
-@"enum TestEnum {
- A,
- B,
- C
-}").CompilationUnit;
- Assert.AreEqual (1, unit.Types.Count);
- IType type = unit.Types[0];
- Assert.AreEqual (ClassType.Enum, type.ClassType);
- Assert.AreEqual ("TestEnum", type.Name);
- Assert.AreEqual (3, type.FieldCount);
- foreach (IField f in type.Fields) {
- Assert.IsTrue (f.IsConst);
- Assert.IsTrue (f.IsSpecialName);
- Assert.IsTrue (f.IsPublic);
- if (f.Name == "A") {
- Assert.AreEqual (2, f.Location.Line);
- } else if (f.Name == "B") {
- Assert.AreEqual (3, f.Location.Line);
- } else if (f.Name == "C") {
- Assert.AreEqual (4, f.Location.Line);
- } else {
- Assert.Fail ("Unknown field: " + f.Name);
- }
- }
- }
-
- [Test]
- public void TestEnums ()
- {
- DoTestEnums (new McsParser ());
-// DoTestEnums (new DomParser ());
- }
-
- void DoTestStruct (IParser parser)
- {
- ICompilationUnit unit = parser.Parse (null, "a.cs", @"struct TestStruct { }").CompilationUnit;
- Assert.AreEqual (1, unit.Types.Count);
- IType type = unit.Types[0];
- Assert.AreEqual (ClassType.Struct, type.ClassType);
- Assert.AreEqual ("TestStruct", type.Name);
- }
-
- [Test]
- public void TestStruct ()
- {
- DoTestStruct (new McsParser ());
-// DoTestStruct (new DomParser ());
- }
-
- void DoTestInterface (IParser parser)
- {
- ICompilationUnit unit = parser.Parse (null, "a.cs", @"interface TestInterface { }").CompilationUnit;
- Assert.AreEqual (1, unit.Types.Count);
- IType type = unit.Types[0];
- Assert.AreEqual (ClassType.Interface, type.ClassType);
- Assert.AreEqual ("TestInterface", type.Name);
- }
-
- [Test]
- public void TestInterface ()
- {
- DoTestInterface (new McsParser ());
-// DoTestInterface (new DomParser ());
- }
-
- void DoTestDelegate (IParser parser)
- {
- ICompilationUnit unit = parser.Parse (null, "a.cs", @"delegate void TestDelegate (int a, string b);").CompilationUnit;
- Assert.AreEqual (1, unit.Types.Count);
- IType type = unit.Types[0];
- Assert.AreEqual (ClassType.Delegate, type.ClassType);
- Assert.AreEqual ("TestDelegate", type.Name);
- foreach (IMethod method in type.Methods) {
- Assert.AreEqual (DomReturnType.Void.FullName, method.ReturnType.FullName);
- foreach (IParameter parameter in method.Parameters) {
- if (parameter.Name == "a") {
- Assert.AreEqual (DomReturnType.Int32.FullName, parameter.ReturnType.FullName);
- } else if (parameter.Name == "b") {
- Assert.AreEqual (DomReturnType.String.FullName, parameter.ReturnType.FullName);
- } else {
- Assert.Fail ("Unknown parameter: " + parameter.Name);
- }
- }
- }
- }
-
- [Test]
- public void TestDelegate ()
- {
- DoTestDelegate (new McsParser ());
-// DoTestDelegate (new DomParser ());
- }
-
- void DoTestClass (IParser parser)
- {
- ICompilationUnit unit = parser.Parse (null, "a.cs", @"public partial class TestClass<T, S> : MyBaseClass where T : Constraint { }").CompilationUnit;
- Assert.AreEqual (1, unit.Types.Count);
- IType type = unit.Types[0];
- Assert.AreEqual (ClassType.Class, type.ClassType);
- Assert.AreEqual ("TestClass", type.Name);
- Assert.AreEqual ("MyBaseClass", type.BaseType.Name);
- Assert.AreEqual (Modifiers.Partial | Modifiers.Public, type.Modifiers);
- Assert.AreEqual (2, type.TypeParameters.Count);
- Assert.AreEqual ("T", type.TypeParameters[0].Name);
- Assert.AreEqual ("Constraint", type.TypeParameters[0].Constraints[0].Name);
- Assert.AreEqual ("S", type.TypeParameters[1].Name);
- }
-
- [Test]
- public void TestClass ()
- {
- DoTestClass (new McsParser ());
-// DoTestClass (new DomParser ());
- }
-
- void DoTestNamespace (IParser parser)
- {
- ICompilationUnit unit = parser.Parse (null, "a.cs", @"namespace Test1.Test2.Test3 { class A { } }").CompilationUnit;
- Assert.AreEqual (3, unit.Usings.Count);
- Assert.AreEqual ("Test1.Test2.Test3", unit.Usings[0].Namespaces[0]);
- Assert.AreEqual ("Test1.Test2", unit.Usings[1].Namespaces[0]);
- Assert.AreEqual ("Test1", unit.Usings[2].Namespaces[0]);
- Assert.AreEqual (1, unit.Types.Count);
- IType type = unit.Types[0];
- Assert.AreEqual ("Test1.Test2.Test3", type.Namespace);
- }
-
- [Test]
- public void TestNamespace ()
- {
- DoTestNamespace (new McsParser ());
-// DoTestNamespace (new DomParser ());
- }
-
- void DoTestAttributes (IParser parser)
- {
- ICompilationUnit unit = parser.Parse (null, "a.cs", @"[Attr1][Attr2(1,true)][Attr3('c',a=1,b=""hi"")] public class TestClass { }").CompilationUnit;
- Assert.AreEqual (1, unit.Types.Count);
- IType type = unit.Types[0];
- Assert.AreEqual (ClassType.Class, type.ClassType);
- Assert.AreEqual ("TestClass", type.Name);
- IEnumerator<IAttribute> e = type.Attributes.GetEnumerator ();
-
- Assert.IsTrue (e.MoveNext ());
- IAttribute att = e.Current;
- Assert.AreEqual ("Attr1", att.Name);
- Assert.AreEqual (0, att.PositionalArguments.Count);
- Assert.AreEqual (0, att.NamedArguments.Count);
-
- Assert.IsTrue (e.MoveNext ());
- att = e.Current;
- Assert.AreEqual ("Attr2", att.Name);
- Assert.AreEqual (2, att.PositionalArguments.Count);
- Assert.AreEqual (0, att.NamedArguments.Count);
- Assert.IsTrue (att.PositionalArguments [0] is CodePrimitiveExpression);
- CodePrimitiveExpression exp = (CodePrimitiveExpression) att.PositionalArguments [0];
- Assert.AreEqual (1, exp.Value);
- exp = (CodePrimitiveExpression) att.PositionalArguments [1];
- Assert.AreEqual (true, exp.Value);
-
- Assert.IsTrue (e.MoveNext ());
- att = e.Current;
- Assert.AreEqual ("Attr3", att.Name);
- Assert.AreEqual (1, att.PositionalArguments.Count);
- Assert.AreEqual (2, att.NamedArguments.Count);
- Assert.IsTrue (att.PositionalArguments [0] is CodePrimitiveExpression);
- exp = (CodePrimitiveExpression) att.PositionalArguments [0];
- Assert.AreEqual ('c', exp.Value);
- exp = (CodePrimitiveExpression) att.NamedArguments ["a"];
- Assert.AreEqual (1, exp.Value);
- exp = (CodePrimitiveExpression) att.NamedArguments ["b"];
- Assert.AreEqual ("hi", exp.Value);
-
- Assert.IsFalse (e.MoveNext ());
- }
-
- [Test()]
- public void TestAttributes ()
- {
- DoTestAttributes (new McsParser ());
-// DoTestAttributes (new DomParser ());
- }
- }
-}
+//namespace MonoDevelop.CSharpBinding.Tests
+//{
+// [TestFixture]
+// public class TopLevelTests
+// {
+// void DoTestUsings (IParser parser)
+// {
+// ICompilationUnit unit = parser.Parse (null, "a.cs",
+//@"using System;
+//using NUnit.Framework;").CompilationUnit;
+// foreach (IUsing u in unit.Usings) {
+// foreach (string ns in u.Namespaces) {
+// if (ns == "System") {
+// Assert.AreEqual (1, u.Region.End.Line);
+// Assert.AreEqual (1, u.Region.Start.Line);
+// } else if (ns == "NUnit.Framework") {
+// Assert.AreEqual (2, u.Region.End.Line);
+// Assert.AreEqual (2, u.Region.Start.Line);
+// } else {
+// Assert.Fail ("Unknown using: " + ns);
+// }
+// }
+// }
+// }
+//
+// [Test]
+// public void TestUsings ()
+// {
+// DoTestUsings (new McsParser ());
+// //DoTestUsings (new DomParser ());
+// }
+//
+// void DoTestEnums (IParser parser)
+// {
+// ICompilationUnit unit = parser.Parse (null, "a.cs",
+//@"enum TestEnum {
+// A,
+// B,
+// C
+//}").CompilationUnit;
+// Assert.AreEqual (1, unit.Types.Count);
+// IType type = unit.Types[0];
+// Assert.AreEqual (ClassType.Enum, type.ClassType);
+// Assert.AreEqual ("TestEnum", type.Name);
+// Assert.AreEqual (3, type.FieldCount);
+// foreach (IField f in type.Fields) {
+// Assert.IsTrue (f.IsConst);
+// Assert.IsTrue (f.IsSpecialName);
+// Assert.IsTrue (f.IsPublic);
+// if (f.Name == "A") {
+// Assert.AreEqual (2, f.Location.Line);
+// } else if (f.Name == "B") {
+// Assert.AreEqual (3, f.Location.Line);
+// } else if (f.Name == "C") {
+// Assert.AreEqual (4, f.Location.Line);
+// } else {
+// Assert.Fail ("Unknown field: " + f.Name);
+// }
+// }
+// }
+//
+// [Test]
+// public void TestEnums ()
+// {
+// DoTestEnums (new McsParser ());
+//// DoTestEnums (new DomParser ());
+// }
+//
+// void DoTestStruct (IParser parser)
+// {
+// ICompilationUnit unit = parser.Parse (null, "a.cs", @"struct TestStruct { }").CompilationUnit;
+// Assert.AreEqual (1, unit.Types.Count);
+// IType type = unit.Types[0];
+// Assert.AreEqual (ClassType.Struct, type.ClassType);
+// Assert.AreEqual ("TestStruct", type.Name);
+// }
+//
+// [Test]
+// public void TestStruct ()
+// {
+// DoTestStruct (new McsParser ());
+//// DoTestStruct (new DomParser ());
+// }
+//
+// void DoTestInterface (IParser parser)
+// {
+// ICompilationUnit unit = parser.Parse (null, "a.cs", @"interface TestInterface { }").CompilationUnit;
+// Assert.AreEqual (1, unit.Types.Count);
+// IType type = unit.Types[0];
+// Assert.AreEqual (ClassType.Interface, type.ClassType);
+// Assert.AreEqual ("TestInterface", type.Name);
+// }
+//
+// [Test]
+// public void TestInterface ()
+// {
+// DoTestInterface (new McsParser ());
+//// DoTestInterface (new DomParser ());
+// }
+//
+// void DoTestDelegate (IParser parser)
+// {
+// ICompilationUnit unit = parser.Parse (null, "a.cs", @"delegate void TestDelegate (int a, string b);").CompilationUnit;
+// Assert.AreEqual (1, unit.Types.Count);
+// IType type = unit.Types[0];
+// Assert.AreEqual (ClassType.Delegate, type.ClassType);
+// Assert.AreEqual ("TestDelegate", type.Name);
+// foreach (IMethod method in type.Methods) {
+// Assert.AreEqual (DomReturnType.Void.FullName, method.ReturnType.FullName);
+// foreach (IParameter parameter in method.Parameters) {
+// if (parameter.Name == "a") {
+// Assert.AreEqual (DomReturnType.Int32.FullName, parameter.ReturnType.FullName);
+// } else if (parameter.Name == "b") {
+// Assert.AreEqual (DomReturnType.String.FullName, parameter.ReturnType.FullName);
+// } else {
+// Assert.Fail ("Unknown parameter: " + parameter.Name);
+// }
+// }
+// }
+// }
+//
+// [Test]
+// public void TestDelegate ()
+// {
+// DoTestDelegate (new McsParser ());
+//// DoTestDelegate (new DomParser ());
+// }
+//
+// void DoTestClass (IParser parser)
+// {
+// ICompilationUnit unit = parser.Parse (null, "a.cs", @"public partial class TestClass<T, S> : MyBaseClass where T : Constraint { }").CompilationUnit;
+// Assert.AreEqual (1, unit.Types.Count);
+// IType type = unit.Types[0];
+// Assert.AreEqual (ClassType.Class, type.ClassType);
+// Assert.AreEqual ("TestClass", type.Name);
+// Assert.AreEqual ("MyBaseClass", type.BaseType.Name);
+// Assert.AreEqual (Modifiers.Partial | Modifiers.Public, type.Modifiers);
+// Assert.AreEqual (2, type.TypeParameters.Count);
+// Assert.AreEqual ("T", type.TypeParameters[0].Name);
+// Assert.AreEqual ("Constraint", type.TypeParameters[0].Constraints[0].Name);
+// Assert.AreEqual ("S", type.TypeParameters[1].Name);
+// }
+//
+// [Test]
+// public void TestClass ()
+// {
+// DoTestClass (new McsParser ());
+//// DoTestClass (new DomParser ());
+// }
+//
+// void DoTestNamespace (IParser parser)
+// {
+// ICompilationUnit unit = parser.Parse (null, "a.cs", @"namespace Test1.Test2.Test3 { class A { } }").CompilationUnit;
+// Assert.AreEqual (3, unit.Usings.Count);
+// Assert.AreEqual ("Test1.Test2.Test3", unit.Usings[0].Namespaces[0]);
+// Assert.AreEqual ("Test1.Test2", unit.Usings[1].Namespaces[0]);
+// Assert.AreEqual ("Test1", unit.Usings[2].Namespaces[0]);
+// Assert.AreEqual (1, unit.Types.Count);
+// IType type = unit.Types[0];
+// Assert.AreEqual ("Test1.Test2.Test3", type.Namespace);
+// }
+//
+// [Test]
+// public void TestNamespace ()
+// {
+// DoTestNamespace (new McsParser ());
+//// DoTestNamespace (new DomParser ());
+// }
+//
+// void DoTestAttributes (IParser parser)
+// {
+// ICompilationUnit unit = parser.Parse (null, "a.cs", @"[Attr1][Attr2(1,true)][Attr3('c',a=1,b=""hi"")] public class TestClass { }").CompilationUnit;
+// Assert.AreEqual (1, unit.Types.Count);
+// IType type = unit.Types[0];
+// Assert.AreEqual (ClassType.Class, type.ClassType);
+// Assert.AreEqual ("TestClass", type.Name);
+// IEnumerator<IAttribute> e = type.Attributes.GetEnumerator ();
+//
+// Assert.IsTrue (e.MoveNext ());
+// IAttribute att = e.Current;
+// Assert.AreEqual ("Attr1", att.Name);
+// Assert.AreEqual (0, att.PositionalArguments.Count);
+// Assert.AreEqual (0, att.NamedArguments.Count);
+//
+// Assert.IsTrue (e.MoveNext ());
+// att = e.Current;
+// Assert.AreEqual ("Attr2", att.Name);
+// Assert.AreEqual (2, att.PositionalArguments.Count);
+// Assert.AreEqual (0, att.NamedArguments.Count);
+// Assert.IsTrue (att.PositionalArguments [0] is CodePrimitiveExpression);
+// CodePrimitiveExpression exp = (CodePrimitiveExpression) att.PositionalArguments [0];
+// Assert.AreEqual (1, exp.Value);
+// exp = (CodePrimitiveExpression) att.PositionalArguments [1];
+// Assert.AreEqual (true, exp.Value);
+//
+// Assert.IsTrue (e.MoveNext ());
+// att = e.Current;
+// Assert.AreEqual ("Attr3", att.Name);
+// Assert.AreEqual (1, att.PositionalArguments.Count);
+// Assert.AreEqual (2, att.NamedArguments.Count);
+// Assert.IsTrue (att.PositionalArguments [0] is CodePrimitiveExpression);
+// exp = (CodePrimitiveExpression) att.PositionalArguments [0];
+// Assert.AreEqual ('c', exp.Value);
+// exp = (CodePrimitiveExpression) att.NamedArguments ["a"];
+// Assert.AreEqual (1, exp.Value);
+// exp = (CodePrimitiveExpression) att.NamedArguments ["b"];
+// Assert.AreEqual ("hi", exp.Value);
+//
+// Assert.IsFalse (e.MoveNext ());
+// }
+//
+// [Test()]
+// public void TestAttributes ()
+// {
+// DoTestAttributes (new McsParser ());
+//// DoTestAttributes (new DomParser ());
+// }
+// }
+//}
diff --git a/main/tests/UnitTests/UnitTests.csproj b/main/tests/UnitTests/UnitTests.csproj
index 0e947150b5..20d13a572b 100644
--- a/main/tests/UnitTests/UnitTests.csproj
+++ b/main/tests/UnitTests/UnitTests.csproj
@@ -202,6 +202,18 @@
<Compile Include="Mono.TextEditor.Tests\SegmentTreeTests.cs" />
<Compile Include="Mono.TextEditor.Tests\RedBlackTreeTests.cs" />
<Compile Include="Mono.TextEditor.Tests\HeightTreeTests.cs" />
+ <Compile Include="MonoDevelop.CSharpBinding\CodeCompletionBugTests.cs" />
+ <Compile Include="MonoDevelop.CSharpBinding\TestWorkbenchWindow.cs" />
+ <Compile Include="MonoDevelop.CSharpBinding\TestViewContent.cs" />
+ <Compile Include="MonoDevelop.CSharpBinding\ParameterCompletionTests.cs" />
+ <Compile Include="MonoDevelop.CSharpBinding\TopLevelTests.cs" />
+ <Compile Include="MonoDevelop.CSharpBinding\MemberTests.cs" />
+ <Compile Include="MonoDevelop.CSharpBinding\CodeCompletionOperatorTests.cs" />
+ <Compile Include="MonoDevelop.CSharpBinding\CodeCompletionCSharp3Tests.cs" />
+ <Compile Include="MonoDevelop.CSharpBinding\CodeCompletionAccessibleTests.cs" />
+ <Compile Include="MonoDevelop.CSharpBinding\CodeCompletionCSharpTests.cs" />
+ <Compile Include="MonoDevelop.CSharpBinding\FindMemberVisitorTests.cs" />
+ <Compile Include="MonoDevelop.CSharpBinding\ProjectDomTests.cs" />
</ItemGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
<Import Project="..\..\md.targets" />
@@ -222,18 +234,6 @@
</ProjectExtensions>
<ItemGroup>
<None Include="Makefile.am" />
- <None Include="MonoDevelop.CSharpBinding\TopLevelTests.cs" />
- <None Include="MonoDevelop.CSharpBinding\MemberTests.cs" />
- <None Include="MonoDevelop.CSharpBinding\CodeCompletionBugTests.cs" />
- <None Include="MonoDevelop.CSharpBinding\TestViewContent.cs" />
- <None Include="MonoDevelop.CSharpBinding\TestWorkbenchWindow.cs" />
- <None Include="MonoDevelop.CSharpBinding\CodeCompletionOperatorTests.cs" />
- <None Include="MonoDevelop.CSharpBinding\ParameterCompletionTests.cs" />
- <None Include="MonoDevelop.CSharpBinding\CodeCompletionCSharp3Tests.cs" />
- <None Include="MonoDevelop.CSharpBinding\CodeCompletionAccessibleTests.cs" />
- <None Include="MonoDevelop.CSharpBinding\CodeCompletionCSharpTests.cs" />
- <None Include="MonoDevelop.CSharpBinding\FindMemberVisitorTests.cs" />
- <None Include="MonoDevelop.CSharpBinding\ProjectDomTests.cs" />
<None Include="MonoDevelop.Projects\CompletionDatabaseTests.cs" />
<None Include="MonoDevelop.Refactoring\ExtractMethodTests.cs" />
<None Include="MonoDevelop.Refactoring\CreateBackingStoreTests.cs" />