Esempio n. 1
0
			public void TestBasicProject()
			{
				string data =
				@"<?xml version=""1.0"" encoding=""utf-8""?>
					<Project DefaultTargets=""Build"" xmlns=""http://schemas.microsoft.com/developer/msbuild/2003"" ToolsVersion=""4.0"">
						<PropertyGroup>
						<Configuration Condition="" '$(Configuration)' == '' "">Debug</Configuration>
							<OutputType>Library</OutputType>
							<AppDesignerFolder>Properties</AppDesignerFolder>
							<RootNamespace>TestRootNamespace</RootNamespace>
							<RestorePackages>true</RestorePackages>
						</PropertyGroup>
						<ItemGroup>
							<Compile Include=""TestClass1.cs"" />
						</ItemGroup>
					</Project>
				";
				Mock<ClassParser> classParser = new Mock<ClassParser>();
				List<CSClass> classList = new List<CSClass>();
				var testClass1 = new CSClass()
				{
					ClassName = "TestClass1",
					NamespaceName = "Test.Test1"
				};
				classList.Add(testClass1);
				classParser.Setup(i => i.ParseFile("C:\\Test\\TestClass1.cs", It.IsAny<string>(), It.IsAny<IEnumerable<CSClass>>())).Returns(classList);

				ProjectParser parser = new ProjectParser(classParser.Object);

				CSProjectFile project = parser.ParseString(data, "C:\\Test\\TestProject.csproj");
			
				Assert.AreEqual("TestRootNamespace", project.RootNamespace);
				Assert.AreEqual(1, project.ClassList.Count);
				Assert.AreEqual("Test.Test1.TestClass1", project.ClassList[0].ClassFullName);
			}
Esempio n. 2
0
            public void TestWebFormFiles()
            {
                string data =
                    @"<?xml version=""1.0"" encoding=""utf-8""?>
					<Project DefaultTargets=""Build"" xmlns=""http://schemas.microsoft.com/developer/msbuild/2003"" ToolsVersion=""4.0"">
						<ItemGroup>
							<Compile Include=""TestClass1.aspx.cs"">
								<DependentUpon>TestClass1.aspx</DependentUpon>
							</Compile>
						</ItemGroup>
						<ItemGroup>
							<Content Include=""TestClass1.aspx"" />
							<Content Include=""TestControl.ascx"" />
							<Content Include=""TestMaster.Master"" />
						</ItemGroup>
					</Project>
				"                ;
                Mock <ClassParser> classParser = new Mock <ClassParser>();
                List <CSClass>     classList   = new List <CSClass>();
                var testClass1 = new CSClass()
                {
                    ClassName     = "TestClass1",
                    NamespaceName = "Test.Test1"
                };

                classList.Add(testClass1);
                classParser.Setup(i => i.ParseFile("C:\\Test\\TestClass1.aspx.cs", It.IsAny <string>(), It.IsAny <IEnumerable <CSClass> >())).Returns(classList);

                Mock <CSWebFormParser> webFormParser = new Mock <CSWebFormParser>();

                webFormParser.Setup(i => i.ParseFile("C:\\Test\\TestClass1.aspx"))
                .Returns(new WebFormContainer {
                    ClassFullName = "Test.Test1.TestClass1", CodeBehindFile = "TestClass1.aspx.cs", ContainerType = EnumWebFormContainerType.WebPage
                });
                webFormParser.Setup(i => i.ParseFile("C:\\Test\\TestControl.ascx"))
                .Returns(new WebFormContainer {
                    ClassFullName = "Test.Test1.TestControl", CodeBehindFile = "TestControl.ascx.cs", ContainerType = EnumWebFormContainerType.UserControl
                });
                webFormParser.Setup(i => i.ParseFile("C:\\Test\\TestMaster.Master"))
                .Returns(new WebFormContainer {
                    ClassFullName = "Test.Test1.TestMaster", CodeBehindFile = "TestMaster.Master.cs", ContainerType = EnumWebFormContainerType.MasterPage
                });

                ProjectParser parser = new ProjectParser(classParser.Object, webFormParser.Object);

                CSProjectFile project = parser.ParseString(data, "C:\\Test\\TestProject.csproj");

                Assert.AreEqual(1, project.ClassList.Count);
                Assert.AreEqual("Test.Test1.TestClass1", project.ClassList[0].ClassFullName);

                Assert.AreEqual(3, project.WebFormContainers.Count);
                Assert.AreEqual("Test.Test1.TestClass1", project.WebFormContainers[0].ClassFullName);
                Assert.AreEqual("Test.Test1.TestControl", project.WebFormContainers[1].ClassFullName);
                Assert.AreEqual("Test.Test1.TestMaster", project.WebFormContainers[2].ClassFullName);
            }
