public void TestAttributeInfo()
        {
            ConnectorAttributeInfoBuilder builder = new ConnectorAttributeInfoBuilder();

            builder.Name              = ("foo");
            builder.ValueType         = (typeof(String));
            builder.Required          = (true);
            builder.Readable          = (true);
            builder.Creatable         = (true);
            builder.Updateable        = (true);
            builder.MultiValued       = (true);
            builder.ReturnedByDefault = false;
            ConnectorAttributeInfo v1 = builder.Build();
            ConnectorAttributeInfo v2 = (ConnectorAttributeInfo)CloneObject(v1);

            Assert.AreEqual(v1, v2);
            Assert.AreEqual("foo", v2.Name);
            Assert.AreEqual(typeof(String), v2.ValueType);
            Assert.IsTrue(v2.IsMultiValued);
            Assert.IsTrue(v2.IsReadable);
            Assert.IsTrue(v2.IsRequired);
            Assert.IsTrue(v2.IsUpdateable);
            Assert.IsTrue(v2.IsCreatable);
            Assert.IsFalse(v2.IsReturnedByDefault);

            builder.InfoFlags = AllFlags();
            v1 = builder.Build();
            v2 = (ConnectorAttributeInfo)CloneObject(v1);
            Assert.AreEqual(v1, v2);
        }
Esempio n. 2
0
        /// <summary>
        /// Converts any value to a form that can be stored into connector attribute.
        /// </summary>
        /// <param name="value"></param>
        /// <param name="isMultivalued"></param>
        /// <returns></returns>
        public static ICollection <object> ConvertToSupportedForm(ConnectorAttributeInfo cai, object value)
        {
            IList <object> rv = new List <object>();

            if (cai.IsMultiValued && value is IEnumerable)
            {
                foreach (object v in (IEnumerable)value)
                {
                    if (v == null)
                    {
                        continue;
                    }
                    if (!IsSupported(cai, v))
                    {
                        rv.Add(v.ToString());
                    }
                    else
                    {
                        rv.Add(v);
                    }
                }
            }
            else
            {
                if (value != null && !IsSupported(cai, value))
                {
                    rv.Add(value.ToString());
                }
                else
                {
                    rv.Add(value);
                }
            }
            return(rv);
        }
Esempio n. 3
0
 private static bool IsSupported(ConnectorAttributeInfo cai, object value)
 {
     if (!FrameworkUtil.IsSupportedAttributeType(value.GetType()))
     {
         LOG.Debug("Unsupported attribute type ... calling ToString (Name: \'{0}\' Type: \'{1}\' String Value: \'{2}\'",
                   cai.Name, value.GetType(), value.ToString());
         return(false);
     }
     else
     {
         return(true);
     }
 }