public void SetupParse()
		{

			TestWorkspaceBuilder wkspBuilder = new TestWorkspaceBuilder();

			wkspBuilder.DefaultProject
				// Dummy MvcActionAttribute
				.CreateClassBuilder("DummyAttribute")
					.AddBaseClass("Attribute")
					.Commit()

				// Test class to use as return/param
				.CreateClassBuilder("TestClass")
					.AddProperty("DontCare", "int")
					.Commit()

				// Not Extracted
				.CreateClassBuilder("NotExtracted")
					.AddProperty("DontCare", "int")
					.Commit()

				// Fake JsonResult-like class
				.CreateClassBuilder("FakeJsonResultLikeClass")
					.AddProperty("DontCare", "int")
					.Commit()

				// Display name attribute
				.CreateClassBuilder("SimpleController")
					// Fake Json Method - not extracted
					.AddMethod("FakeJson", "FakeJsonResultLikeClass")
						.AddParameter("data", "object")
						.AddLineOfCode("return null;", 0)
						.Commit()
					.AddMethod("SimpleAnonymousType", "FakeJsonResultLikeClass")
						.AddAttribute("DummyAttribute").Commit()
						.AddLineOfCode("return FakeJson(new { stringProp = \"Hi\", intProp = 1 });", 0)
						.Commit()
					.AddMethod("AnonymousTypeWithExtracted", "FakeJsonResultLikeClass")
						.AddAttribute("DummyAttribute").Commit()
						.AddLineOfCode("TestClass test = new TestClass();", 0)
						.AddLineOfCode("return FakeJson(new { testClassProp = test, intProp = 1 });", 0)
						.Commit()
					.AddMethod("AnonymousTypeWithNonExtracted", "FakeJsonResultLikeClass")
						.AddAttribute("DummyAttribute").Commit()
						.AddLineOfCode("NotExtracted test = new NotExtracted();", 0)
						.AddLineOfCode("return FakeJson(new { testClassProp = test, intProp = 1 });", 0)
						.Commit()
					.Commit()

			;


			wkspBuilder.ClassParseFilter = new ExcludeWithAnyName("DummyAttribute", "SimpleController", "FakeJsonResultLikeClass", "NotExtracted");
			wkspBuilder.ControllerParseFilter = new AlwaysAcceptFilter();
			wkspBuilder.MvcActionFilter = new AlwaysAcceptFilter();

			MethodReturnTypeHandler handler = new ParseSyntaxForTypeMethodHandler(
				"Test.FakeJsonResultLikeClass",
				new InvocationReturnForwardFilter("FakeJson", 0)
				);
			ParseOptions parseOptions = new ParseOptions();
			parseOptions.MethodReturnTypeHandlers.Add(handler);
			wkspBuilder.ParseOptions = parseOptions;

			_packageTester = wkspBuilder.GetPackageTester();
		}