Esempio n. 3
0
            public void TestBasicProject()
            {
                string data =
                    @"<?xml version=""1.0"" encoding=""utf-8""?>
					<Project DefaultTargets=""Build"" xmlns=""http://schemas.microsoft.com/developer/msbuild/2003"" ToolsVersion=""4.0"">
						<PropertyGroup>
						<Configuration Condition="" '$(Configuration)' == '' "">Debug</Configuration>
							<OutputType>Library</OutputType>
							<AppDesignerFolder>Properties</AppDesignerFolder>
							<RootNamespace>TestRootNamespace</RootNamespace>
							<RestorePackages>true</RestorePackages>
						</PropertyGroup>
						<ItemGroup>
							<Compile Include=""TestClass1.cs"" />
						</ItemGroup>
					</Project>
				"                ;
                Mock <ClassParser> classParser = new Mock <ClassParser>();
                List <CSClass>     classList   = new List <CSClass>();
                var testClass1 = new CSClass()
                {
                    ClassName     = "TestClass1",
                    NamespaceName = "Test.Test1"
                };

                classList.Add(testClass1);
                classParser.Setup(i => i.ParseFile("C:\\Test\\TestClass1.cs", It.IsAny <string>(), It.IsAny <IEnumerable <CSClass> >())).Returns(classList);

                ProjectParser parser = new ProjectParser(classParser.Object);

                CSProjectFile project = parser.ParseString(data, "C:\\Test\\TestProject.csproj");

                Assert.AreEqual("TestRootNamespace", project.RootNamespace);
                Assert.AreEqual(1, project.ClassList.Count);
                Assert.AreEqual("Test.Test1.TestClass1", project.ClassList[0].ClassFullName);
            }
Esempio n. 4
0
			public void TestWebFormFiles()
			{
				string data =
				@"<?xml version=""1.0"" encoding=""utf-8""?>
					<Project DefaultTargets=""Build"" xmlns=""http://schemas.microsoft.com/developer/msbuild/2003"" ToolsVersion=""4.0"">
						<ItemGroup>
							<Compile Include=""TestClass1.aspx.cs"">
								<DependentUpon>TestClass1.aspx</DependentUpon>
							</Compile>
						</ItemGroup>
						<ItemGroup>
							<Content Include=""TestClass1.aspx"" />
							<Content Include=""TestControl.ascx"" />
							<Content Include=""TestMaster.Master"" />
						</ItemGroup>
					</Project>
				";
				Mock<ClassParser> classParser = new Mock<ClassParser>();
				List<CSClass> classList = new List<CSClass>();
				var testClass1 = new CSClass()
				{
					ClassName = "TestClass1",
					NamespaceName = "Test.Test1"
				};
				classList.Add(testClass1);
				classParser.Setup(i => i.ParseFile("C:\\Test\\TestClass1.aspx.cs", It.IsAny<string>(), It.IsAny<IEnumerable<CSClass>>())).Returns(classList);

				Mock<CSWebFormParser> webFormParser =new Mock<CSWebFormParser>();
				webFormParser.Setup(i => i.ParseFile("C:\\Test\\TestClass1.aspx"))
					.Returns(new WebFormContainer { ClassFullName = "Test.Test1.TestClass1", CodeBehindFile = "TestClass1.aspx.cs", ContainerType = EnumWebFormContainerType.WebPage });
				webFormParser.Setup(i => i.ParseFile("C:\\Test\\TestControl.ascx"))
					.Returns(new WebFormContainer { ClassFullName = "Test.Test1.TestControl", CodeBehindFile = "TestControl.ascx.cs", ContainerType = EnumWebFormContainerType.UserControl });
				webFormParser.Setup(i => i.ParseFile("C:\\Test\\TestMaster.Master"))
					.Returns(new WebFormContainer { ClassFullName = "Test.Test1.TestMaster", CodeBehindFile = "TestMaster.Master.cs", ContainerType = EnumWebFormContainerType.MasterPage });

				ProjectParser parser = new ProjectParser(classParser.Object, webFormParser.Object);

				CSProjectFile project = parser.ParseString(data, "C:\\Test\\TestProject.csproj");

				Assert.AreEqual(1, project.ClassList.Count);
				Assert.AreEqual("Test.Test1.TestClass1", project.ClassList[0].ClassFullName);

				Assert.AreEqual(3, project.WebFormContainers.Count);
				Assert.AreEqual("Test.Test1.TestClass1", project.WebFormContainers[0].ClassFullName);
				Assert.AreEqual("Test.Test1.TestControl", project.WebFormContainers[1].ClassFullName);
				Assert.AreEqual("Test.Test1.TestMaster", project.WebFormContainers[2].ClassFullName);
			}
