コード例 #1
0
			public void MatchingSourceNamespace_CreatesTargetClassWithSameNamespace()
			{
				var sourceProject = new SourceWebProject
				{
					WebPageList = new List<SourceWebPage>()
					{
						new SourceWebPage
						{
							ClassFullName = "TestTargetNamespace.Test1.TestItem",
							PageUrl = "TestWebPage.aspx"
						}
					},
					RootNamespace = "TestSourceNamespace"
				};

				var targetProject = new TargetProject
				{
					RootNamespace = "TestTargetNamespace.Test1"
				};
				var targetModelGenerator = new TargetModelGenerator();
				var projectResult = targetModelGenerator.CompareProject(targetProject, sourceProject);
				Assert.AreEqual(1, projectResult.ClassesToAdd.Count);
				Assert.AreEqual(0, projectResult.ClassesToUpdate.Count);
				TestValidators.ValidateTargetClassComparisonResult(classResult:projectResult.ClassesToAdd[0],
																	designerFileRelativePath:@"Client\Pages\TestTargetNamespace\Test1\TestItemPageClient.designer.cs",
																	userFileRelativePath: @"Client\Pages\TestTargetNamespace\Test1\TestItemPageClient.cs",
																	sourceClassFullName: @"TestTargetNamespace.Test1.TestItem",
																	targetClassFullName: @"TestTargetNamespace.Test1.Client.Pages.TestTargetNamespace.Test1.TestItemPageClient", 
																	targetObjectType:EnumSourceObjectType.WebPage, 
																	expectedUrl:"TestWebPage.aspx");
			}
コード例 #2
0
			public void OneSourceClass_NewTargetProject_ShouldCreateTargetClass()
			{
				var sourceProject = new SourceWebProject 
				{
					WebPageList = new List<SourceWebPage>()
					{
						new SourceWebPage
						{
							ClassFullName = "TestSourceNamespace.Test1.TestItem",
							PageUrl = "TestWebPage.aspx"
						}
					},
					RootNamespace = "TestSourceNamespace"
				};

				var targetProject = new TargetProject
				{
					RootNamespace = "TestTargetNamespace"
				};
				var targetModelGenerator = new TargetModelGenerator();
				var projectResult = targetModelGenerator.CompareProject(targetProject, sourceProject);
				Assert.AreEqual(1, projectResult.ClassesToAdd.Count);
				Assert.AreEqual(0, projectResult.ClassesToUpdate.Count);
				TestValidators.ValidateTargetClassComparisonResult(projectResult.ClassesToAdd[0],
																	@"Client\Pages\Test1\TestItemPageClient.designer.cs",
																	@"Client\Pages\Test1\TestItemPageClient.cs",
																	@"TestSourceNamespace.Test1.TestItem",
																	@"TestTargetNamespace.Client.Pages.Test1.TestItemPageClient", 
																	EnumSourceObjectType.WebPage,
																	"TestWebPage.aspx");
			}
コード例 #3
0
ファイル: ProxyGenerator.cs プロジェクト: mmooney/MMDB.UITest
        public static void UpdateProxyProject(string targetProjectPath, SourceWebProject sourceProject)
		{
			XDocument xdoc = XDocument.Load(targetProjectPath);
			var targetModelGenerator = new TargetModelGenerator();
			TargetProject targetProject = targetModelGenerator.LoadFromProjectFile(targetProjectPath);
			var projectComparison = targetModelGenerator.CompareProject(targetProject, sourceProject);
			targetModelGenerator.UpdateProjectFile(targetProject, projectComparison);
		}
コード例 #4
0
ファイル: ProxyGenerator.cs プロジェクト: mmooney/MMDB.UITest
        public static void UpdateProxyProject(string targetProjectPath, SourceWebProject sourceProject)
        {
            XDocument     xdoc = XDocument.Load(targetProjectPath);
            var           targetModelGenerator = new TargetModelGenerator();
            TargetProject targetProject        = targetModelGenerator.LoadFromProjectFile(targetProjectPath);
            var           projectComparison    = targetModelGenerator.CompareProject(targetProject, sourceProject);

            targetModelGenerator.UpdateProjectFile(targetProject, projectComparison);
        }