Ejemplo n.º 2
0
        public void SetupParse()
        {
            TestWorkspaceBuilder wkspBuilder = new TestWorkspaceBuilder();

            wkspBuilder.DefaultProject
            // Dummy MvcActionAttribute
            .CreateClassBuilder("DummyAttribute")
            .AddBaseClass("Attribute")
            .Commit()

            // Test class to use as return/param
            .CreateClassBuilder("TestClass")
            .AddProperty("DontCare", "int")
            .Commit()

            // Test generic class to use as return/param
            .CreateClassBuilder("TestGenericClass")
            .AddGenericParameter("T")
            .AddProperty("GenericProp", "T")
            .Commit()

            // Not Extracted
            .CreateClassBuilder("NotExtracted")
            .AddProperty("DontCare", "int")
            .Commit()

            // Fake JsonResult-like class
            .CreateClassBuilder("FakeJsonResultLikeClass")
            .AddProperty("DontCare", "int")
            .Commit()

            // Display name attribute
            .CreateClassBuilder("SimpleController")
            // Fake Json Method - not extracted
            .AddMethod("FakeJson", "FakeJsonResultLikeClass")
            .AddParameter("data", "object")
            .AddLineOfCode("return null;", 0)
            .Commit()
            .AddMethod("ARandomMethod", "TestClass")                              // Random Method
            .AddLineOfCode("return null;", 0)
            .Commit()


            .AddMethod("StringResult", "string")
            .AddAttribute("DummyAttribute").Commit()
            .AddLineOfCode("return \"Hi\";", 0)
            .Commit()
            .AddMethod("NewObjectResult", "TestClass")
            .AddAttribute("DummyAttribute").Commit()
            .AddLineOfCode("return new TestClass();", 0)
            .Commit()
            .AddMethod("NewObjectResult_Json", "FakeJsonResultLikeClass")
            .AddAttribute("DummyAttribute").Commit()
            .AddLineOfCode("return FakeJson(new TestClass());", 0)
            .Commit()
            .AddMethod("VariableResult", "bool")
            .AddAttribute("DummyAttribute").Commit()
            .AddLineOfCode("bool testVar = true;", 0)
            .AddLineOfCode("return testVar;", 0)
            .Commit()
            .AddMethod("VariableResult_Json", "FakeJsonResultLikeClass")
            .AddAttribute("DummyAttribute").Commit()
            .AddLineOfCode("bool testVar = true;", 0)
            .AddLineOfCode("return FakeJson(testVar);", 0)
            .Commit()
            .AddMethod("StringConcatResult", "string")
            .AddAttribute("DummyAttribute").Commit()
            .AddLineOfCode("return \"Hello\" + \"World\";", 0)
            .Commit()
            .AddMethod("MethodResult", "TestClass")
            .AddAttribute("DummyAttribute").Commit()
            .AddLineOfCode("return ARandomMethod();", 0)
            .Commit()
            .AddMethod("SimpleParameter_Json", "FakeJsonResultLikeClass")
            .AddAttribute("DummyAttribute").Commit()
            .AddParameter("testParam", "TestClass")
            .AddLineOfCode("return FakeJson(testParam);", 0)
            .Commit()
            .AddMethod("NotExtracted_Json", "FakeJsonResultLikeClass")
            .AddAttribute("DummyAttribute").Commit()
            .AddLineOfCode("return FakeJson(new NotExtracted());", 0)
            .Commit()
            .AddMethod("ComplexMethod", "FakeJsonResultLikeClass")
            .AddAttribute("DummyAttribute").Commit()
            .AddParameter("dateStringDict", "Dictionary<DateTime, string>")
            .AddParameter("intStringDict", "Dictionary<int, string>")
            .AddParameter("stringStringDict", "Dictionary<string, string>")
            .AddLineOfCode("TestGenericClass<TestClass> gen = new TestGenericClass<TestClass>();", 0)
            .AddLineOfCode("return FakeJson(gen);", 0)
            .Commit()
            .AddMethod("GenericPropReturn_Json", "FakeJsonResultLikeClass")
            .AddAttribute("DummyAttribute").Commit()
            .AddLineOfCode("TestGenericClass<TestClass> gen = new TestGenericClass<TestClass>();", 0)
            .AddLineOfCode("return FakeJson(gen.GenericProp);", 0)
            .Commit()
            .Commit()

            ;


            wkspBuilder.ClassParseFilter      = new ExcludeWithAnyName("DummyAttribute", "SimpleController", "FakeJsonResultLikeClass", "NotExtracted");
            wkspBuilder.ControllerParseFilter = new AlwaysAcceptFilter();
            wkspBuilder.MvcActionFilter       = new AlwaysAcceptFilter();

            MethodReturnTypeHandler handler = new ParseSyntaxForTypeMethodHandler(
                "Test.FakeJsonResultLikeClass",
                new InvocationReturnForwardFilter("FakeJson", 0)
                );
            ParseOptions parseOptions = new ParseOptions();

            parseOptions.MethodReturnTypeHandlers.Add(handler);
            wkspBuilder.ParseOptions = parseOptions;

            _packageTester = wkspBuilder.GetPackageTester();
        }