Esempio n. 5
0
			public void TestRelativeDependentUponFilePath()
			{
				string data =
				@"<?xml version=""1.0"" encoding=""utf-8""?>
					<Project DefaultTargets=""Build"" xmlns=""http://schemas.microsoft.com/developer/msbuild/2003"" ToolsVersion=""4.0"">
						<ItemGroup>
							<Compile Include=""TestDirectory\TestClass1.aspx.cs"">
								<DependentUpon>TestClass1.aspx</DependentUpon>
							</Compile>
							<Compile Include=""TestDirectory1\TestDirectory2\TestClass2.aspx.cs"">
								<DependentUpon>TestClass2.aspx</DependentUpon>
							</Compile>
						</ItemGroup>
						<ItemGroup>
							<Content Include=""TestDirectory\TestClass1.aspx"" />
							<Content Include=""TestDirectory1\TestDirectory2\TestClass2.aspx"" />
						</ItemGroup>
					</Project>
				";
				Mock<ClassParser> classParser = new Mock<ClassParser>();
				List<CSClass> classList = new List<CSClass>();
				var testClass1 = new CSClass()
				{
					ClassFullName = "Test.Test1.TestClass1"
				};
				var testClass2 = new CSClass()
				{
					ClassFullName = "Test.Test2.TestClass2"
				};
				classList.Add(testClass1);
				classParser.Setup(i => i.ParseFile("C:\\Test\\TestDirectory\\TestClass1.aspx.cs", It.IsAny<string>(), It.IsAny<IEnumerable<CSClass>>()))
							.Returns((string filePath, string projectPath, IEnumerable<CSClass> inputClassList) => AppendClassToList(inputClassList, testClass1));
				classParser.Setup(i => i.ParseFile("C:\\Test\\TestDirectory1\\TestDirectory2\\TestClass2.aspx.cs", It.IsAny<string>(), It.IsAny<IEnumerable<CSClass>>()))
							.Returns((string filePath, string projectPath, IEnumerable<CSClass> inputClassList) => AppendClassToList(inputClassList, testClass2));

				Mock<CSWebFormParser> webFormParser = new Mock<CSWebFormParser>();
				webFormParser.Setup(i => i.ParseFile("C:\\Test\\TestDirectory\\TestClass1.aspx"))
							.Returns(new WebFormContainer { ClassFullName = "Test.Test1.TestClass1", CodeBehindFile = "TestClass1.aspx.cs", ContainerType = EnumWebFormContainerType.WebPage });
				webFormParser.Setup(i => i.ParseFile("C:\\Test\\TestDirectory1\\TestDirectory2\\TestClass2.aspx"))
							.Returns(new WebFormContainer { ClassFullName = "Test.Test2.TestClass2", CodeBehindFile = "TestClass2.aspx.cs", ContainerType = EnumWebFormContainerType.WebPage });

				ProjectParser parser = new ProjectParser(classParser.Object, webFormParser.Object);

				CSProjectFile project = parser.ParseString(data, "C:\\Test\\TestProject.csproj");

				Assert.AreEqual(2, project.ClassList.Count);

				Assert.AreEqual("Test.Test1.TestClass1", project.ClassList[0].ClassFullName);
				Assert.AreEqual("Test.Test2.TestClass2", project.ClassList[1].ClassFullName);

				Assert.AreEqual(2, project.ClassFileDependencyList.Count);
				Assert.AreEqual("Test.Test1.TestClass1", project.ClassFileDependencyList[0].ClassFullName);
				Assert.AreEqual("TestDirectory\\TestClass1.aspx", project.ClassFileDependencyList[0].DependentUponFile);
				Assert.AreEqual("Test.Test2.TestClass2", project.ClassFileDependencyList[1].ClassFullName);
				Assert.AreEqual("TestDirectory1\\TestDirectory2\\TestClass2.aspx", project.ClassFileDependencyList[1].DependentUponFile);

				Assert.AreEqual(2, project.WebFormContainers.Count);

				Assert.AreEqual("Test.Test1.TestClass1", project.WebFormContainers[0].ClassFullName);
				Assert.AreEqual("TestClass1.aspx.cs", project.WebFormContainers[0].CodeBehindFile);
				Assert.AreEqual(EnumWebFormContainerType.WebPage, project.WebFormContainers[0].ContainerType);

				Assert.AreEqual("Test.Test2.TestClass2", project.WebFormContainers[1].ClassFullName);
				Assert.AreEqual("TestClass2.aspx.cs", project.WebFormContainers[1].CodeBehindFile);
				Assert.AreEqual(EnumWebFormContainerType.WebPage, project.WebFormContainers[1].ContainerType);
			}
