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"); }
public void DifferentSourceNamespace_CreatesTargetClassWithDifferentNamespace() { var sourceProject = new SourceWebProject { WebPageList = new List <SourceWebPage>() { new SourceWebPage { ClassFullName = "SomeOtherNamespace.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\SomeOtherNamespace\Test1\TestItemPageClient.designer.cs", @"Client\Pages\SomeOtherNamespace\Test1\TestItemPageClient.cs", @"SomeOtherNamespace.Test1.TestItem", @"TestTargetNamespace.Client.Pages.SomeOtherNamespace.Test1.TestItemPageClient", EnumSourceObjectType.WebPage, "TestWebPage.aspx"); }
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"); }
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"); }
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"); }
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()); }
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"); }
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); }