protected override void ProcessRecord()
        {
            var adView = activeDirectoryRepository.AddressGroupFromDomainControllersInRootDomain(AddressGroupName);
            // TODO: Sanity check, ex 0 members returned

            // This will throw an exception if the group does not exist - Is this Ok?
            var fwView = addressGroupSearchableRepository.GetSingle <GetSingleAddressGroupApiResponse>(
                AddressGroupName,
                ConfigTypes.Running).
                         Single();

            InflateAddressGroupMembers(fwView);

            if (adView.DeepCompare(fwView))
            {
                WriteVerbose("No Drift detected. Exiting");
                return;
            }

            UpdateAddresses(adView, fwView);
            // There is a case where only IP addresses of the member changed, but the membership set remains the same
            // in this case no reason to call UpdateGroup --- something TODO:
            UpdateGroup(adView, fwView);
            Commit();
        }
        public void AddressGroupFromDomainControllersInRootDomainTest()
        {
            var activeDirectoryRepository = new ActiveDirectoryRepository("NTDEV.CORP.MICROSOFT.COM", null);
            var group = activeDirectoryRepository.AddressGroupFromDomainControllersInRootDomain("NTDEVDCs");

            Assert.IsNotNull(group);
            Assert.AreEqual(group.Members.Count, group.MemberObjects.Count);
            foreach (var memberObject in group.MemberObjects)
            {
                Assert.IsTrue(group.Members.Contains(memberObject.Name));
                Assert.That(memberObject, Is.TypeOf <AddressObject>());
            }
        }
 protected override void ProcessRecord()
 {
     WriteObject(activeDirectoryRepository.AddressGroupFromDomainControllersInRootDomain(ForestName));
 }