Esempio n. 6
0
            public void TestRelativeDependentUponFilePath()
            {
                string data =
                    @"<?xml version=""1.0"" encoding=""utf-8""?>
					<Project DefaultTargets=""Build"" xmlns=""http://schemas.microsoft.com/developer/msbuild/2003"" ToolsVersion=""4.0"">
						<ItemGroup>
							<Compile Include=""TestDirectory\TestClass1.aspx.cs"">
								<DependentUpon>TestClass1.aspx</DependentUpon>
							</Compile>
							<Compile Include=""TestDirectory1\TestDirectory2\TestClass2.aspx.cs"">
								<DependentUpon>TestClass2.aspx</DependentUpon>
							</Compile>
						</ItemGroup>
						<ItemGroup>
							<Content Include=""TestDirectory\TestClass1.aspx"" />
							<Content Include=""TestDirectory1\TestDirectory2\TestClass2.aspx"" />
						</ItemGroup>
					</Project>
				"                ;
                Mock <ClassParser> classParser = new Mock <ClassParser>();
                List <CSClass>     classList   = new List <CSClass>();
                var testClass1 = new CSClass()
                {
                    ClassFullName = "Test.Test1.TestClass1"
                };
                var testClass2 = new CSClass()
                {
                    ClassFullName = "Test.Test2.TestClass2"
                };

                classList.Add(testClass1);
                classParser.Setup(i => i.ParseFile("C:\\Test\\TestDirectory\\TestClass1.aspx.cs", It.IsAny <string>(), It.IsAny <IEnumerable <CSClass> >()))
                .Returns((string filePath, string projectPath, IEnumerable <CSClass> inputClassList) => AppendClassToList(inputClassList, testClass1));
                classParser.Setup(i => i.ParseFile("C:\\Test\\TestDirectory1\\TestDirectory2\\TestClass2.aspx.cs", It.IsAny <string>(), It.IsAny <IEnumerable <CSClass> >()))
                .Returns((string filePath, string projectPath, IEnumerable <CSClass> inputClassList) => AppendClassToList(inputClassList, testClass2));

                Mock <CSWebFormParser> webFormParser = new Mock <CSWebFormParser>();

                webFormParser.Setup(i => i.ParseFile("C:\\Test\\TestDirectory\\TestClass1.aspx"))
                .Returns(new WebFormContainer {
                    ClassFullName = "Test.Test1.TestClass1", CodeBehindFile = "TestClass1.aspx.cs", ContainerType = EnumWebFormContainerType.WebPage
                });
                webFormParser.Setup(i => i.ParseFile("C:\\Test\\TestDirectory1\\TestDirectory2\\TestClass2.aspx"))
                .Returns(new WebFormContainer {
                    ClassFullName = "Test.Test2.TestClass2", CodeBehindFile = "TestClass2.aspx.cs", ContainerType = EnumWebFormContainerType.WebPage
                });

                ProjectParser parser = new ProjectParser(classParser.Object, webFormParser.Object);

                CSProjectFile project = parser.ParseString(data, "C:\\Test\\TestProject.csproj");

                Assert.AreEqual(2, project.ClassList.Count);

                Assert.AreEqual("Test.Test1.TestClass1", project.ClassList[0].ClassFullName);
                Assert.AreEqual("Test.Test2.TestClass2", project.ClassList[1].ClassFullName);

                Assert.AreEqual(2, project.ClassFileDependencyList.Count);
                Assert.AreEqual("Test.Test1.TestClass1", project.ClassFileDependencyList[0].ClassFullName);
                Assert.AreEqual("TestDirectory\\TestClass1.aspx", project.ClassFileDependencyList[0].DependentUponFile);
                Assert.AreEqual("Test.Test2.TestClass2", project.ClassFileDependencyList[1].ClassFullName);
                Assert.AreEqual("TestDirectory1\\TestDirectory2\\TestClass2.aspx", project.ClassFileDependencyList[1].DependentUponFile);

                Assert.AreEqual(2, project.WebFormContainers.Count);

                Assert.AreEqual("Test.Test1.TestClass1", project.WebFormContainers[0].ClassFullName);
                Assert.AreEqual("TestClass1.aspx.cs", project.WebFormContainers[0].CodeBehindFile);
                Assert.AreEqual(EnumWebFormContainerType.WebPage, project.WebFormContainers[0].ContainerType);

                Assert.AreEqual("Test.Test2.TestClass2", project.WebFormContainers[1].ClassFullName);
                Assert.AreEqual("TestClass2.aspx.cs", project.WebFormContainers[1].CodeBehindFile);
                Assert.AreEqual(EnumWebFormContainerType.WebPage, project.WebFormContainers[1].ContainerType);
            }