public void Ctor_Default()
        {
            var collection = new DirectoryControlCollection();

            Assert.Equal(0, collection.Count);
            Assert.Equal(0, collection.Capacity);
        }
        public void Remove_NullValue_ThrowsArgumentNullException()
        {
            var collection = new DirectoryControlCollection {
                new AsqRequestControl()
            };

            AssertExtensions.Throws <ArgumentNullException>("value", () => collection.Remove(null));
        }
Example #3
0
 protected override T GetControl <T>(DirectoryControlCollection controls)
 {
     if (RequestControlsToSearch == null)
     {
         return(base.GetControl <T>(controls));
     }
     return(RequestControlsToSearch.FirstOrDefault(c => c is T) as T);
 }
        public void Remove_InvalidValue_ThrowsArgumentException(object value, string paramName)
        {
            IList collection = new DirectoryControlCollection {
                new AsqRequestControl()
            };

            AssertExtensions.Throws <ArgumentException>(paramName, () => collection.Remove(value));
        }
        public void AddRange_NullObjectInValues_ThrowsArgumentException()
        {
            DirectoryControl[] controls = new DirectoryControl[] { new AsqRequestControl(), null, new AsqRequestControl() };
            var collection = new DirectoryControlCollection();

            AssertExtensions.Throws <ArgumentException>("controls", () => collection.AddRange(controls));
            Assert.Equal(0, collection.Count);
        }
