예제 #1
0
        public void TestSerializationForPropetyContraints()
        {
            OrmPropertyConstraints constraints = new OrmPropertyConstraints();

            SetPropertyConstraintsValues(constraints);

            var cloned = constraints.CloneBySerialization();

            Assert.IsNotNull(cloned);
        }
예제 #2
0
        public void Test_OrmFieldAttribute_Constraints()
        {
            OrmPropertyConstraints constraints = new OrmPropertyConstraints();

            foreach (var constraint in constraints.AllConstraints)
            {
                constraint.Used         = true;
                constraint.Mode         = PropertyConstrainMode.OnSetValue;
                constraint.ErrorMessage = string.Format("error for {0}", constraint.ConstrainType);
            }

            var lengthConstraint = constraints.LengthConstraint;

            lengthConstraint.Min.SetAsDefault();
            lengthConstraint.Max.SetAsCustom(10);

            var rangeConstraint = constraints.RangeConstraint;

            rangeConstraint.Min.Enabled     = true;
            rangeConstraint.Min.Value.Value = 120;
            rangeConstraint.Max.Enabled     = false;

            var regexConstraint = constraints.RegexConstraint;

            regexConstraint.Pattern = "1234@11";
            regexConstraint.Options = RegexOptions.ECMAScript | RegexOptions.IgnoreCase | RegexOptions.Singleline;

            OrmPropertyConstraints cloned = constraints.Clone();

            Assert.IsNotNull(cloned);

            //var targetAttribute = CreateOrmFieldAttribute(TestAttributeValuesType.Values2);
            //TestMergeChangesForOrmAttribute(originalAttribute, targetAttribute);

//            OrmFieldAttribute clonedAttribute = null;
//
//            Action cloneAttribute = () => clonedAttribute = originalAttribute.Clone();
//            cloneAttribute();
//            Assert.IsTrue(originalAttribute.EqualsTo(clonedAttribute));

            //Action testClonedNotEquals = () => Assert.IsFalse(originalAttribute.EqualsTo(clonedAttribute));
        }
예제 #3
0
        private static void SetPropertyConstraintsValues(OrmPropertyConstraints constraints)
        {
            foreach (var constraint in constraints.AllConstraints)
            {
                constraint.Used         = true;
                constraint.Mode         = PropertyConstrainMode.OnSetValue;
                constraint.ErrorMessage = string.Format("error for {0}", constraint.ConstrainType);
            }
            var lengthConstraint = constraints.LengthConstraint;

            lengthConstraint.Min.SetAsDefault();
            lengthConstraint.Max.SetAsCustom(10);
            var rangeConstraint = constraints.RangeConstraint;

            rangeConstraint.Min.Enabled     = true;
            rangeConstraint.Min.Value.Value = 120;
            rangeConstraint.Max.Enabled     = false;
            var regexConstraint = constraints.RegexConstraint;

            regexConstraint.Pattern = "1234@11";
            regexConstraint.Options = RegexOptions.ECMAScript | RegexOptions.IgnoreCase | RegexOptions.Singleline;
        }
예제 #4
0
        private static void CustomReadPropertiesFromElements(SerializationContext serializationContext, PropertyBase element, XmlReader reader)
        {
            while (!serializationContext.Result.Failed && !reader.EOF && reader.NodeType == global::System.Xml.XmlNodeType.Element)
            {
                switch (reader.LocalName)
                {
                    case "field":	// field
                    {
                        if (reader.IsEmptyElement)
                        {	// No serialized value, must be default one.
                            SerializationUtilities.Skip(reader);  // Skip this tag.
                        }
                        else
                        {
                            OrmFieldAttribute fieldAttribute = new OrmFieldAttribute();
                            fieldAttribute.DeserializeFromXml(reader);
                            element.FieldAttribute = fieldAttribute;

                            SerializationUtilities.SkipToNextElement(reader);
                            reader.SkipToNextElementFix();
                        }
                        break;
                    }
                    case "constraints":	// field
                    {
                        if (reader.IsEmptyElement)
                        {	// No serialized value, must be default one.
                            SerializationUtilities.Skip(reader);  // Skip this tag.
                        }
                        else
                        {
                            OrmPropertyConstraints constraints = new OrmPropertyConstraints();
                            constraints.DeserializeFromXml(reader);
                            element.Constraints = constraints;

                            SerializationUtilities.SkipToNextElement(reader);
                            reader.SkipToNextElementFix();
                        }
                        break;
                    }
                    case "dataMember":	// field
                    {
                        if (reader.IsEmptyElement)
                        {	// No serialized value, must be default one.
                            SerializationUtilities.Skip(reader);  // Skip this tag.
                        }
                        else
                        {
                            DataMemberDescriptor dataMemberDescriptor = new DataMemberDescriptor();
                            dataMemberDescriptor.DeserializeFromXml(reader);
                            element.DataMember = dataMemberDescriptor;

                            SerializationUtilities.SkipToNextElement(reader);
                            reader.SkipToNextElementFix();
                        }
                        break;
                    }
                    case "propertyAccess":	// field
                    {
                        if (reader.IsEmptyElement)
                        {	// No serialized value, must be default one.
                            SerializationUtilities.Skip(reader);  // Skip this tag.
                        }
                        else
                        {
                            PropertyAccessModifiers modifiers = new PropertyAccessModifiers();
                            modifiers.DeserializeFromXml(reader, "propertyAccess");
                            element.PropertyAccess = modifiers;

                            SerializationUtilities.SkipToNextElement(reader);
                            reader.SkipToNextElementFix();
                        }
                        break;
                    }
                    default:
                        return;  // Don't know this element.
                }
            }
        }