Example #1
0
        public void Can_Add_Update_ModifyMembers_Group()
        {
            var members = _context.Query <IntegrationUserTest>().Select(u => u.DistinguishedName).ToList();

            members.Count.Should().Be.GreaterThan(0);
            var group = new IntegrationGroupTest
            {
                Member = new Collection <string>(members.GetRange(0, members.Count - 1))
            };

            group.SetDistinguishedName("TestGroup");

            var added = _context.AddAndGet(group);

            var addedQueried = _context.Query <IntegrationGroupTest>()
                               .Where(c => c.DistinguishedName == added.DistinguishedName)
                               .Select(c => c)
                               .Single();

            added.OriginalValues["CommonName"].Should().Be.EqualTo("TestGroup");
            added.OriginalValues["Member"].As <Collection <string> >().Should().Have.Count.EqualTo(members.Count - 1);
            added.OriginalValues["distinguishedname"].Should().Be.EqualTo(added.DistinguishedName);

            added.OriginalValues["CommonName"].Should().Be.EqualTo(addedQueried.OriginalValues["CommonName"]);
            added.OriginalValues["Member"].As <Collection <string> >()
            .Should().Have.SameSequenceAs(addedQueried.OriginalValues["Member"].As <Collection <string> >());
            added.OriginalValues["distinguishedname"].Should()
            .Be.EqualTo(addedQueried.OriginalValues["distinguishedname"]);

            foreach (var member in members.GetRange(0, members.Count - 1))
            {
                added.Member.Should().Contain(member);
            }

            int removedIndex = members.IndexOf(added.Member[0]);

            added.Member.Should().Not.Contain(members.Last());
            added.Member.RemoveAt(0);
            added.Member.Add(members.Last());

            var updated = _context.UpdateAndGet(added);

            updated.Should().Not.Be.EqualTo(added);

            updated.Member.Count.Should().Be.EqualTo(members.Count - 1);
            updated.Member.Should().Not.Contain(members[removedIndex]);
            updated.Member.Should().Contain(members.Last());

            updated.OriginalValues["CommonName"].Should().Be.EqualTo("TestGroup");
            updated.OriginalValues["distinguishedname"].Should().Be.EqualTo(added.DistinguishedName);

            updated.OriginalValues["CommonName"].Should().Be.EqualTo(addedQueried.OriginalValues["CommonName"]);
            updated.OriginalValues["Member"].As <Collection <string> >()
            .Should().Have.SameSequenceAs(updated.Member);
            updated.OriginalValues["distinguishedname"].Should()
            .Be.EqualTo(addedQueried.OriginalValues["distinguishedname"]);

            _context.Delete(updated.DistinguishedName);
        }
Example #2
0
        public void Can_Modify_Individual_Members_Group()
        {
            var members = _context.Query <IntegrationUserTest>().Select(u => u.DistinguishedName).ToList();

            members.Count.Should().Be.GreaterThan(2);
            var group = new IntegrationGroupTest
            {
                Member = new Collection <string>(members.Skip(1).ToArray())
            };

            group.SetDistinguishedName("TestGroup");

            try
            {
                var added = _context.AddAndGet(group);

                added.Member.Should().Not.Contain(members.First()).And.Have.Count.EqualTo(members.Count - 1);

                _context.AddAttribute(group.DistinguishedName, "member", members.First());

                added = _context.GetByDN <IntegrationGroupTest>(group.DistinguishedName);

                added.Member.Should().Contain(members.First()).And.Have.Count.EqualTo(members.Count);

                _context.DeleteAttribute(group.DistinguishedName, "member", members.First());

                added = _context.GetByDN <IntegrationGroupTest>(group.DistinguishedName);

                added.Member.Should().Not.Contain(members.First()).And.Have.Count.EqualTo(members.Count - 1);
            }
            finally
            {
                try
                {
                    _context.Delete(group.DistinguishedName);
                }
                finally
                {
                }
            }
        }