From 82217478d97ff1ed16ee7aca7d00595875aabd19 Mon Sep 17 00:00:00 2001 From: David Sparer Date: Thu, 12 Jan 2017 13:31:29 -0700 Subject: [PATCH] made one of the methods for the connectioninitiator non-static (they should eventually all be non-static). This change was made to making testing easier (make connectioninitiator mockable) --- mRemoteV1/Connection/ConnectionInitiator.cs | 4 ++-- mRemoteV1/Connection/IConnectionInitiator.cs | 7 +++++++ mRemoteV1/Tools/ExternalTool.cs | 3 ++- mRemoteV1/Tools/Tools.Controls.cs | 6 ++++-- mRemoteV1/Tree/PreviousSessionOpener.cs | 5 ++++- mRemoteV1/UI/Forms/frmMain.cs | 6 ++++-- mRemoteV1/UI/Window/ConnectionTreeWindow.cs | 4 +++- mRemoteV1/UI/Window/ConnectionWindow.cs | 5 +++-- mRemoteV1/mRemoteV1.csproj | 1 + 9 files changed, 30 insertions(+), 11 deletions(-) create mode 100644 mRemoteV1/Connection/IConnectionInitiator.cs diff --git a/mRemoteV1/Connection/ConnectionInitiator.cs b/mRemoteV1/Connection/ConnectionInitiator.cs index 058f22de..af392bea 100644 --- a/mRemoteV1/Connection/ConnectionInitiator.cs +++ b/mRemoteV1/Connection/ConnectionInitiator.cs @@ -12,7 +12,7 @@ using TabPage = Crownwood.Magic.Controls.TabPage; namespace mRemoteNG.Connection { - public static class ConnectionInitiator + public class ConnectionInitiator : IConnectionInitiator { public static void OpenConnection(ContainerInfo containerInfo, ConnectionInfo.Force force = ConnectionInfo.Force.None) { @@ -33,7 +33,7 @@ namespace mRemoteNG.Connection } } - public static void OpenConnection(ConnectionInfo connectionInfo) + public void OpenConnection(ConnectionInfo connectionInfo) { try { diff --git a/mRemoteV1/Connection/IConnectionInitiator.cs b/mRemoteV1/Connection/IConnectionInitiator.cs new file mode 100644 index 00000000..99e8732f --- /dev/null +++ b/mRemoteV1/Connection/IConnectionInitiator.cs @@ -0,0 +1,7 @@ +namespace mRemoteNG.Connection +{ + public interface IConnectionInitiator + { + void OpenConnection(ConnectionInfo connectionInfo); + } +} \ No newline at end of file diff --git a/mRemoteV1/Tools/ExternalTool.cs b/mRemoteV1/Tools/ExternalTool.cs index 5002d6cc..8ddd0193 100644 --- a/mRemoteV1/Tools/ExternalTool.cs +++ b/mRemoteV1/Tools/ExternalTool.cs @@ -11,6 +11,7 @@ namespace mRemoteNG.Tools { public class ExternalTool { + private readonly IConnectionInitiator _connectionInitiator = new ConnectionInitiator(); #region Public Properties public string DisplayName { get; set; } public string FileName { get; set; } @@ -80,7 +81,7 @@ namespace mRemoteNG.Tools try { var newConnectionInfo = BuildConnectionInfoForIntegratedApp(); - ConnectionInitiator.OpenConnection(newConnectionInfo); + _connectionInitiator.OpenConnection(newConnectionInfo); } catch (Exception ex) { diff --git a/mRemoteV1/Tools/Tools.Controls.cs b/mRemoteV1/Tools/Tools.Controls.cs index 1e92b03a..8f451640 100644 --- a/mRemoteV1/Tools/Tools.Controls.cs +++ b/mRemoteV1/Tools/Tools.Controls.cs @@ -15,8 +15,10 @@ namespace mRemoteNG.Tools private NotifyIcon _nI; private ContextMenuStrip _cMen; private ToolStripMenuItem _cMenCons; + private readonly IConnectionInitiator _connectionInitiator = new ConnectionInitiator(); - public bool Disposed { get; set; } + + public bool Disposed { get; set; } public NotificationAreaIcon() { @@ -124,7 +126,7 @@ namespace mRemoteNG.Tools { ShowForm(); } - ConnectionInitiator.OpenConnection((ConnectionInfo)((Control)sender).Tag); + _connectionInitiator.OpenConnection((ConnectionInfo)((Control)sender).Tag); } private void cMenExit_Click(Object sender, EventArgs e) diff --git a/mRemoteV1/Tree/PreviousSessionOpener.cs b/mRemoteV1/Tree/PreviousSessionOpener.cs index 6d5170c2..8d2a3a46 100644 --- a/mRemoteV1/Tree/PreviousSessionOpener.cs +++ b/mRemoteV1/Tree/PreviousSessionOpener.cs @@ -8,6 +8,9 @@ namespace mRemoteNG.Tree { public class PreviousSessionOpener : IConnectionTreeDelegate { + private readonly IConnectionInitiator _connectionInitiator = new ConnectionInitiator(); + + public void Execute(ConnectionTree connectionTree) { if (!Settings.Default.OpenConsFromLastSession || Settings.Default.NoReconnect) return; @@ -15,7 +18,7 @@ namespace mRemoteNG.Tree var previouslyOpenedConnections = connectionInfoList.Where(item => item.PleaseConnect); foreach (var connectionInfo in previouslyOpenedConnections) { - ConnectionInitiator.OpenConnection(connectionInfo); + _connectionInitiator.OpenConnection(connectionInfo); } } } diff --git a/mRemoteV1/UI/Forms/frmMain.cs b/mRemoteV1/UI/Forms/frmMain.cs index d85be23e..7d008ca5 100644 --- a/mRemoteV1/UI/Forms/frmMain.cs +++ b/mRemoteV1/UI/Forms/frmMain.cs @@ -44,6 +44,8 @@ namespace mRemoteNG.UI.Forms private ConnectionInfo _selectedConnection; private SystemMenu _systemMenu; private ConnectionTreeWindow ConnectionTreeWindow { get; set; } + private readonly IConnectionInitiator _connectionInitiator = new ConnectionInitiator(); + @@ -936,14 +938,14 @@ namespace mRemoteNG.UI.Forms btnConnections.DropDownItems.AddRange(rootMenuItems); } - private static void ConnectionsMenuItem_MouseUp(object sender, MouseEventArgs e) + private void ConnectionsMenuItem_MouseUp(object sender, MouseEventArgs e) { if (e.Button != MouseButtons.Left) return; if (((ToolStripMenuItem) sender).Tag is ContainerInfo) return; var tag = ((ToolStripMenuItem)sender).Tag as ConnectionInfo; if (tag != null) { - ConnectionInitiator.OpenConnection(tag); + _connectionInitiator.OpenConnection(tag); } } #endregion diff --git a/mRemoteV1/UI/Window/ConnectionTreeWindow.cs b/mRemoteV1/UI/Window/ConnectionTreeWindow.cs index 1a2ae6e4..259eed7a 100644 --- a/mRemoteV1/UI/Window/ConnectionTreeWindow.cs +++ b/mRemoteV1/UI/Window/ConnectionTreeWindow.cs @@ -16,6 +16,8 @@ namespace mRemoteNG.UI.Window public partial class ConnectionTreeWindow { private readonly ConnectionContextMenu _contextMenu; + private readonly IConnectionInitiator _connectionInitiator = new ConnectionInitiator(); + public ConnectionInfo SelectedNode => olvConnections.SelectedNode; @@ -276,7 +278,7 @@ namespace mRemoteNG.UI.Window if (e.KeyCode == Keys.Enter) { e.Handled = true; - ConnectionInitiator.OpenConnection(SelectedNode); + _connectionInitiator.OpenConnection(SelectedNode); } else if (e.Control && e.KeyCode == Keys.F) { diff --git a/mRemoteV1/UI/Window/ConnectionWindow.cs b/mRemoteV1/UI/Window/ConnectionWindow.cs index 41972d41..ed367b81 100644 --- a/mRemoteV1/UI/Window/ConnectionWindow.cs +++ b/mRemoteV1/UI/Window/ConnectionWindow.cs @@ -27,7 +27,8 @@ namespace mRemoteNG.UI.Window public partial class ConnectionWindow : BaseWindow { public TabControl TabController; - + private readonly IConnectionInitiator _connectionInitiator = new ConnectionInitiator(); + #region Public Methods public ConnectionWindow(DockContent panel, string formText = "") @@ -335,7 +336,7 @@ namespace mRemoteNG.UI.Window if (modelAsContainer != null) ConnectionInitiator.OpenConnection(modelAsContainer); else if (modelAsConnection != null) - ConnectionInitiator.OpenConnection(modelAsConnection); + _connectionInitiator.OpenConnection(modelAsConnection); } } diff --git a/mRemoteV1/mRemoteV1.csproj b/mRemoteV1/mRemoteV1.csproj index 5c1f3aed..e93b5009 100644 --- a/mRemoteV1/mRemoteV1.csproj +++ b/mRemoteV1/mRemoteV1.csproj @@ -187,6 +187,7 @@ +