// PUBLIC METHODS ///////////////////////////////////////////////////
        #region Assert Methods
        public static void Equal(IServiceModel expected, IServiceModel actual)
        {
            if (expected == null)
            {
                Assert.Null(actual);
                return;
            }
            Assert.NotNull(actual);

            ComplexTypeAssert.Equal(expected.ComplexTypes, actual.ComplexTypes);
            ResourceTypeAssert.Equal(expected.ResourceTypes, actual.ResourceTypes);
        }
        public static void Equal(IEnumerable <IResourceType> expected, IEnumerable <IResourceType> actual)
        {
            if (expected == null)
            {
                Assert.Null(actual);
                return;
            }
            Assert.NotNull(actual);

            var expectedList = expected.SafeToList();
            var actualList   = actual.SafeToList();

            Assert.Equal(expectedList.Count, actualList.Count);

            var count = expectedList.Count;

            for (var i = 0; i < count; ++i)
            {
                var expectedItem = expectedList[i];
                var actualItem   = actualList[i];
                ResourceTypeAssert.Equal(expectedItem, actualItem);
            }
        }