示例#1
0
        public void TestInnerEnums()
        {
            CompletionResult provider = CodeCompletionBugTests.CreateCtrlSpaceProvider(
                @"
public class InnerEnumTest
{
	public enum TestEnum { A, B, C}
	public void Bar (TestEnum test) {}
}

class TestClass
{
	public void Foo ()
	{
		InnerEnumTest test;
		$test.Bar (I$
	}
}");

            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.");
        }
示例#2
0
        public void TestHideClassesWithPrivateConstructor()
        {
            CompletionResult provider = CodeCompletionBugTests.CreateProvider(
                @"
class A
{
}

class TestClass : A
{
	TestClass ()
	{
	}
	
}

class Example
{
	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.");
        }
示例#3
0
        public void TestAttributePropertyAccess()
        {
            CompletionResult 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");
        }
示例#4
0
        public void TestAsCompletionContext()
        {
            CompletionResult provider = CodeCompletionBugTests.CreateProvider(
                @"
class A
{
}

class B
{
}

class C : A
{
}

class Test
{
	public void TestMethod (object test)
	{
		$A a = test as $
	}
}
");

            Assert.IsNotNull(provider, "provider == null");
            Assert.IsNotNull(provider.Find("A"), "class 'A' not found.");
            Assert.IsNotNull(provider.Find("C"), "class 'C' not found.");
            Assert.IsNull(provider.Find("B"), "class 'B' found, but shouldn't.");
            Assert.IsNull(provider.Find("Test"), "class 'Test' found, but shouldn't.");
        }
示例#5
0
        public void TestEnumInnerClass()
        {
            CompletionResult provider = CodeCompletionBugTests.CreateProvider(
                @"
using System;
namespace CaptainHook.Mail
{
	public class TestClass
	{
		enum ParsingState
		{
			Any,
			Start,
			InMacro,
			InMacroArgumentList,
			InQuotedMacroArgument,
			PlainText
		}

		ParsingState state;

		public TestClass ()
		{
			$state = P$
		}
	}
}");

            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");
        }
示例#6
0
        public void TestNonStaticClassAccess()
        {
            CompletionResult 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"));
        }
示例#7
0
        public void TestStaticClassAccess()
        {
            CompletionResult 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"));
        }
示例#8
0
        public void TestUsingContext()
        {
            CompletionResult provider = CodeCompletionBugTests.CreateProvider(@"$using System.$");

            Assert.IsNotNull(provider, "provider == null");
            Assert.IsNotNull(provider.Find("IO"), "namespace 'IO' not found.");
        }
        public void TestSubtractOperator()
        {
            CompletionResult provider = CodeCompletionBugTests.CreateProvider(
                @"class A
{
	public static B operator-(A left, A right)
	{
		return new B ();
	}
}

class B
{
	public void BMethod ()
	{
	}
}

class TestClass
{
	public void Test ()
	{
		A a = new A ();
		A b = new A ();
		$(a - b).$
	}
}");

            Assert.IsNotNull(provider);
            Assert.IsNotNull(provider.Find("BMethod"));
        }
示例#10
0
        public void TestImplicitGenericMethodParameterComplex()
        {
            CompletionResult 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");
        }
示例#11
0
        public void TestNamespaceAccess2()
        {
            CompletionResult provider = CodeCompletionBugTests.CreateProvider(
                @"
namespace Foo.Bar {
	class B
	{
	}
}

namespace FooBar {
	using Foo;
	class Test
	{
		void TestMethod ()
		{
			$Bar.$
		}
	}
}");

            // either provider == null, or B not found
            if (provider != null)
            {
                Assert.IsNull(provider.Find("B"), "class 'B' found, but shouldn't");
            }
        }
示例#12
0
        public void TestQueryExpression()
        {
            CompletionResult 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.");
        }
示例#13
0
        public void TestDefaultParameterBug()
        {
            CompletionResult 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.");
        }
示例#14
0
        public void TestNamespaceAccess4()
        {
            CompletionResult 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");
        }
示例#15
0
        public void TestVarLoopVariable()
        {
            CompletionResult provider = CodeCompletionBugTests.CreateProvider(
                @"using System;

class Test
{
	public void TestMethod ()
	{
	}
}

class Program
{
	static void Main (string[] args)
	{
		var t = new Test[] {};
		foreach (var loopVar in t) {
			$loopVar.$
		}
	}
}
");

            Assert.IsNotNull(provider, "provider == null");
            Assert.IsNotNull(provider.Find("TestMethod"), "method 'TestMethod' not found.");
        }
        public void TestUnaryBitwiseNotOperator()
        {
            CompletionResult provider = CodeCompletionBugTests.CreateProvider(
                @"class A
{
	public static B operator~(A left)
	{
		return new B ();
	}
}

class B : A
{
	public void BMethod ()
	{
	}
}

class TestClass
{
	public void Test ()
	{
		A a = new A ();
		$(~a).$
	}
}");

            Assert.IsNotNull(provider);
            Assert.IsNotNull(provider.Find("BMethod"));
        }
示例#17
0
        public void TestUnclosedMember2()
        {
            CompletionResult provider = CodeCompletionBugTests.CreateProvider(
                @"using System;

namespace ConsoleTest
{
	class MainClass
	{
		public static void Main (string[] args)
		{
		}
		
		public void Hello ()
		{
		}
	}
	
	class Foo
	{
		void Hello ()
		{
			$M$
}
");

            Assert.IsNotNull(provider, "provider == null");
            Assert.IsNotNull(provider.Find("MainClass"), "class 'MainClass' not found");
        }
示例#18
0
        public void TestImplicitGenericArrayMethodParameter()
        {
            CompletionResult 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");
        }
示例#19
0
        public void TestInheritableTypeWhereContext()
        {
            CompletionResult 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.");
        }
示例#20
0
        public void TestGenericParameterC()
        {
            CompletionResult provider = CodeCompletionBugTests.CreateCtrlSpaceProvider(
                @"
class Foo<T>
{
	public static void Bar<TValue> ()
	{
		$
	}
}
");

            Assert.IsNotNull(provider, "provider == null");
            Assert.IsNotNull(provider.Find("T"), "generic parameter 'T' not found");
            Assert.IsNotNull(provider.Find("TValue"), "generic parameter 'TValue' not found");
        }
示例#21
0
        public void TestBug491017()
        {
            CompletionResult 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).");
        }
示例#22
0
        public void TestLocalVariableNameContext()
        {
            CompletionResult provider = CodeCompletionBugTests.CreateCtrlSpaceProvider(
                @"
public class TestMyLongName
{
	public void Method ()
	{
		$TestMyLongName $
	}
}");

            Assert.IsNotNull(provider, "provider == null");
            Assert.IsNotNull(provider.Find("testMyLongName"), "name 'testMyLongName' not found.");
            Assert.IsNotNull(provider.Find("myLongName"), "name 'myLongName' not found.");
            Assert.IsNotNull(provider.Find("longName"), "name 'longName' not found.");
            Assert.IsNotNull(provider.Find("name"), "name 'name' not found.");
        }
示例#23
0
        public void TestBasePublicMemberAccess()
        {
            CompletionResult provider = CodeCompletionBugTests.CreateProvider(
                testClass + @"
class Test : TestClass
{
	void Test ()
	{
		$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.");
        }
示例#24
0
        public void TestExternalStaticClassAccess()
        {
            CompletionResult 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"));
        }
示例#25
0
        public void TestAnonymousType()
        {
            CompletionResult 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.");
        }
示例#26
0
        public void TestExternalNonStaticClassAccess()
        {
            CompletionResult 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"));
        }
示例#27
0
        public void TestBasePrivateMemberAccess()
        {
            CompletionResult provider = CodeCompletionBugTests.CreateProvider(
                testClass + @"
}

class Test : TestClass
{
	void Test ()
	{
		$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.");
        }
示例#28
0
        public void TestEnumAssignment()
        {
            CompletionResult 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.");
        }
示例#29
0
        public void TestInheritableTypeContextCase2()
        {
            CompletionResult provider = CodeCompletionBugTests.CreateProvider(
                @"
namespace A {
	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.");
        }
示例#30
0
        public void TestEnumAsParameterCase2()
        {
            CompletionResult 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.");
        }