Example #6
0
        protected virtual T GetControl <T>(DirectoryControlCollection controls) where T : class
        {
            if (controls == null || controls.Count == 0)
            {
                return(default(T));
            }

            return(controls.OfType <T>().FirstOrDefault());
        }
        public void AddRange_ValidControls_AddsToCollection()
        {
            DirectoryControl[] controls = new DirectoryControl[] { new AsqRequestControl(), new AsqRequestControl() };

            var collection = new DirectoryControlCollection();

            collection.AddRange(controls);

            Assert.Equal(controls, collection.Cast <DirectoryControl>());
        }
        public void Indexer_Set_GetReturnsExpected()
        {
            var control    = new AsqRequestControl("name");
            var collection = new DirectoryControlCollection {
                new AsqRequestControl()
            };

            collection[0] = control;
            Assert.Equal(control, collection[0]);
        }
        public void Remove_Valid_Success()
        {
            var control    = new AsqRequestControl("name");
            var collection = new DirectoryControlCollection {
                control
            };

            collection.Remove(control);
            Assert.Empty(collection);
        }
        public void Insert_ValidDirectoryAttribute_Success()
        {
            var control1   = new AsqRequestControl("name1");
            var control2   = new AsqRequestControl("name1");
            var collection = new DirectoryControlCollection();

            collection.Insert(0, control1);
            collection.Insert(1, control2);

            Assert.Equal(new DirectoryControl[] { control1, control2 }, collection.Cast <DirectoryControl>());
        }
        public void Add_ValidControl_AppendsToList()
        {
            var control1   = new AsqRequestControl("name1");
            var control2   = new AsqRequestControl("name2");
            var collection = new DirectoryControlCollection {
                control1, control2
            };

            Assert.Equal(2, collection.Count);
            Assert.Equal(new DirectoryControl[] { control1, control2 }, collection.Cast <DirectoryControl>());
        }
        public void IndexOf_Valid_ReturnsExpected()
        {
            var control    = new AsqRequestControl("name");
            var collection = new DirectoryControlCollection {
                control
            };

            Assert.Equal(0, collection.IndexOf(control));
            Assert.Equal(-1, collection.IndexOf(new AsqRequestControl()));
            Assert.Equal(-1, collection.IndexOf(null));
        }
        public void Contains_Valid_ReturnsExpected()
        {
            var control    = new AsqRequestControl("name");
            var collection = new DirectoryControlCollection {
                control
            };

            Assert.True(collection.Contains(control));
            Assert.False(collection.Contains(new AsqRequestControl()));
            Assert.False(collection.Contains(null));
        }
        public void CopyTo_MultipleTypes_Success()
        {
            DirectoryControl[] array = new DirectoryControl[3];
            var control = new AsqRequestControl("name");

            var collection = new DirectoryControlCollection {
                control
            };

            collection.CopyTo(array, 1);
            Assert.Equal(new DirectoryControl[] { null, control, null }, array);
        }
        public void Add_NullControl_ThrowsArgumentNullException()
        {
            var collection = new DirectoryControlCollection();

            AssertExtensions.Throws <ArgumentNullException>("control", () => collection.Add(null));
        }
        public void Indexer_SetNull_ThrowsArgumentException()
        {
            var collection = new DirectoryControlCollection();

            AssertExtensions.Throws <ArgumentNullException>("value", () => collection[0] = null);
        }
 public void AddRange(DirectoryControlCollection controlCollection)
 {
 }
        public DSNAME[] GetGroupMembersTransitive(
            DsServer dc,
            DSNAME name)
        {
            string baseDn = LdapUtility.ConvertUshortArrayToString(
                ((AddsDomain)dc.Domain).DomainNC.StringName
                );

            List <DSNAME> names = new List <DSNAME>();

            // primary groups
            uint pgId = 0;

            for (int i = 0; i < 4; ++i)
            {
                pgId <<= 8;
                pgId  += name.Sid.Data[name.SidLen - i - 1];
            }

            SearchResultEntryCollection results = null;
            DirectoryControlCollection  cc      = new DirectoryControlCollection();

            cc.Add(new SearchOptionsControl(SearchOption.DomainScope));
            ResultCode r = ControlledSearch(
                dc,
                baseDn,
                "(primaryGroupId=" + pgId.ToString() + ")",
                System.DirectoryServices.Protocols.SearchScope.Subtree,
                null,
                cc,
                out results);

            if (r == ResultCode.Success)
            {
                foreach (SearchResultEntry e in results)
                {
                    string obj = e.DistinguishedName;
                    names.Add(LdapUtility.CreateDSNameForObject(dc, obj));
                }
            }

            string[] members = LdapUtility.GetAttributeValuesString(
                dc,
                LdapUtility.ConvertUshortArrayToString(name.StringName),
                "member");

            if (members != null)
            {
                foreach (string m in members)
                {
                    names.Add(LdapUtility.CreateDSNameForObject(dc, m));
                }
            }

            if (names.Count > 0)
            {
                List <DSNAME> tn = new List <DSNAME>();
                foreach (DSNAME n in names)
                {
                    // Recursively find all members of the member.
                    DSNAME[] ns = GetGroupMembersTransitive(dc, n);
                    if (ns != null)
                    {
                        tn.AddRange(ns);
                    }
                }
                if (tn.Count > 0)
                {
                    names.AddRange(tn);
                }

                // Remove duplicates
                Comparison <DSNAME> cmp = new Comparison <DSNAME>(CompareDsNames);
                names.Sort(cmp);

                int i = 0;
                while (i < names.Count - 1)
                {
                    string na = LdapUtility.ConvertUshortArrayToString(names[i].StringName);
                    string nb = LdapUtility.ConvertUshortArrayToString(names[i + 1].StringName);
                    if (na == nb)
                    {
                        names.RemoveAt(i);
                    }
                    else
                    {
                        ++i;
                    }
                }
                return(names.ToArray());
            }

            return(null);
        }
	public void StartTransportLayerSecurity(DirectoryControlCollection controls) {}
        public void AddRange_NullControls_ThrowsArgumentNullException()
        {
            var collection = new DirectoryControlCollection();

            AssertExtensions.Throws <ArgumentNullException>("controls", () => collection.AddRange((DirectoryControl[])null));
        }
Example #21
0
 public void StartTransportLayerSecurity(DirectoryControlCollection controls)
 {
 }
        public void Insert_NullValue_ThrowsArgumentNullException()
        {
            var collection = new DirectoryControlCollection();

            AssertExtensions.Throws <ArgumentNullException>("value", () => collection.Insert(0, null));
        }
	public void AddRange(DirectoryControlCollection controlCollection) {}