예제 #1
0
 public static bool HasDependency(this IMember member,
                                  IMemberTypeDependency memberDependency, bool getBackwardsDependencies = false)
 {
     return(getBackwardsDependencies
         ? member.BackwardsDependencies.Contains(memberDependency)
         : member.Dependencies.Contains(memberDependency));
 }
 private static void AddDependencyIfMissing(IMember member, IMemberTypeDependency dependency)
 {
     if (!member.MemberDependencies.Contains(dependency))
     {
         member.MemberDependencies.Add(dependency);
     }
 }
예제 #3
0
        private static void DuplicateMemberDependencyReferencesAreEqual([NotNull] IMemberTypeDependency dependency,
                                                                        [NotNull] IMemberTypeDependency dependencyReferenceDuplicate)
        {
            dependency.RequiredNotNull();
            dependencyReferenceDuplicate.RequiredNotNull();

            Assert.True(dependency.Equals(dependencyReferenceDuplicate));
        }
예제 #4
0
        private static void DuplicateMemberDependenciesAreEqual([NotNull] IMemberTypeDependency originMember,
                                                                [NotNull] object duplicateMember)
        {
            originMember.RequiredNotNull();
            duplicateMember.RequiredNotNull();

            Assert.Equal(originMember, duplicateMember);
        }
예제 #5
0
        private static void DuplicateMemberDependencyObjectReferencesAreEqual(
            [NotNull] IMemberTypeDependency memberDependency,
            object objectReferenceDuplicate)
        {
            memberDependency.RequiredNotNull();
            objectReferenceDuplicate.RequiredNotNull();

            Assert.Equal(memberDependency, objectReferenceDuplicate);
        }
예제 #6
0
        private static void MemberDependencyHasConsistentHashCode([NotNull] IMemberTypeDependency memberDependency,
                                                                  [NotNull] object duplicateMemberDependency)
        {
            memberDependency.RequiredNotNull();
            duplicateMemberDependency.RequiredNotNull();

            var hash          = memberDependency.GetHashCode();
            var duplicateHash = duplicateMemberDependency.GetHashCode();

            Assert.Equal(hash, duplicateHash);
        }
예제 #7
0
        public void MemberTypeDependencyEquivalencyTests(IMemberTypeDependency memberTypeDependency,
                                                         object duplicateMemberTypeDependency, IMemberTypeDependency dependencyReferenceDuplicate,
                                                         [CanBeNull] object objectReferenceDuplicate)
        {
            if (memberTypeDependency == null || duplicateMemberTypeDependency == null ||
                dependencyReferenceDuplicate == null)
            {
                return;
            }

            DuplicateMemberDependenciesAreEqual(memberTypeDependency, duplicateMemberTypeDependency);
            DuplicateMemberDependencyObjectReferencesAreEqual(memberTypeDependency, objectReferenceDuplicate);
            DuplicateMemberDependencyReferencesAreEqual(memberTypeDependency, dependencyReferenceDuplicate);
            MemberDependencyDoesNotEqualNull(memberTypeDependency);
            MemberDependencyHasConsistentHashCode(memberTypeDependency, duplicateMemberTypeDependency);
        }
예제 #8
0
        private static void MemberDependencyDoesNotEqualNull([NotNull] IMemberTypeDependency memberDependency)
        {
            memberDependency.RequiredNotNull();

            Assert.False(memberDependency.Equals(null));
        }