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 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");
            }
Ejemplo n.º 4
0
            public void BasicTargetClassTest()
            {
                CSClass csClass = new CSClass()
                {
                    ClassFullName = "Test.Target.TargetClassName",
                    AttributeList = new List <CSAttribute>()
                    {
                        new CSAttribute
                        {
                            TypeFullName = typeof(UIClientPageAttribute).FullName,
                            ArgumentList = new List <CSAttribute.CSAttributeArgument>()
                            {
                                new CSAttribute.CSAttributeArgument {
                                    ArgumentName = "sourceClassFullName", ArguementValue = "Test.Test1.SourceClassFullNameValue"
                                }                                                                                                                                                                   //,
                                //new CSAttribute.CSAttributeArgument { ArgumentName = "ExpectedUrl", ArguementValue = "SourceClassFullName.aspx" }
                            }
                        }
                    },
                    FileRelativePathList = new List <string>()
                    {
                        "TargetClassName.aspx.designer.cs",
                        "TargetClassName.aspx.cs"
                    },
                    PropertyList = new List <CSProperty>()
                    {
                        new CSProperty()
                        {
                            TypeFullName    = typeof(WatiN.Core.Link).FullName,
                            PropertyName    = "TestLink",
                            ProtectionLevel = EnumProtectionLevel.Public,
                            AttributeList   = new List <CSAttribute>()
                            {
                                new CSAttribute()
                                {
                                    TypeFullName = typeof(UIClientPropertyAttribute).FullName,
                                    ArgumentList = new List <CSAttribute.CSAttributeArgument>()
                                    {
                                        new CSAttribute.CSAttributeArgument()
                                        {
                                            ArgumentName = "sourceFieldTypeFullName", ArguementValue = typeof(System.Web.UI.WebControls.HyperLink).FullName
                                        },
                                        new CSAttribute.CSAttributeArgument()
                                        {
                                            ArgumentName = "sourceFieldName", ArguementValue = "TestLink"
                                        }
                                    }
                                }
                            }
                        },
                        new CSProperty()
                        {
                            TypeFullName    = typeof(WatiN.Core.TextField).FullName,
                            PropertyName    = "TestTextBox",
                            ProtectionLevel = EnumProtectionLevel.Public,
                            AttributeList   = new List <CSAttribute>()
                            {
                                new CSAttribute()
                                {
                                    TypeFullName = typeof(UIClientPropertyAttribute).FullName,
                                    ArgumentList = new List <CSAttribute.CSAttributeArgument>()
                                    {
                                        new CSAttribute.CSAttributeArgument()
                                        {
                                            ArgumentName = "sourceFieldTypeFullName", ArguementValue = typeof(System.Web.UI.WebControls.TextBox).FullName
                                        },
                                        new CSAttribute.CSAttributeArgument()
                                        {
                                            ArgumentName = "sourceFieldName", ArguementValue = "TestTextBox"
                                        }
                                    }
                                }
                            }
                        },
                    }
                };
                var targetClassManager = new TargetClassManager();
                var targetClass        = targetClassManager.TryLoadTargetClass(csClass);

                Assert.IsNotNull(targetClass);
                Assert.AreEqual("Test.Test1.SourceClassFullNameValue", targetClass.SourceClassFullName);
                Assert.AreEqual("Test.Target.TargetClassName", targetClass.TargetClassFullName);
                Assert.AreEqual(2, targetClass.TargetFieldList.Count);
                TestValidators.ValidateTargetField(targetField: targetClass.TargetFieldList[0],
                                                   isDirty: false,
                                                   sourceClassFullName: "System.Web.UI.WebControls.HyperLink",
                                                   sourceFieldName: "TestLink",
                                                   targetControlType: EnumTargetControlType.Link,
                                                   targetFieldName: "TestLink");
                TestValidators.ValidateTargetField(targetField: targetClass.TargetFieldList[1],
                                                   isDirty: false,
                                                   sourceClassFullName: "System.Web.UI.WebControls.TextBox",
                                                   sourceFieldName: "TestTextBox",
                                                   targetControlType: EnumTargetControlType.TextBox,
                                                   targetFieldName: "TestTextBox");
                //Assert.AreEqual("SourceClassFullName.aspx", targetClass.ExpectedUrl);
            }