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
        public Schema Schema()
        {
            SchemaBuilder schemaBuilder = new SchemaBuilder(SafeType <Connector> .Get(this));
            ICollection <ConnectorAttributeInfo> connectorAttributeInfos = new List <ConnectorAttributeInfo>();

            connectorAttributeInfos.Add(ConnectorAttributeInfoBuilder.Build("User Logon Name"));
            schemaBuilder.DefineObjectClass(ObjectClass.ACCOUNT_NAME, connectorAttributeInfos);
            return(schemaBuilder.Build());
        }
Esempio n. 3
0
        public virtual Schema Schema()
        {
            if (null == _schema)
            {
                var builder = new SchemaBuilder(SafeType <Connector> .Get(this));
                // Account
                var accountInfoBuilder = new ObjectClassInfoBuilder();
                accountInfoBuilder.AddAttributeInfo(Name.INFO);
                accountInfoBuilder.AddAttributeInfo(OperationalAttributeInfos.PASSWORD);
                accountInfoBuilder.AddAttributeInfo(PredefinedAttributeInfos.GROUPS);
                accountInfoBuilder.AddAttributeInfo(ConnectorAttributeInfoBuilder.Build("firstName"));
                accountInfoBuilder.AddAttributeInfo(
                    ConnectorAttributeInfoBuilder.Define("lastName").SetRequired(true).Build());
                builder.DefineObjectClass(accountInfoBuilder.Build());

                // Group
                var groupInfoBuilder = new ObjectClassInfoBuilder();
                groupInfoBuilder.ObjectType = ObjectClass.GROUP_NAME;
                groupInfoBuilder.AddAttributeInfo(Name.INFO);
                groupInfoBuilder.AddAttributeInfo(PredefinedAttributeInfos.DESCRIPTION);
                groupInfoBuilder.AddAttributeInfo(
                    ConnectorAttributeInfoBuilder.Define("members")
                    .SetCreatable(false)
                    .SetUpdateable(false)
                    .SetMultiValued(true)
                    .Build());

                // Only the CRUD operations
                builder.DefineObjectClass(groupInfoBuilder.Build(), SafeType <SPIOperation> .Get <CreateOp>(),
                                          SafeType <SPIOperation> .ForRawType(typeof(SearchOp <>)), SafeType <SPIOperation> .Get <UpdateOp>(),
                                          SafeType <SPIOperation> .Get <DeleteOp>());

                // Operation Options
                builder.DefineOperationOption(OperationOptionInfoBuilder.BuildAttributesToGet(),
                                              SafeType <SPIOperation> .ForRawType(typeof(SearchOp <>)));

                // Support paged Search
                builder.DefineOperationOption(OperationOptionInfoBuilder.BuildPageSize(),
                                              SafeType <SPIOperation> .ForRawType(typeof(SearchOp <>)));
                builder.DefineOperationOption(OperationOptionInfoBuilder.BuildPagedResultsCookie(),
                                              SafeType <SPIOperation> .ForRawType(typeof(SearchOp <>)));

                // Support to execute operation with provided credentials
                builder.DefineOperationOption(OperationOptionInfoBuilder.BuildRunAsUser());
                builder.DefineOperationOption(OperationOptionInfoBuilder.BuildRunWithPassword());

                _schema = builder.Build();
            }
            return(_schema);
        }
        public Schema Schema()
        {
            SchemaBuilder builder = new SchemaBuilder(SafeType <Connector> .Get <TstConnector>());

            for (int i = 0; i < 2; i++)
            {
                ObjectClassInfoBuilder classBuilder = new ObjectClassInfoBuilder();
                classBuilder.ObjectType = ("class" + i);
                for (int j = 0; j < 200; j++)
                {
                    classBuilder.AddAttributeInfo(ConnectorAttributeInfoBuilder.Build("attributename" + j, typeof(String)));
                }
                builder.DefineObjectClass(classBuilder.Build());
            }
            return(builder.Build());
        }
        public void TestObjectClassInfo()
        {
            ConnectorAttributeInfoBuilder builder = new ConnectorAttributeInfoBuilder();

            builder.Name        = ("foo");
            builder.ValueType   = (typeof(String));
            builder.Required    = (true);
            builder.Readable    = (true);
            builder.Updateable  = (true);
            builder.MultiValued = (true);
            ObjectClassInfoBuilder obld = new ObjectClassInfoBuilder();

            obld.ObjectType  = ObjectClass.ACCOUNT_NAME;
            obld.IsContainer = true;
            obld.AddAttributeInfo(builder.Build());
            ObjectClassInfo v1 = obld.Build();
            ObjectClassInfo v2 = (ObjectClassInfo)CloneObject(v1);

            Assert.AreEqual(v1, v2);
            Assert.IsTrue(v2.IsContainer);
        }