コード例 #5
0
ファイル: Program.cs プロジェクト: mmooney/MMDB.UITest
		static void Main()
		{
			//string inputProject = @"C:\Users\admin\Dropbox\Code\screwturn-screwturn-wiki-4-cf9155b27d4c\WebApplication\WebApplication.csproj";
			string inputProjectPath = @"..\..\..\..\BugNet\src\BugNET_WAP\BugNET_WAP.csproj";
			//string outputProjectPath = @"C:\Users\admin\Dropbox\Code\MMDB.UITest\ScrewturnWikiProxySample\ScrewturnWikiProxySample.csproj";
			string outputProjectPath = @"..\..\..\BugNetProxySample\BugNetProxySample.csproj";
			var sourceProjectFile = new ProjectParser().ParseFile(inputProjectPath);
			var sourceModel = new SourceWebModelParser().LoadFromProjectFile(sourceProjectFile, inputProjectPath);

			var targetProjectFile = new ProjectParser().ParseFile(outputProjectPath);
			var targetModel = new TargetModelParser().LoadFromProjectFile(targetProjectFile, outputProjectPath);

			var comparison = new TargetModelGenerator().CompareProject(targetModel, sourceModel);
			new TargetModelWriter().ApplyChanges(comparison, outputProjectPath);

			//ProxyGenerator.UpdateProxyProject(outputProjectPath, sourceProject);
			Application.EnableVisualStyles();
			Application.SetCompatibleTextRenderingDefault(false);
			Application.Run(new Form1());

		}
コード例 #6
0
			public void ExistingClassChangedTargetFieldType_ShouldUpdateTargetFieldType()
			{
				SourceWebPage sourceWebPage = new SourceWebPage
				{
					ClassFullName = "Test1.TestSourceClass",
					PageUrl = "TestSourceClass.aspx",
					Controls = new List<SourceWebControl>()
				    {
				        new SourceWebControl
				        {
				            ClassFullName = typeof(System.Web.UI.WebControls.HyperLink).FullName,
				            FieldName = "TestTargetField"
				        }
				    }
				};
				var targetClass = new TargetClass()
				{
					TargetFieldList = new List<TargetField>() 
					{
						new TargetField
						{
							IsDirty = false,
							SourceClassFullName = typeof(System.Web.UI.WebControls.HyperLink).FullName,
							SourceFieldName = "TestTargetField",
							TargetControlType = EnumTargetControlType.TextBox,
							TargetFieldName = "TestTargetField"
						}
					}
				};
				var targetModelGenerator = new TargetModelGenerator();
				targetClass = targetModelGenerator.UpdateClass(sourceWebPage, targetClass);
				Assert.AreEqual(1, targetClass.TargetFieldList.Count);
				TestValidators.ValidateTargetField(targetClass.TargetFieldList[0],
											isDirty: true,
											sourceClassFullName: typeof(System.Web.UI.WebControls.HyperLink).FullName,
											sourceFieldName: "TestTargetField",
											targetControlType: EnumTargetControlType.Link,
											targetFieldName: "TestTargetField");
			}
コード例 #7
0
			public void ExistingClassExistingIrrelevantFields() 
			{
				SourceWebPage sourceWebPage = new SourceWebPage
				{
					ClassFullName = "Test1.TestSourceClass",
					PageUrl = "TestSourceClass.aspx",
					Controls = new List<SourceWebControl>()
				    {
				        new SourceWebControl
				        {
				            ClassFullName = "System.Web.UI.WebControls.HyperLink",
				            FieldName = "NewTargetField"
				        }
				    }
				};
				var targetClass = new TargetClass()
				{
					TargetFieldList = new List<TargetField>() 
					{
						new TargetField
						{
							IsDirty = false,
							SourceClassFullName = "TestSourcenamespace.TestSourceClass",
							SourceFieldName = "ExistingTargetField",
							TargetControlType = EnumTargetControlType.Unknown,
							TargetFieldName = "ExistingTargetFieldName"
						}
					}
				};
				var targetModelGenerator = new TargetModelGenerator();
				targetClass = targetModelGenerator.UpdateClass(sourceWebPage, targetClass);
				Assert.AreEqual(2, targetClass.TargetFieldList.Count);

				TestValidators.ValidateTargetField(targetClass.TargetFieldList[0],
											isDirty:false,
											sourceClassFullName: "TestSourcenamespace.TestSourceClass",
											sourceFieldName: "ExistingTargetField",
											targetControlType: EnumTargetControlType.Unknown,
											targetFieldName: "ExistingTargetFieldName");

				TestValidators.ValidateTargetField(targetClass.TargetFieldList[1],
											isDirty:true,
											sourceClassFullName: "System.Web.UI.WebControls.HyperLink",
											sourceFieldName: "NewTargetField", 
											targetControlType: EnumTargetControlType.Link, 
											targetFieldName: "NewTargetField");
			}
