Esempio n. 1
0
        public void CSharpIndexerImplementingGenericInterfaceTest()
        {
            IndexerDeclaration id = ParseUtilCSharp.ParseTypeMember <IndexerDeclaration>("int MyInterface<string>.this[int a, string b] { get { } set { } }");

            Assert.AreEqual(2, id.Parameters.Count);
            Assert.IsTrue(id.HasGetRegion, "No get region found!");
            Assert.IsTrue(id.HasSetRegion, "No set region found!");

            Assert.AreEqual("MyInterface", id.InterfaceImplementations[0].InterfaceType.Type);
            Assert.AreEqual("System.String", id.InterfaceImplementations[0].InterfaceType.GenericTypes[0].SystemType);
        }
Esempio n. 2
0
        public void CSharpPropertyImplementingGenericInterfaceTest()
        {
            PropertyDeclaration pd = ParseUtilCSharp.ParseTypeMember <PropertyDeclaration>("int MyInterface<string>.MyProperty { get {} } ");

            Assert.AreEqual("MyProperty", pd.Name);
            Assert.IsTrue(pd.HasGetRegion);
            Assert.IsTrue(!pd.HasSetRegion);

            Assert.AreEqual("MyInterface", pd.InterfaceImplementations[0].InterfaceType.Type);
            Assert.AreEqual("System.String", pd.InterfaceImplementations[0].InterfaceType.GenericTypes[0].SystemType);
        }
Esempio n. 3
0
        public void CSharpGenericMethodDeclarationTest()
        {
            MethodDeclaration md = ParseUtilCSharp.ParseTypeMember <MethodDeclaration>("T MyMethod<T>(T a) {} ");

            Assert.AreEqual("T", md.TypeReference.Type);
            Assert.AreEqual(1, md.Parameters.Count);
            Assert.AreEqual("T", ((ParameterDeclarationExpression)md.Parameters[0]).TypeReference.Type);
            Assert.AreEqual("a", ((ParameterDeclarationExpression)md.Parameters[0]).ParameterName);

            Assert.AreEqual(1, md.Templates.Count);
            Assert.AreEqual("T", md.Templates[0].Name);
        }
Esempio n. 4
0
        public void CSharpEventImplementingInterfaceDeclarationTest()
        {
            EventDeclaration ed = ParseUtilCSharp.ParseTypeMember <EventDeclaration>("event EventHandler MyInterface.MyEvent;");

            Assert.AreEqual("MyEvent", ed.Name);
            Assert.AreEqual("EventHandler", ed.TypeReference.Type);

            Assert.IsFalse(ed.HasAddRegion);
            Assert.IsFalse(ed.HasRemoveRegion);

            Assert.AreEqual("MyInterface", ed.InterfaceImplementations[0].InterfaceType.Type);
            Assert.AreEqual("MyEvent", ed.InterfaceImplementations[0].MemberName);
        }
Esempio n. 5
0
        public void CSharpMethodWithModifiersRegionTest()
        {
            const string      program = @"
		public static void MyMethod()
		{
			OtherMethod();
		}
";
            MethodDeclaration md      = ParseUtilCSharp.ParseTypeMember <MethodDeclaration>(program);

            Assert.AreEqual(2, md.StartLocation.Y, "StartLocation.Y");
            Assert.AreEqual(2, md.EndLocation.Y, "EndLocation.Y");
            Assert.AreEqual(3, md.StartLocation.X, "StartLocation.X");
        }
Esempio n. 6
0
        public void CSharpGenericMethodDeclarationWithConstraintTest()
        {
            string            program = "T MyMethod<T>(T a) where T : ISomeInterface {} ";
            MethodDeclaration md      = ParseUtilCSharp.ParseTypeMember <MethodDeclaration>(program);

            Assert.AreEqual("T", md.TypeReference.Type);
            Assert.AreEqual(1, md.Parameters.Count);
            Assert.AreEqual("T", ((ParameterDeclarationExpression)md.Parameters[0]).TypeReference.Type);
            Assert.AreEqual("a", ((ParameterDeclarationExpression)md.Parameters[0]).ParameterName);

            Assert.AreEqual(1, md.Templates.Count);
            Assert.AreEqual("T", md.Templates[0].Name);
            Assert.AreEqual(1, md.Templates[0].Bases.Count);
            Assert.AreEqual("ISomeInterface", md.Templates[0].Bases[0].Type);
        }
Esempio n. 7
0
        public void CSharpSimpleMethodRegionTest()
        {
            const string      program = @"
		void MyMethod()
		{
			OtherMethod();
		}
";
            MethodDeclaration md      = ParseUtilCSharp.ParseTypeMember <MethodDeclaration>(program);

            Assert.AreEqual(2, md.StartLocation.Y, "StartLocation.Y");
            Assert.AreEqual(2, md.EndLocation.Y, "EndLocation.Y");
            Assert.AreEqual(3, md.StartLocation.X, "StartLocation.X");

            // endLocation.X is currently 20. It should be 18, but that error is not critical
            //Assert.AreEqual(18, md.EndLocation.X, "EndLocation.X");
        }
Esempio n. 8
0
        public void CSharpConstructorDeclarationTest1()
        {
            ConstructorDeclaration cd = ParseUtilCSharp.ParseTypeMember <ConstructorDeclaration>("MyClass() {}");

            Assert.IsTrue(cd.ConstructorInitializer.IsNull);
        }
Esempio n. 9
0
 public void CSharpDestructorDeclarationTest()
 {
     DestructorDeclaration dd = ParseUtilCSharp.ParseTypeMember <DestructorDeclaration>("~MyClass() {}");
 }