Пример #1
0
        public void Constructor_NameWithSignatureIsSet(string name, DeclarationType type = DeclarationType.Member)
        {
            var declarations = CodeExplorerTestSetup.TestProjectOneDeclarations.TestMemberDeclarations(name, out var memberDeclaration, type);
            var member       = new CodeExplorerMemberViewModel(null, memberDeclaration, ref declarations);

            Assert.IsFalse(string.IsNullOrEmpty(member.NameWithSignature));
        }
Пример #2
0
        public void Constructor_SetsName_Member(string name)
        {
            var declarations = CodeExplorerTestSetup.TestProjectOneDeclarations.TestMemberDeclarations(name, out var memberDeclaration);
            var member       = new CodeExplorerMemberViewModel(null, memberDeclaration, ref declarations);

            Assert.AreEqual(name, member.Name);
        }
Пример #3
0
        public void Constructor_SetsName_Property(string name, DeclarationType type, string suffix)
        {
            var declarations = CodeExplorerTestSetup.TestProjectOneDeclarations.TestMemberDeclarations(name, out var memberDeclaration, type);
            var member       = new CodeExplorerMemberViewModel(null, memberDeclaration, ref declarations);

            Assert.AreEqual($"{name} {suffix}", member.Name);
        }
Пример #4
0
        public void Constructor_SetsDeclaration(string name, DeclarationType type = DeclarationType.Member)
        {
            var declarations = CodeExplorerTestSetup.TestProjectOneDeclarations.TestMemberDeclarations(name, out var memberDeclaration, type);
            var member       = new CodeExplorerMemberViewModel(null, memberDeclaration, ref declarations);

            Assert.AreSame(memberDeclaration, member.Declaration);
        }
Пример #5
0
        public void Synchronize_RemovesSubMember(string removed)
        {
            var memberDeclaration = CodeExplorerTestSetup.TestProjectOneDeclarations
                                    .Single(declaration => declaration.IdentifierName.Equals(removed)).ParentDeclaration;

            var declarations         = CodeExplorerTestSetup.TestProjectOneDeclarations.TestMemberDeclarations(memberDeclaration.IdentifierName, out _).ToList();
            var subMemberDeclaration = declarations.Single(declaration => declaration.IdentifierName.Equals(removed));

            var updates = declarations.Except(new List <Declaration> {
                subMemberDeclaration
            }).ToList();

            var member = new CodeExplorerMemberViewModel(null, memberDeclaration, ref declarations);

            var expected = updates.Select(declaration => declaration.QualifiedName.ToString())
                           .OrderBy(_ => _)
                           .ToList();

            member.Synchronize(ref updates);

            var actual = member.GetAllChildDeclarations()
                         .Select(declaration => declaration.QualifiedName.ToString())
                         .OrderBy(_ => _);

            Assert.IsTrue(expected.SequenceEqual(actual));
        }
Пример #6
0
        public void Synchronize_ClearsPassedDeclarationList_NoChanges(string name, DeclarationType type = DeclarationType.Member)
        {
            var declarations = CodeExplorerTestSetup.TestProjectOneDeclarations.TestMemberDeclarations(name, out var memberDeclaration, type);
            var member       = new CodeExplorerMemberViewModel(null, memberDeclaration, ref declarations);

            var updates = CodeExplorerTestSetup.TestProjectOneDeclarations.TestMemberDeclarations(name, out _, type);

            member.Synchronize(ref updates);

            Assert.AreEqual(0, updates.Count);
        }
Пример #7
0
        public void SortComparerIsCorrectSortOrderType(CodeExplorerSortOrder order, Type comparerType)
        {
            var declarations = CodeExplorerTestSetup.TestProjectOneDeclarations.TestMemberDeclarations(CodeExplorerTestCode.TestSubName, out var memberDeclaration);
            var member       = new CodeExplorerMemberViewModel(null, memberDeclaration, ref declarations)
            {
                SortOrder = order
            };


            Assert.AreEqual(comparerType, member.SortComparer.GetType());
        }
Пример #8
0
        public void UnfilteredStateIsRestored(string name)
        {
            var declarations = CodeExplorerTestSetup.TestProjectOneDeclarations.TestMemberDeclarations(name, out var memberDeclaration);

            var member    = new CodeExplorerMemberViewModel(null, memberDeclaration, ref declarations);
            var childName = member.Children.First().Name;

            member.IsExpanded = false;
            member.Filter     = childName;
            Assert.IsTrue(member.IsExpanded);

            member.Filter = string.Empty;
            Assert.IsFalse(member.IsExpanded);
        }
