public void Group_IterateGroups()
        {
            BasicGroup targetGroup = new BasicGroup(TestConstants.anID, TestConstants.aName);
            BasicGroup groupAA     = new BasicGroup("AA", "AA");
            BasicGroup groupBB     = new BasicGroup("BB", "BB");
            BasicGroup groupCC     = new BasicGroup("CC", "CC");

            List <string> expectedIDs = new List <string>()
            {
                "CC", "BB", "AA"
            };

            targetGroup.AddGroup(groupCC);
            targetGroup.AddGroup(groupBB);
            targetGroup.AddGroup(groupAA);

            List <string> actualIds = new List <string>();

            foreach (IGroup group in targetGroup.Groups)
            {
                actualIds.Add(group.ID);
            }

            Assert.AreEqual(expectedIDs.Count, actualIds.Count);
            for (int i = 0; i < expectedIDs.Count; i++)
            {
                Assert.AreEqual(expectedIDs[i], actualIds[i]);
            }
        }
        public void Group_AddGroup()
        {
            BasicGroup targetGroup = new BasicGroup(TestConstants.anID, TestConstants.aName);
            BasicGroup subgroup    = new BasicGroup("aa", "aa");

            targetGroup.AddGroup(subgroup);

            TestUtilities.checkForSingleItem(targetGroup.Groups, subgroup, "Groups");
        }
        public void Group_RemoveGroup_ByID()
        {
            BasicGroup targetGroup = new BasicGroup(TestConstants.anID, TestConstants.aName);
            BasicGroup subgroup    = new BasicGroup("aa", "aa");

            targetGroup.AddGroup(subgroup);
            targetGroup.RemoveGroup("aa");

            TestUtilities.checkEmpty(targetGroup.Groups, "Groups");
        }
        public void Group_AddGroup_Duplicate()
        {
            BasicGroup        targetGroup       = new BasicGroup(TestConstants.anID, TestConstants.aName);
            BasicGroup        subgroup          = new BasicGroup("aa", "aa");
            ArgumentException expectedException = null;

            targetGroup.AddGroup(subgroup);

            try
            {
                targetGroup.AddGroup(subgroup);
            }
            catch (ArgumentException e)
            {
                expectedException = e;
            }

            TestUtilities.checkException(expectedException);
            TestUtilities.checkForSingleItem(targetGroup.Groups, subgroup, "Groups");
        }
        public void Group_AddGroup_Null()
        {
            BasicGroup            targetGroup       = new BasicGroup(TestConstants.anID, TestConstants.aName);
            ArgumentNullException expectedException = null;

            try
            {
                targetGroup.AddGroup(null);
            }
            catch (ArgumentNullException e)
            {
                expectedException = e;
            }

            TestUtilities.checkException(expectedException, TestConstants.propGroup, TestConstants.paramGroup);
            TestUtilities.checkEmpty(targetGroup.Groups, "Groups");
        }