Exemple #1
0
        private OrmIndexFields CreateOrmIndexFields(TestAttributeValuesType valuesType)
        {
            OrmIndexFields originalAttribute = new OrmIndexFields();
            bool           isValues1         = valuesType == TestAttributeValuesType.Values1;

            originalAttribute.IncludedFields.Add(
                new StringTreeNode
            {
                DisplayValue = isValues1 ? "Field1" : "RevertedField1",
                IconIndex    = isValues1 ? 1 : 2
            });

            originalAttribute.IncludedFields.Add(
                new StringTreeNode
            {
                DisplayValue = isValues1 ? "Field2" : "RevertedField2",
                IconIndex    = isValues1 ? 2 : 1
            });

            originalAttribute.KeyFields.Add(
                new StringTreeNode
            {
                DisplayValue = isValues1 ? "Field3" : "RevertedField3",
                IconIndex    = isValues1 ? 2 : 1
            });

            originalAttribute.KeyFields.Add(
                new StringTreeNode
            {
                DisplayValue = isValues1 ? "Field4" : "RevertedField4",
                IconIndex    = isValues1 ? 1 : 2
            });

            return(originalAttribute);
        }
Exemple #2
0
        private void TestSerializationForOrmIndexFields()
        {
            const string referentialXml =
                "<fields><keyFields><item value=\"Field3\" image=\"2\" order=\"0\" /><item value=\"Field4\" image=\"1\" order=\"1\" /></keyFields><includedFields><item value=\"Field1\" image=\"1\" order=\"0\" /><item value=\"Field2\" image=\"2\" order=\"1\" /></includedFields></fields>";

            OrmIndexFields originalAttribute = CreateOrmIndexFields(TestAttributeValuesType.Values1);

            string xml = originalAttribute.SerializeToString();

            Assert.IsTrue(Util.StringEqual(xml, referentialXml, true),
                          "Serialized xml form of 'OrmIndexFields' type differs from referential xml.");

            OrmIndexFields clonedAttribute = null;

            Action cloneAttribute = () => clonedAttribute = (OrmIndexFields)originalAttribute.Clone();

            cloneAttribute();
            Assert.IsTrue(originalAttribute.EqualsTo(clonedAttribute));

            Action testClonedNotEquals = () => Assert.IsFalse(originalAttribute.EqualsTo(clonedAttribute));

            cloneAttribute();
            clonedAttribute.KeyFields.RemoveAt(0);
            testClonedNotEquals();

            for (int i = 0; i < 2; i++)
            {
                cloneAttribute();
                clonedAttribute.KeyFields[i].DisplayValue = Guid.NewGuid().ToString();
                testClonedNotEquals();

                cloneAttribute();
                clonedAttribute.KeyFields[i].IconIndex = 10;
                testClonedNotEquals();
            }

            cloneAttribute();
            clonedAttribute.IncludedFields.RemoveAt(0);
            testClonedNotEquals();

            for (int i = 0; i < 2; i++)
            {
                cloneAttribute();
                clonedAttribute.IncludedFields[i].DisplayValue = Guid.NewGuid().ToString();
                testClonedNotEquals();

                cloneAttribute();
                clonedAttribute.IncludedFields[i].IconIndex = 99;
                testClonedNotEquals();
            }
        }
Exemple #3
0
        private static void CustomReadPropertiesFromElements(SerializationContext serializationContext, EntityIndex element, XmlReader reader)
        {
            while (!serializationContext.Result.Failed && !reader.EOF && reader.NodeType == System.Xml.XmlNodeType.Element)
            {
                switch (reader.LocalName)
                {
                case "unique":
                    if (reader.IsEmptyElement)
                    {                                        // No serialized value, must be default one.
                        SerializationUtilities.Skip(reader); // Skip this tag.
                    }
                    else
                    {
                        Defaultable <bool> unique = new Defaultable <bool>();
                        unique.DeserializeFromXml(reader);
                        element.Unique = unique;

                        SerializationUtilities.SkipToNextElement(reader);
                        reader.SkipToNextElementFix();
                    }
                    break;

                case "fillFactor":
                    if (reader.IsEmptyElement)
                    {                                        // No serialized value, must be default one.
                        SerializationUtilities.Skip(reader); // Skip this tag.
                    }
                    else
                    {
                        Defaultable <double> fillfactor = new Defaultable <double>();
                        fillfactor.DeserializeFromXml(reader);
                        element.FillFactor = fillfactor;

                        SerializationUtilities.SkipToNextElement(reader);
                        reader.SkipToNextElementFix();
                    }
                    break;

                case "indexName":
                    if (reader.IsEmptyElement)
                    {                                        // No serialized value, must be default one.
                        SerializationUtilities.Skip(reader); // Skip this tag.
                    }
                    else
                    {
                        Defaultable <string> indexName = new Defaultable <string>();
                        indexName.DeserializeFromXml(reader);
                        element.IndexName = indexName;

                        SerializationUtilities.SkipToNextElement(reader);
                        reader.SkipToNextElementFix();
                    }
                    break;

                case "fields":
                    if (reader.IsEmptyElement)
                    {                                        // No serialized value, must be default one.
                        SerializationUtilities.Skip(reader); // Skip this tag.
                    }
                    else
                    {
                        OrmIndexFields fields = new OrmIndexFields();
                        fields.DeserializeFromXml(reader);
                        element.Fields = fields;

                        SerializationUtilities.SkipToNextElement(reader);
                        reader.SkipToNextElementFix();
                    }
                    break;

                default:
                    return;      // Don't know this element.
                }
            }
        }