From b4d5451b11c8910af074dd080c0911c24a39f039 Mon Sep 17 00:00:00 2001 From: "Chen, Peter" Date: Wed, 24 May 2017 22:36:29 +1000 Subject: [PATCH 1/3] Added extra logic to search the hostname and description of the connection instead of just the name. Also added associated tests --- mRemoteNGTests/Tree/NodeSearcherTests.cs | 49 +++++++++++++++++------- mRemoteV1/Tree/NodeSearcher.cs | 4 +- 2 files changed, 38 insertions(+), 15 deletions(-) diff --git a/mRemoteNGTests/Tree/NodeSearcherTests.cs b/mRemoteNGTests/Tree/NodeSearcherTests.cs index dbf6cf4b6..da114d135 100644 --- a/mRemoteNGTests/Tree/NodeSearcherTests.cs +++ b/mRemoteNGTests/Tree/NodeSearcherTests.cs @@ -33,6 +33,27 @@ namespace mRemoteNGTests.Tree Assert.That(matches.ToList(), Is.EquivalentTo(new[] {_folder1, _folder2})); } + [Test] + public void SearchByDescriptionReturnsAllExpectedMatches() + { + var matches = _nodeSearcher.SearchByName("description"); + Assert.That(matches.ToList(), Is.EquivalentTo(new[] { _folder1, _folder2, _con1, _con2, _con3, _con4, _con5 })); + } + + [Test] + public void SearchByDescription1ReturnsAllExpectedMatches() + { + var matches = _nodeSearcher.SearchByName("description1"); + Assert.That(matches.ToList(), Is.EquivalentTo(new[] { _folder1 })); + } + + [Test] + public void SearchByHostnameReturnsAllExpectedMatches() + { + var matches = _nodeSearcher.SearchByName("hostname1"); + Assert.That(matches.ToList(), Is.EquivalentTo(new[] { _folder1 })); + } + [Test] public void NextMatchAdvancesTheIterator() { @@ -64,24 +85,24 @@ namespace mRemoteNGTests.Tree /* * Tree: * Root - * |--- folder1 - * | |--- con1 - * | L--- con2 - * |--- folder2 - * | |--- con3 - * | L--- con4 - * L--- con5 + * |--- folder1 (description1, hostname1) + * | |--- con1 (description2, hostname2) + * | L--- con2 (description3, hostname3) + * |--- folder2 (description4, hostname4) + * | |--- con3 (description5, hostname5) + * | L--- con4 (description6, hostname6) + * L--- con5 (description7, hostname7) * */ var connectionTreeModel = new ConnectionTreeModel(); var root = new RootNodeInfo(RootNodeType.Connection); - _folder1 = new ContainerInfo { Name = "folder1"}; - _con1 = new ConnectionInfo { Name = "con1"}; - _con2 = new ConnectionInfo { Name = "con2"}; - _folder2 = new ContainerInfo { Name = "folder2" }; - _con3 = new ConnectionInfo { Name = "con3" }; - _con4 = new ConnectionInfo { Name = "con4" }; - _con5 = new ConnectionInfo { Name = "con5" }; + _folder1 = new ContainerInfo { Name = "folder1", Description = "description1", Hostname = "hostname1" }; + _con1 = new ConnectionInfo { Name = "con1", Description="description2", Hostname="hostname2" }; + _con2 = new ConnectionInfo { Name = "con2", Description="description3", Hostname="hostname3" }; + _folder2 = new ContainerInfo { Name = "folder2", Description="description4", Hostname="hostname4" }; + _con3 = new ConnectionInfo { Name = "con3", Description="description5", Hostname="hostname5" }; + _con4 = new ConnectionInfo { Name = "con4", Description="description6", Hostname="hostname6" }; + _con5 = new ConnectionInfo { Name = "con5", Description="description7", Hostname="hostname7" }; connectionTreeModel.AddRootNode(root); root.AddChildRange(new [] { _folder1, _folder2, _con5 }); diff --git a/mRemoteV1/Tree/NodeSearcher.cs b/mRemoteV1/Tree/NodeSearcher.cs index f46d5abd7..4e8df6a3d 100644 --- a/mRemoteV1/Tree/NodeSearcher.cs +++ b/mRemoteV1/Tree/NodeSearcher.cs @@ -25,7 +25,9 @@ namespace mRemoteNG.Tree var nodes = (List)_connectionTreeModel.GetRecursiveChildList(); foreach (var node in nodes) { - if (node.Name.ToLowerInvariant().Contains(searchText.ToLowerInvariant())) + if (node.Name.ToLowerInvariant().Contains(searchText.ToLowerInvariant()) || + node.Description.ToLowerInvariant().Contains(searchText.ToLowerInvariant()) || + node.Hostname.ToLowerInvariant().Contains(searchText.ToLowerInvariant())) Matches.Add(node); } if (Matches.Count > 0) From 0b065b16b176a7237484ca442010286d5109dbe3 Mon Sep 17 00:00:00 2001 From: "Chen, Peter" Date: Wed, 24 May 2017 22:42:39 +1000 Subject: [PATCH 2/3] Fixed incorrect test name --- mRemoteNGTests/Tree/NodeSearcherTests.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mRemoteNGTests/Tree/NodeSearcherTests.cs b/mRemoteNGTests/Tree/NodeSearcherTests.cs index da114d135..692aa2b76 100644 --- a/mRemoteNGTests/Tree/NodeSearcherTests.cs +++ b/mRemoteNGTests/Tree/NodeSearcherTests.cs @@ -48,7 +48,7 @@ namespace mRemoteNGTests.Tree } [Test] - public void SearchByHostnameReturnsAllExpectedMatches() + public void SearchByHostname1ReturnsAllExpectedMatches() { var matches = _nodeSearcher.SearchByName("hostname1"); Assert.That(matches.ToList(), Is.EquivalentTo(new[] { _folder1 })); From 12f8e0fe71671b7f4aaf2aeb7b1720167721d718 Mon Sep 17 00:00:00 2001 From: "Chen, Peter" Date: Wed, 24 May 2017 22:47:35 +1000 Subject: [PATCH 3/3] Saved lowercase searchText to variable and used it for the comparison --- mRemoteV1/Tree/NodeSearcher.cs | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/mRemoteV1/Tree/NodeSearcher.cs b/mRemoteV1/Tree/NodeSearcher.cs index 4e8df6a3d..111ad88a2 100644 --- a/mRemoteV1/Tree/NodeSearcher.cs +++ b/mRemoteV1/Tree/NodeSearcher.cs @@ -23,11 +23,12 @@ namespace mRemoteNG.Tree ResetMatches(); if (searchText == "") return Matches; var nodes = (List)_connectionTreeModel.GetRecursiveChildList(); + var searchTextLower = searchText.ToLowerInvariant(); foreach (var node in nodes) { - if (node.Name.ToLowerInvariant().Contains(searchText.ToLowerInvariant()) || - node.Description.ToLowerInvariant().Contains(searchText.ToLowerInvariant()) || - node.Hostname.ToLowerInvariant().Contains(searchText.ToLowerInvariant())) + if (node.Name.ToLowerInvariant().Contains(searchTextLower) || + node.Description.ToLowerInvariant().Contains(searchTextLower) || + node.Hostname.ToLowerInvariant().Contains(searchTextLower)) Matches.Add(node); } if (Matches.Count > 0)