Пример #9
0
        public void Synchronize_DoesNotAlterDeclarationList_DifferentComponent(string name, string other, DeclarationType type = DeclarationType.Member)
        {
            var declarations = CodeExplorerTestSetup.TestProjectOneDeclarations.TestMemberDeclarations(name, out var memberDeclaration, type);
            var member       = new CodeExplorerMemberViewModel(null, memberDeclaration, ref declarations);

            var updates = CodeExplorerTestSetup.TestProjectOneDeclarations.TestMemberDeclarations(other, out _);

            member.Synchronize(ref updates);

            var expected = CodeExplorerTestSetup.TestProjectOneDeclarations.TestMemberDeclarations(other, out _)
                           .Select(declaration => declaration.QualifiedName.ToString()).OrderBy(_ => _);
            var actual = updates.Select(declaration => declaration.QualifiedName.ToString()).OrderBy(_ => _);

            Assert.IsTrue(expected.SequenceEqual(actual));
        }
Пример #10
0
        public void Constructor_PlacesAllTrackedDeclarations(string name, DeclarationType type = DeclarationType.Member)
        {
            var declarations = CodeExplorerTestSetup.TestProjectOneDeclarations.TestMemberDeclarations(name, out var memberDeclaration, type);
            var member       = new CodeExplorerMemberViewModel(null, memberDeclaration, ref declarations);

            var expected = CodeExplorerTestSetup.TestProjectOneDeclarations.TestMemberDeclarations(name, out _, type)
                           .Select(declaration => declaration.QualifiedName.ToString())
                           .OrderBy(_ => _);

            var actual = member.GetAllChildDeclarations()
                         .Select(declaration => declaration.QualifiedName.ToString())
                         .OrderBy(_ => _);

            Assert.IsTrue(expected.SequenceEqual(actual));
        }
Пример #11
0
        public void Synchronize_SetsDeclarationNull_NoDeclarationsForComponent(string name, DeclarationType type = DeclarationType.Member)
        {
            var declarations = CodeExplorerTestSetup.TestProjectOneDeclarations.TestMemberDeclarations(name, out var memberDeclaration, type);
            var member       = new CodeExplorerMemberViewModel(null, memberDeclaration, ref declarations);

            if (member.Declaration is null)
            {
                Assert.Inconclusive("Project declaration is null. Fix test setup and see why no other tests failed.");
            }

            var updates = new List <Declaration>();

            member.Synchronize(ref updates);

            Assert.IsNull(member.Declaration);
        }
Пример #12
0
        public void FilteredIsFalseIfChildMatches(string name)
        {
            var declarations = CodeExplorerTestSetup.TestProjectOneDeclarations.TestMemberDeclarations(name, out var memberDeclaration);

            var member    = new CodeExplorerMemberViewModel(null, memberDeclaration, ref declarations);
            var childName = member.Children.First().Name;

            for (var characters = 1; characters <= childName.Length; characters++)
            {
                member.Filter = childName.Substring(0, characters);
                Assert.IsFalse(member.Filtered);
            }

            for (var position = childName.Length - 2; position > 0; position--)
            {
                member.Filter = childName.Substring(position);
                Assert.IsFalse(member.Filtered);
            }
        }
Пример #13
0
        public void FilteredIsTrueForCharactersNotInName(string name)
        {
            const string testCharacters = "abcdefghijklmnopqrstuwxyz";

            var declarations = CodeExplorerTestSetup.TestProjectOneDeclarations.TestMemberDeclarations(name, out var memberDeclaration);
            var testing      = new List <Declaration> {
                memberDeclaration
            };

            var member = new CodeExplorerMemberViewModel(null, memberDeclaration, ref testing);

            var nonMatching = testCharacters.ToCharArray().Except(name.ToLowerInvariant().ToCharArray());

            foreach (var character in nonMatching.Select(letter => letter.ToString()))
            {
                member.Filter = character;
                Assert.IsTrue(member.Filtered);
            }
        }
Пример #14
0
        public void FilteredIsFalseForSubsetsOfName(string name)
        {
            var declarations = CodeExplorerTestSetup.TestProjectOneDeclarations.TestMemberDeclarations(name, out var memberDeclaration);
            var testing      = new List <Declaration> {
                memberDeclaration
            };

            var member = new CodeExplorerMemberViewModel(null, memberDeclaration, ref testing);

            for (var characters = 1; characters <= name.Length; characters++)
            {
                member.Filter = name.Substring(0, characters);
                Assert.IsFalse(member.Filtered);
            }

            for (var position = name.Length - 2; position > 0; position--)
            {
                member.Filter = name.Substring(position);
                Assert.IsFalse(member.Filtered);
            }
        }