コード例 #8
0
			public void NewTargetClassWithLabel_ShouldCreateNewTargetClassWithLabel()
			{
				SourceWebPage sourceWebPage = new SourceWebPage
				{
					ClassFullName = "Test1.TestSourceClass",
					PageUrl = "TestSourceClass.aspx",
					Controls = new List<SourceWebControl>()
				    {
						new SourceWebControl
						{
				            ClassFullName = "System.Web.UI.WebControls.Label",
				            FieldName = "TestTargetField"
						}
				    }
				};
				TargetClass targetClass = new TargetClass();
				var targetModelGenerator = new TargetModelGenerator();
				targetClass = targetModelGenerator.UpdateClass(sourceWebPage, targetClass);
				Assert.AreEqual(1, targetClass.TargetFieldList.Count);
				TestValidators.ValidateTargetField(targetClass.TargetFieldList[0],
											isDirty:true,
											sourceClassFullName:"System.Web.UI.WebControls.Label",
											sourceFieldName:"TestTargetField",
											targetControlType: EnumTargetControlType.Label,
											targetFieldName:"TestTargetField");
			}
コード例 #9
0
			public void ExistingTargetClassWithDifferentName_ShouldUpdateExistingTargetClass()
			{
				var sourceProject = new SourceWebProject
				{
					WebPageList = new List<SourceWebPage>()
					{
						new SourceWebPage
						{
							ClassFullName = "TestSourceNamespace.Test1.TestItem",
							PageUrl = "TestWebPage.aspx"
						}
					},
					RootNamespace = "TestSourceNamespace"
				};

				var targetProject = new TargetProject
				{
					RootNamespace = "TestTargetNamespace",
					TargetClassList = new List<TargetClass>() 
					{
						new TargetClass
						{
							SourceClassFullName = "TestSourceNamespace.Test1.TestItem",
							DesignerFileRelativePath = @"SomeOtherLocation\SomeOtherClassName.designer.cs",
							UserFileRelativePath = @"SomeOtherLocation\SomeOtherClassName.cs",
							TargetClassFullName = "SomeOtherLocation.SomeOtherClassName",
							SourceObjectType = EnumSourceObjectType.WebPage,
							ExpectedUrl = "TestWebPage.aspx"
						}
					}
				};
				var targetModelGenerator = new TargetModelGenerator();
				var projectResult = targetModelGenerator.CompareProject(targetProject, sourceProject);
				Assert.AreEqual(0, projectResult.ClassesToAdd.Count);
				Assert.AreEqual(1, projectResult.ClassesToUpdate.Count);
				TestValidators.ValidateTargetClassComparisonResult(projectResult.ClassesToUpdate[0],
																	@"SomeOtherLocation\SomeOtherClassName.designer.cs", 
																	@"SomeOtherLocation\SomeOtherClassName.cs", 
																	"TestSourceNamespace.Test1.TestItem", 
																	"SomeOtherLocation.SomeOtherClassName", 
																	EnumSourceObjectType.WebPage,
																	"TestWebPage.aspx");
			}
コード例 #10
0
			public void ExistingTargetClassWithExpectedNameAndLocation_ShouldUpdateExistingClass()
			{
				var sourceProject = new SourceWebProject
				{
					WebPageList = new List<SourceWebPage>()
					{
						new SourceWebPage
						{
							ClassFullName = "TestSourceNamespace.Test1.TestItem",
							PageUrl = "TestWebPage.aspx"
						}
					},
					RootNamespace = "TestSourceNamespace"
				};

				var targetProject = new TargetProject
				{
					RootNamespace = "TestTargetNamespace",
					TargetClassList = new List<TargetClass>() 
					{
						new TargetClass
						{
							SourceClassFullName = "TestSourceNamespace.Test1.TestItem",
							DesignerFileRelativePath = @"Client\Pages\Test1\TestItemPageClient.designer.cs",
							UserFileRelativePath = @"Client\Pages\Test1\TestItemPageClient.cs",
							TargetClassFullName = "TestTargetNamespace.Client.Pages.Test1.TestItemPageClient",
							SourceObjectType = EnumSourceObjectType.WebPage,
							ExpectedUrl = "TestWebPage.aspx"
						}
					}
				};
				var targetModelGenerator = new TargetModelGenerator();
				var projectResult = targetModelGenerator.CompareProject(targetProject, sourceProject);
				Assert.AreEqual(0, projectResult.ClassesToAdd.Count);
				Assert.AreEqual(1, projectResult.ClassesToUpdate.Count);
			}