diff --git a/Rubberduck.Main/ComClientLibrary/Abstract/UnitTesting/IFakesProvider.cs b/Rubberduck.Main/ComClientLibrary/Abstract/UnitTesting/IFakesProvider.cs
index 83393cb3c6..f76e1d6180 100644
--- a/Rubberduck.Main/ComClientLibrary/Abstract/UnitTesting/IFakesProvider.cs
+++ b/Rubberduck.Main/ComClientLibrary/Abstract/UnitTesting/IFakesProvider.cs
@@ -135,5 +135,10 @@ public interface IFakesProvider
[DispId(31)]
[Description("Configures VBA.FileSystem.FileCopy calls.")]
IStub FileCopy { get; }
+
+
+ [DispId(255)]
+ [Description("Gets an interface exposing the parameter names for all parameterized fakes.")]
+ IParams Params { get; }
}
}
diff --git a/Rubberduck.Main/ComClientLibrary/Abstract/UnitTesting/IParams.cs b/Rubberduck.Main/ComClientLibrary/Abstract/UnitTesting/IParams.cs
new file mode 100644
index 0000000000..5f665cb89d
--- /dev/null
+++ b/Rubberduck.Main/ComClientLibrary/Abstract/UnitTesting/IParams.cs
@@ -0,0 +1,107 @@
+using System.ComponentModel;
+using System.Runtime.InteropServices;
+using Rubberduck.Resources.Registration;
+
+// ReSharper disable InconsistentNaming
+// The parameters on RD's public interfaces are following VBA conventions not C# conventions to stop the
+// obnoxious "Can I haz all identifiers with the same casing" behavior of the VBE.
+
+namespace Rubberduck.UnitTesting
+{
+ [
+ ComVisible(true),
+ Guid(RubberduckGuid.IParamsGuid),
+ InterfaceType(ComInterfaceType.InterfaceIsDual),
+ EditorBrowsable(EditorBrowsableState.Always)
+ ]
+ public interface IParams
+ {
+ [DispId(1)]
+ [Description("Gets an interface exposing the parameter names for the 'VBA.Interaction.MsgBox' function.")]
+ IMsgBoxParams MsgBox { get; }
+
+ [DispId(2)]
+ [Description("Gets an interface exposing the parameter names for the 'VBA.Interaction.InputBox' function.")]
+ IInputBoxParams InputBox { get; }
+
+ [DispId(3)]
+ [Description("Gets an interface exposing the parameter names for the 'VBA.Interaction.Environ' function.")]
+ IEnvironParams Environ { get; }
+
+ [DispId(4)]
+ [Description("Gets an interface exposing the parameter names for the 'VBA.Interaction.Shell' function.")]
+ IShellParams Shell { get; }
+
+ [DispId(5)]
+ [Description("Gets an interface exposing the parameter names for the 'VBA.Interaction.SendKeys' function.")]
+ ISendKeysParams SendKeys { get; }
+
+ [DispId(6)]
+ [Description("Gets an interface exposing the parameter names for the 'VBA.FileSystem.Kill' function.")]
+ IKillParams Kill { get; }
+
+ [DispId(7)]
+ [Description("Gets an interface exposing the parameter names for the 'VBA.FileSystem.FileCopy' statement.")]
+ IFileCopyParams FileCopy { get; }
+
+ [DispId(8)]
+ [Description("Gets an interface exposing the parameter names for the 'VBA.FileSystem.FreeFile' function.")]
+ IFreeFileParams FreeFile { get; }
+
+ [DispId(9)]
+ [Description("Gets an interface exposing the parameter names for the 'VBA.FileSystem.GetAttr' function.")]
+ IGetAttrParams GetAttr { get; }
+
+ [DispId(10)]
+ [Description("Gets an interface exposing the parameter names for the 'VBA.FileSystem.SetAttr' statement.")]
+ ISetAttrParams SetAttr { get; }
+
+ [DispId(11)]
+ [Description("Gets an interface exposing the parameter names for the 'VBA.FileSystem.FileLen' function.")]
+ IFileLenParams FileLen { get; }
+
+ [DispId(12)]
+ [Description("Gets an interface exposing the parameter names for the 'VBA.FileSystem.FileDateTime' function.")]
+ IFileDateTimeParams FileDateTime { get; }
+
+ [DispId(13)]
+ [Description("Gets an interface exposing the parameter names for the 'VBA.FileSystem.Dir' function.")]
+ IDirParams Dir { get; }
+
+ [DispId(14)]
+ [Description("Gets an interface exposing the parameter names for the 'VBA.FileSystem.CurDir' function.")]
+ ICurDirParams CurDir { get; }
+
+ [DispId(15)]
+ [Description("Gets an interface exposing the parameter names for the 'VBA.FileSystem.ChDir' statement.")]
+ IChDirParams ChDir { get; }
+
+ [DispId(16)]
+ [Description("Gets an interface exposing the parameter names for the 'VBA.FileSystem.ChDrive' statement.")]
+ IChDriveParams ChDrive { get; }
+
+ [DispId(17)]
+ [Description("Gets an interface exposing the parameter names for the 'VBA.FileSystem.MkDir' statement.")]
+ IMkDirParams MkDir { get; }
+
+ [DispId(18)]
+ [Description("Gets an interface exposing the parameter names for the 'VBA.FileSystem.RmDir' statement.")]
+ IRmDirParams RmDir { get; }
+
+ [DispId(19)]
+ [Description("Gets an interface exposing the parameter names for the 'VBA.Interaction.SaveSetting' statement.")]
+ ISaveSettingParams SaveSetting { get; }
+
+ [DispId(20)]
+ [Description("Gets an interface exposing the parameter names for the 'VBA.Interaction.DeleteSetting' statement.")]
+ IDeleteSettingParams DeleteSetting { get; }
+
+ [DispId(21)]
+ [Description("Gets an interface exposing the parameter names for the 'VBA.Math.Randomize' statement.")]
+ IRandomizeParams Randomize { get; }
+
+ [DispId(22)]
+ [Description("Gets an interface exposing the parameter names for the 'VBA.Math.Rnd' function.")]
+ IRndParams Rnd { get; }
+ }
+}
diff --git a/Rubberduck.Main/ComClientLibrary/Abstract/UnitTesting/ParameterInfo/IChDirParams.cs b/Rubberduck.Main/ComClientLibrary/Abstract/UnitTesting/ParameterInfo/IChDirParams.cs
new file mode 100644
index 0000000000..f678255261
--- /dev/null
+++ b/Rubberduck.Main/ComClientLibrary/Abstract/UnitTesting/ParameterInfo/IChDirParams.cs
@@ -0,0 +1,26 @@
+using System.ComponentModel;
+using System.Runtime.InteropServices;
+using Rubberduck.Resources.Registration;
+
+// ReSharper disable InconsistentNaming
+// The parameters on RD's public interfaces are following VBA conventions not C# conventions to stop the
+// obnoxious "Can I haz all identifiers with the same casing" behavior of the VBE.
+
+namespace Rubberduck.UnitTesting
+{
+ [
+ ComVisible(true),
+ Guid(RubberduckGuid.ParamsChDirGuid),
+ InterfaceType(ComInterfaceType.InterfaceIsDual),
+ EditorBrowsable(EditorBrowsableState.Always),
+ ]
+ public interface IChDirParams
+ {
+ ///
+ /// Gets the name of the 'Path' parameter.
+ ///
+ [DispId(1)]
+ [Description("Gets the name of the 'Path' parameter.")]
+ string Path { get; }
+ }
+}
diff --git a/Rubberduck.Main/ComClientLibrary/Abstract/UnitTesting/ParameterInfo/IChDriveParams.cs b/Rubberduck.Main/ComClientLibrary/Abstract/UnitTesting/ParameterInfo/IChDriveParams.cs
new file mode 100644
index 0000000000..36cafc60f2
--- /dev/null
+++ b/Rubberduck.Main/ComClientLibrary/Abstract/UnitTesting/ParameterInfo/IChDriveParams.cs
@@ -0,0 +1,26 @@
+using System.ComponentModel;
+using System.Runtime.InteropServices;
+using Rubberduck.Resources.Registration;
+
+// ReSharper disable InconsistentNaming
+// The parameters on RD's public interfaces are following VBA conventions not C# conventions to stop the
+// obnoxious "Can I haz all identifiers with the same casing" behavior of the VBE.
+
+namespace Rubberduck.UnitTesting
+{
+ [
+ ComVisible(true),
+ Guid(RubberduckGuid.ParamsChDriveGuid),
+ InterfaceType(ComInterfaceType.InterfaceIsDual),
+ EditorBrowsable(EditorBrowsableState.Always),
+ ]
+ public interface IChDriveParams
+ {
+ ///
+ /// Gets the name of the 'Drive' parameter.
+ ///
+ [DispId(1)]
+ [Description("Gets the name of the 'Drive' parameter.")]
+ string Drive { get; }
+ }
+}
diff --git a/Rubberduck.Main/ComClientLibrary/Abstract/UnitTesting/ParameterInfo/ICurDirParams.cs b/Rubberduck.Main/ComClientLibrary/Abstract/UnitTesting/ParameterInfo/ICurDirParams.cs
new file mode 100644
index 0000000000..03566dbb3a
--- /dev/null
+++ b/Rubberduck.Main/ComClientLibrary/Abstract/UnitTesting/ParameterInfo/ICurDirParams.cs
@@ -0,0 +1,26 @@
+using System.ComponentModel;
+using System.Runtime.InteropServices;
+using Rubberduck.Resources.Registration;
+
+// ReSharper disable InconsistentNaming
+// The parameters on RD's public interfaces are following VBA conventions not C# conventions to stop the
+// obnoxious "Can I haz all identifiers with the same casing" behavior of the VBE.
+
+namespace Rubberduck.UnitTesting
+{
+ [
+ ComVisible(true),
+ Guid(RubberduckGuid.ParamsCurDirGuid),
+ InterfaceType(ComInterfaceType.InterfaceIsDual),
+ EditorBrowsable(EditorBrowsableState.Always),
+ ]
+ public interface ICurDirParams
+ {
+ ///
+ /// Gets the name of the 'Drive' optional parameter.
+ ///
+ [DispId(1)]
+ [Description("Gets the name of the 'Drive' optional parameter.")]
+ string Drive { get; }
+ }
+}
diff --git a/Rubberduck.Main/ComClientLibrary/Abstract/UnitTesting/ParameterInfo/IDeleteSettingParams.cs b/Rubberduck.Main/ComClientLibrary/Abstract/UnitTesting/ParameterInfo/IDeleteSettingParams.cs
new file mode 100644
index 0000000000..c8aa88f041
--- /dev/null
+++ b/Rubberduck.Main/ComClientLibrary/Abstract/UnitTesting/ParameterInfo/IDeleteSettingParams.cs
@@ -0,0 +1,40 @@
+using System.ComponentModel;
+using System.Runtime.InteropServices;
+using Rubberduck.Resources.Registration;
+
+// ReSharper disable InconsistentNaming
+// The parameters on RD's public interfaces are following VBA conventions not C# conventions to stop the
+// obnoxious "Can I haz all identifiers with the same casing" behavior of the VBE.
+
+namespace Rubberduck.UnitTesting
+{
+ [
+ ComVisible(true),
+ Guid(RubberduckGuid.ParamsDeleteSettingGuid),
+ InterfaceType(ComInterfaceType.InterfaceIsDual),
+ EditorBrowsable(EditorBrowsableState.Always),
+ ]
+ public interface IDeleteSettingParams
+ {
+ ///
+ /// Gets the name of the 'AppName' parameter.
+ ///
+ [DispId(1)]
+ [Description("Gets the name of the 'AppName' parameter.")]
+ string AppName { get; }
+
+ ///
+ /// Gets the name of the 'Section' parameter.
+ ///
+ [DispId(2)]
+ [Description("Gets the name of the 'Section' parameter.")]
+ string Section { get; }
+
+ ///
+ /// Gets the name of the 'Key' parameter.
+ ///
+ [DispId(3)]
+ [Description("Gets the name of the 'Key' parameter.")]
+ string Key { get; }
+ }
+}
diff --git a/Rubberduck.Main/ComClientLibrary/Abstract/UnitTesting/ParameterInfo/IDirParams.cs b/Rubberduck.Main/ComClientLibrary/Abstract/UnitTesting/ParameterInfo/IDirParams.cs
new file mode 100644
index 0000000000..8033e90448
--- /dev/null
+++ b/Rubberduck.Main/ComClientLibrary/Abstract/UnitTesting/ParameterInfo/IDirParams.cs
@@ -0,0 +1,33 @@
+using System.ComponentModel;
+using System.Runtime.InteropServices;
+using Rubberduck.Resources.Registration;
+
+// ReSharper disable InconsistentNaming
+// The parameters on RD's public interfaces are following VBA conventions not C# conventions to stop the
+// obnoxious "Can I haz all identifiers with the same casing" behavior of the VBE.
+
+namespace Rubberduck.UnitTesting
+{
+ [
+ ComVisible(true),
+ Guid(RubberduckGuid.ParamsDirGuid),
+ InterfaceType(ComInterfaceType.InterfaceIsDual),
+ EditorBrowsable(EditorBrowsableState.Always),
+ ]
+ public interface IDirParams
+ {
+ ///
+ /// Gets the name of the 'PathName' optional parameter.
+ ///
+ [DispId(1)]
+ [Description("Gets the name of the 'PathName' optional parameter.")]
+ string PathName { get; }
+
+ ///
+ /// Gets the name of the 'Attributes' optional parameter.
+ ///
+ [DispId(2)]
+ [Description("Gets the name of the 'Attributes' optional parameter.")]
+ string Attributes { get; }
+ }
+}
diff --git a/Rubberduck.Main/ComClientLibrary/Abstract/UnitTesting/ParameterInfo/IEnvironParams.cs b/Rubberduck.Main/ComClientLibrary/Abstract/UnitTesting/ParameterInfo/IEnvironParams.cs
new file mode 100644
index 0000000000..676a1e5f3b
--- /dev/null
+++ b/Rubberduck.Main/ComClientLibrary/Abstract/UnitTesting/ParameterInfo/IEnvironParams.cs
@@ -0,0 +1,33 @@
+using System.ComponentModel;
+using System.Runtime.InteropServices;
+using Rubberduck.Resources.Registration;
+
+// ReSharper disable InconsistentNaming
+// The parameters on RD's public interfaces are following VBA conventions not C# conventions to stop the
+// obnoxious "Can I haz all identifiers with the same casing" behavior of the VBE.
+
+namespace Rubberduck.UnitTesting
+{
+ [
+ ComVisible(true),
+ Guid(RubberduckGuid.ParamsEnvironGuid),
+ InterfaceType(ComInterfaceType.InterfaceIsDual),
+ EditorBrowsable(EditorBrowsableState.Always),
+ ]
+ public interface IEnvironParams
+ {
+ ///
+ /// Gets the name of the 'EnvString' optional parameter.
+ ///
+ [DispId(1)]
+ [Description("Gets the name of the 'EnvString' optional parameter.")]
+ string EnvString { get; }
+
+ ///
+ /// Gets the name of the 'Number' optional parameter.
+ ///
+ [DispId(2)]
+ [Description("Gets the name of the 'Number' optional parameter.")]
+ string Number { get; }
+ }
+}
diff --git a/Rubberduck.Main/ComClientLibrary/Abstract/UnitTesting/ParameterInfo/IFileCopyParams.cs b/Rubberduck.Main/ComClientLibrary/Abstract/UnitTesting/ParameterInfo/IFileCopyParams.cs
new file mode 100644
index 0000000000..f4b0ed35fa
--- /dev/null
+++ b/Rubberduck.Main/ComClientLibrary/Abstract/UnitTesting/ParameterInfo/IFileCopyParams.cs
@@ -0,0 +1,33 @@
+using System.ComponentModel;
+using System.Runtime.InteropServices;
+using Rubberduck.Resources.Registration;
+
+// ReSharper disable InconsistentNaming
+// The parameters on RD's public interfaces are following VBA conventions not C# conventions to stop the
+// obnoxious "Can I haz all identifiers with the same casing" behavior of the VBE.
+
+namespace Rubberduck.UnitTesting
+{
+ [
+ ComVisible(true),
+ Guid(RubberduckGuid.ParamsFileCopyGuid),
+ InterfaceType(ComInterfaceType.InterfaceIsDual),
+ EditorBrowsable(EditorBrowsableState.Always),
+ ]
+ public interface IFileCopyParams
+ {
+ ///
+ /// Gets the name of the 'Source' parameter.
+ ///
+ [DispId(1)]
+ [Description("Gets the name of the 'Source' parameter.")]
+ string Source { get; }
+
+ ///
+ /// Gets the name of the 'Destination' parameter.
+ ///
+ [DispId(2)]
+ [Description("Gets the name of the 'Destination' parameter.")]
+ string Destination { get; }
+ }
+}
diff --git a/Rubberduck.Main/ComClientLibrary/Abstract/UnitTesting/ParameterInfo/IFileDateTimeParams.cs b/Rubberduck.Main/ComClientLibrary/Abstract/UnitTesting/ParameterInfo/IFileDateTimeParams.cs
new file mode 100644
index 0000000000..d302965175
--- /dev/null
+++ b/Rubberduck.Main/ComClientLibrary/Abstract/UnitTesting/ParameterInfo/IFileDateTimeParams.cs
@@ -0,0 +1,26 @@
+using System.ComponentModel;
+using System.Runtime.InteropServices;
+using Rubberduck.Resources.Registration;
+
+// ReSharper disable InconsistentNaming
+// The parameters on RD's public interfaces are following VBA conventions not C# conventions to stop the
+// obnoxious "Can I haz all identifiers with the same casing" behavior of the VBE.
+
+namespace Rubberduck.UnitTesting
+{
+ [
+ ComVisible(true),
+ Guid(RubberduckGuid.ParamsFileDateTimeGuid),
+ InterfaceType(ComInterfaceType.InterfaceIsDual),
+ EditorBrowsable(EditorBrowsableState.Always),
+ ]
+ public interface IFileDateTimeParams
+ {
+ ///
+ /// Gets the name of the 'PathName' parameter.
+ ///
+ [DispId(1)]
+ [Description("Gets the name of the 'PathName' parameter.")]
+ string PathName { get; }
+ }
+}
diff --git a/Rubberduck.Main/ComClientLibrary/Abstract/UnitTesting/ParameterInfo/IFileLenParams.cs b/Rubberduck.Main/ComClientLibrary/Abstract/UnitTesting/ParameterInfo/IFileLenParams.cs
new file mode 100644
index 0000000000..ccd8651ef0
--- /dev/null
+++ b/Rubberduck.Main/ComClientLibrary/Abstract/UnitTesting/ParameterInfo/IFileLenParams.cs
@@ -0,0 +1,26 @@
+using System.ComponentModel;
+using System.Runtime.InteropServices;
+using Rubberduck.Resources.Registration;
+
+// ReSharper disable InconsistentNaming
+// The parameters on RD's public interfaces are following VBA conventions not C# conventions to stop the
+// obnoxious "Can I haz all identifiers with the same casing" behavior of the VBE.
+
+namespace Rubberduck.UnitTesting
+{
+ [
+ ComVisible(true),
+ Guid(RubberduckGuid.ParamsFileLenGuid),
+ InterfaceType(ComInterfaceType.InterfaceIsDual),
+ EditorBrowsable(EditorBrowsableState.Always),
+ ]
+ public interface IFileLenParams
+ {
+ ///
+ /// Gets the name of the 'PathName' parameter.
+ ///
+ [DispId(1)]
+ [Description("Gets the name of the 'PathName' parameter.")]
+ string PathName { get; }
+ }
+}
diff --git a/Rubberduck.Main/ComClientLibrary/Abstract/UnitTesting/ParameterInfo/IFreeFileParams.cs b/Rubberduck.Main/ComClientLibrary/Abstract/UnitTesting/ParameterInfo/IFreeFileParams.cs
new file mode 100644
index 0000000000..1743aab8b6
--- /dev/null
+++ b/Rubberduck.Main/ComClientLibrary/Abstract/UnitTesting/ParameterInfo/IFreeFileParams.cs
@@ -0,0 +1,26 @@
+using System.ComponentModel;
+using System.Runtime.InteropServices;
+using Rubberduck.Resources.Registration;
+
+// ReSharper disable InconsistentNaming
+// The parameters on RD's public interfaces are following VBA conventions not C# conventions to stop the
+// obnoxious "Can I haz all identifiers with the same casing" behavior of the VBE.
+
+namespace Rubberduck.UnitTesting
+{
+ [
+ ComVisible(true),
+ Guid(RubberduckGuid.ParamsFreeFileGuid),
+ InterfaceType(ComInterfaceType.InterfaceIsDual),
+ EditorBrowsable(EditorBrowsableState.Always),
+ ]
+ public interface IFreeFileParams
+ {
+ ///
+ /// Gets the name of the 'RangeNumber' parameter.
+ ///
+ [DispId(1)]
+ [Description("Gets the name of the 'RangeNumber' parameter.")]
+ string RangeNumber { get; }
+ }
+}
diff --git a/Rubberduck.Main/ComClientLibrary/Abstract/UnitTesting/ParameterInfo/IGetAttrParams.cs b/Rubberduck.Main/ComClientLibrary/Abstract/UnitTesting/ParameterInfo/IGetAttrParams.cs
new file mode 100644
index 0000000000..fb2a9e2f76
--- /dev/null
+++ b/Rubberduck.Main/ComClientLibrary/Abstract/UnitTesting/ParameterInfo/IGetAttrParams.cs
@@ -0,0 +1,26 @@
+using System.ComponentModel;
+using System.Runtime.InteropServices;
+using Rubberduck.Resources.Registration;
+
+// ReSharper disable InconsistentNaming
+// The parameters on RD's public interfaces are following VBA conventions not C# conventions to stop the
+// obnoxious "Can I haz all identifiers with the same casing" behavior of the VBE.
+
+namespace Rubberduck.UnitTesting
+{
+ [
+ ComVisible(true),
+ Guid(RubberduckGuid.ParamsGetAttrGuid),
+ InterfaceType(ComInterfaceType.InterfaceIsDual),
+ EditorBrowsable(EditorBrowsableState.Always),
+ ]
+ public interface IGetAttrParams
+ {
+ ///
+ /// Gets the name of the 'PathName' parameter.
+ ///
+ [DispId(1)]
+ [Description("Gets the name of the 'PathName' parameter.")]
+ string PathName { get; }
+ }
+}
diff --git a/Rubberduck.Main/ComClientLibrary/Abstract/UnitTesting/ParameterInfo/IInputBoxParams.cs b/Rubberduck.Main/ComClientLibrary/Abstract/UnitTesting/ParameterInfo/IInputBoxParams.cs
new file mode 100644
index 0000000000..5f39137ac1
--- /dev/null
+++ b/Rubberduck.Main/ComClientLibrary/Abstract/UnitTesting/ParameterInfo/IInputBoxParams.cs
@@ -0,0 +1,68 @@
+using System.ComponentModel;
+using System.Runtime.InteropServices;
+using Rubberduck.Resources.Registration;
+
+// ReSharper disable InconsistentNaming
+// The parameters on RD's public interfaces are following VBA conventions not C# conventions to stop the
+// obnoxious "Can I haz all identifiers with the same casing" behavior of the VBE.
+
+namespace Rubberduck.UnitTesting
+{
+ [
+ ComVisible(true),
+ Guid(RubberduckGuid.ParamsInputBoxGuid),
+ InterfaceType(ComInterfaceType.InterfaceIsDual),
+ EditorBrowsable(EditorBrowsableState.Always),
+ ]
+ public interface IInputBoxParams
+ {
+ ///
+ /// Gets the name of the 'Prompt' parameter.
+ ///
+ [DispId(1)]
+ [Description("Gets the name of the 'Prompt' parameter.")]
+ string Prompt { get; }
+
+ ///
+ /// Gets the name of the 'Title' optional parameter.
+ ///
+ [DispId(2)]
+ [Description("Gets the name of the 'Title' optional parameter.")]
+ string Title { get; }
+
+ ///
+ /// Gets the name of the 'Default' optional parameter.
+ ///
+ [DispId(3)]
+ [Description("Gets the name of the 'Default' optional parameter.")]
+ string Default { get; }
+
+ ///
+ /// Gets the name of the 'XPos' optional parameter.
+ ///
+ [DispId(4)]
+ [Description("Gets the name of the 'XPos' optional parameter.")]
+ string XPos { get; }
+
+ ///
+ /// Gets the name of the 'YPos' optional parameter.
+ ///
+ [DispId(5)]
+ [Description("Gets the name of the 'YPos' optional parameter.")]
+ string YPos { get; }
+
+ ///
+ /// Gets the name of the 'HelpFile' optional parameter.
+ ///
+ [DispId(6)]
+ [Description("Gets the name of the 'HelpFile' optional parameter.")]
+ string HelpFile { get; }
+
+ ///
+ /// Gets the name of the 'Context' optional parameter.
+ ///
+ [DispId(7)]
+ [Description("Gets the name of the 'Context' optional parameter.")]
+ string Context { get; }
+ }
+}
diff --git a/Rubberduck.Main/ComClientLibrary/Abstract/UnitTesting/ParameterInfo/IKillParams.cs b/Rubberduck.Main/ComClientLibrary/Abstract/UnitTesting/ParameterInfo/IKillParams.cs
new file mode 100644
index 0000000000..527cc31490
--- /dev/null
+++ b/Rubberduck.Main/ComClientLibrary/Abstract/UnitTesting/ParameterInfo/IKillParams.cs
@@ -0,0 +1,26 @@
+using System.ComponentModel;
+using System.Runtime.InteropServices;
+using Rubberduck.Resources.Registration;
+
+// ReSharper disable InconsistentNaming
+// The parameters on RD's public interfaces are following VBA conventions not C# conventions to stop the
+// obnoxious "Can I haz all identifiers with the same casing" behavior of the VBE.
+
+namespace Rubberduck.UnitTesting
+{
+ [
+ ComVisible(true),
+ Guid(RubberduckGuid.ParamsKillGuid),
+ InterfaceType(ComInterfaceType.InterfaceIsDual),
+ EditorBrowsable(EditorBrowsableState.Always),
+ ]
+ public interface IKillParams
+ {
+ ///
+ /// Gets the name of the 'PathName' parameter.
+ ///
+ [DispId(1)]
+ [Description("Gets the name of the 'PathName' parameter.")]
+ string PathName { get; }
+ }
+}
diff --git a/Rubberduck.Main/ComClientLibrary/Abstract/UnitTesting/ParameterInfo/IMkDirParams.cs b/Rubberduck.Main/ComClientLibrary/Abstract/UnitTesting/ParameterInfo/IMkDirParams.cs
new file mode 100644
index 0000000000..f72ca894f4
--- /dev/null
+++ b/Rubberduck.Main/ComClientLibrary/Abstract/UnitTesting/ParameterInfo/IMkDirParams.cs
@@ -0,0 +1,26 @@
+using System.ComponentModel;
+using System.Runtime.InteropServices;
+using Rubberduck.Resources.Registration;
+
+// ReSharper disable InconsistentNaming
+// The parameters on RD's public interfaces are following VBA conventions not C# conventions to stop the
+// obnoxious "Can I haz all identifiers with the same casing" behavior of the VBE.
+
+namespace Rubberduck.UnitTesting
+{
+ [
+ ComVisible(true),
+ Guid(RubberduckGuid.ParamsMkDirGuid),
+ InterfaceType(ComInterfaceType.InterfaceIsDual),
+ EditorBrowsable(EditorBrowsableState.Always),
+ ]
+ public interface IMkDirParams
+ {
+ ///
+ /// Gets the name of the 'Path' parameter.
+ ///
+ [DispId(1)]
+ [Description("Gets the name of the 'Path' parameter.")]
+ string Path { get; }
+ }
+}
diff --git a/Rubberduck.Main/ComClientLibrary/Abstract/UnitTesting/ParameterInfo/IMsgBoxParams.cs b/Rubberduck.Main/ComClientLibrary/Abstract/UnitTesting/ParameterInfo/IMsgBoxParams.cs
new file mode 100644
index 0000000000..0f3dcd9df7
--- /dev/null
+++ b/Rubberduck.Main/ComClientLibrary/Abstract/UnitTesting/ParameterInfo/IMsgBoxParams.cs
@@ -0,0 +1,54 @@
+using System.ComponentModel;
+using System.Runtime.InteropServices;
+using Rubberduck.Resources.Registration;
+
+// ReSharper disable InconsistentNaming
+// The parameters on RD's public interfaces are following VBA conventions not C# conventions to stop the
+// obnoxious "Can I haz all identifiers with the same casing" behavior of the VBE.
+
+namespace Rubberduck.UnitTesting
+{
+ [
+ ComVisible(true),
+ Guid(RubberduckGuid.ParamsMsgBoxGuid),
+ InterfaceType(ComInterfaceType.InterfaceIsDual),
+ EditorBrowsable(EditorBrowsableState.Always),
+ ]
+ public interface IMsgBoxParams
+ {
+ ///
+ /// Gets the name of the 'Prompt' parameter.
+ ///
+ [DispId(1)]
+ [Description("Gets the name of the 'Prompt' parameter.")]
+ string Prompt { get; }
+
+ ///
+ /// Gets the name of the 'Buttons' optional parameter.
+ ///
+ [DispId(2)]
+ [Description("Gets the name of the 'Buttons' parameter.")]
+ string Buttons { get; }
+
+ ///
+ /// Gets the name of the 'Title' optional parameter.
+ ///
+ [DispId(3)]
+ [Description("Gets the name of the 'Title' parameter.")]
+ string Title { get; }
+
+ ///
+ /// Gets the name of the 'HelpFile' optional parameter.
+ ///
+ [DispId(4)]
+ [Description("Gets the name of the 'HelpFile' parameter.")]
+ string HelpFile { get; }
+
+ ///
+ /// Gets the name of the 'Context' optional parameter.
+ ///
+ [DispId(5)]
+ [Description("Gets the name of the 'Context' parameter.")]
+ string Context { get; }
+ }
+}
diff --git a/Rubberduck.Main/ComClientLibrary/Abstract/UnitTesting/ParameterInfo/IRandomizeParams.cs b/Rubberduck.Main/ComClientLibrary/Abstract/UnitTesting/ParameterInfo/IRandomizeParams.cs
new file mode 100644
index 0000000000..56dc895f00
--- /dev/null
+++ b/Rubberduck.Main/ComClientLibrary/Abstract/UnitTesting/ParameterInfo/IRandomizeParams.cs
@@ -0,0 +1,26 @@
+using System.ComponentModel;
+using System.Runtime.InteropServices;
+using Rubberduck.Resources.Registration;
+
+// ReSharper disable InconsistentNaming
+// The parameters on RD's public interfaces are following VBA conventions not C# conventions to stop the
+// obnoxious "Can I haz all identifiers with the same casing" behavior of the VBE.
+
+namespace Rubberduck.UnitTesting
+{
+ [
+ ComVisible(true),
+ Guid(RubberduckGuid.ParamsRandomizeGuid),
+ InterfaceType(ComInterfaceType.InterfaceIsDual),
+ EditorBrowsable(EditorBrowsableState.Always),
+ ]
+ public interface IRandomizeParams
+ {
+ ///
+ /// Gets the name of the 'Number' parameter.
+ ///
+ [DispId(1)]
+ [Description("Gets the name of the 'Number' parameter.")]
+ string Number { get; }
+ }
+}
diff --git a/Rubberduck.Main/ComClientLibrary/Abstract/UnitTesting/ParameterInfo/IRmDirParams.cs b/Rubberduck.Main/ComClientLibrary/Abstract/UnitTesting/ParameterInfo/IRmDirParams.cs
new file mode 100644
index 0000000000..3d82cd989e
--- /dev/null
+++ b/Rubberduck.Main/ComClientLibrary/Abstract/UnitTesting/ParameterInfo/IRmDirParams.cs
@@ -0,0 +1,26 @@
+using System.ComponentModel;
+using System.Runtime.InteropServices;
+using Rubberduck.Resources.Registration;
+
+// ReSharper disable InconsistentNaming
+// The parameters on RD's public interfaces are following VBA conventions not C# conventions to stop the
+// obnoxious "Can I haz all identifiers with the same casing" behavior of the VBE.
+
+namespace Rubberduck.UnitTesting
+{
+ [
+ ComVisible(true),
+ Guid(RubberduckGuid.ParamsRmDirGuid),
+ InterfaceType(ComInterfaceType.InterfaceIsDual),
+ EditorBrowsable(EditorBrowsableState.Always),
+ ]
+ public interface IRmDirParams
+ {
+ ///
+ /// Gets the name of the 'Path' parameter.
+ ///
+ [DispId(1)]
+ [Description("Gets the name of the 'Path' parameter.")]
+ string Path { get; }
+ }
+}
diff --git a/Rubberduck.Main/ComClientLibrary/Abstract/UnitTesting/ParameterInfo/IRndParams.cs b/Rubberduck.Main/ComClientLibrary/Abstract/UnitTesting/ParameterInfo/IRndParams.cs
new file mode 100644
index 0000000000..6c83de1f40
--- /dev/null
+++ b/Rubberduck.Main/ComClientLibrary/Abstract/UnitTesting/ParameterInfo/IRndParams.cs
@@ -0,0 +1,26 @@
+using System.ComponentModel;
+using System.Runtime.InteropServices;
+using Rubberduck.Resources.Registration;
+
+// ReSharper disable InconsistentNaming
+// The parameters on RD's public interfaces are following VBA conventions not C# conventions to stop the
+// obnoxious "Can I haz all identifiers with the same casing" behavior of the VBE.
+
+namespace Rubberduck.UnitTesting
+{
+ [
+ ComVisible(true),
+ Guid(RubberduckGuid.ParamsRndGuid),
+ InterfaceType(ComInterfaceType.InterfaceIsDual),
+ EditorBrowsable(EditorBrowsableState.Always),
+ ]
+ public interface IRndParams
+ {
+ ///
+ /// Gets the name of the 'Number' parameter.
+ ///
+ [DispId(1)]
+ [Description("Gets the name of the 'Number' parameter.")]
+ string Number { get; }
+ }
+}
diff --git a/Rubberduck.Main/ComClientLibrary/Abstract/UnitTesting/ParameterInfo/ISaveSettingParams.cs b/Rubberduck.Main/ComClientLibrary/Abstract/UnitTesting/ParameterInfo/ISaveSettingParams.cs
new file mode 100644
index 0000000000..da86821c56
--- /dev/null
+++ b/Rubberduck.Main/ComClientLibrary/Abstract/UnitTesting/ParameterInfo/ISaveSettingParams.cs
@@ -0,0 +1,47 @@
+using System.ComponentModel;
+using System.Runtime.InteropServices;
+using Rubberduck.Resources.Registration;
+
+// ReSharper disable InconsistentNaming
+// The parameters on RD's public interfaces are following VBA conventions not C# conventions to stop the
+// obnoxious "Can I haz all identifiers with the same casing" behavior of the VBE.
+
+namespace Rubberduck.UnitTesting
+{
+ [
+ ComVisible(true),
+ Guid(RubberduckGuid.ParamsSaveSettingGuid),
+ InterfaceType(ComInterfaceType.InterfaceIsDual),
+ EditorBrowsable(EditorBrowsableState.Always),
+ ]
+ public interface ISaveSettingParams
+ {
+ ///
+ /// Gets the name of the 'AppName' parameter.
+ ///
+ [DispId(1)]
+ [Description("Gets the name of the 'AppName' parameter.")]
+ string AppName { get; }
+
+ ///
+ /// Gets the name of the 'Section' parameter.
+ ///
+ [DispId(2)]
+ [Description("Gets the name of the 'Section' parameter.")]
+ string Section { get; }
+
+ ///
+ /// Gets the name of the 'Key' parameter.
+ ///
+ [DispId(3)]
+ [Description("Gets the name of the 'Key' parameter.")]
+ string Key { get; }
+
+ ///
+ /// Gets the name of the 'Setting' parameter.
+ ///
+ [DispId(4)]
+ [Description("Gets the name of the 'Setting' parameter.")]
+ string Setting { get; }
+ }
+}
diff --git a/Rubberduck.Main/ComClientLibrary/Abstract/UnitTesting/ParameterInfo/ISendKeysParams.cs b/Rubberduck.Main/ComClientLibrary/Abstract/UnitTesting/ParameterInfo/ISendKeysParams.cs
new file mode 100644
index 0000000000..b7e1c3f607
--- /dev/null
+++ b/Rubberduck.Main/ComClientLibrary/Abstract/UnitTesting/ParameterInfo/ISendKeysParams.cs
@@ -0,0 +1,33 @@
+using System.ComponentModel;
+using System.Runtime.InteropServices;
+using Rubberduck.Resources.Registration;
+
+// ReSharper disable InconsistentNaming
+// The parameters on RD's public interfaces are following VBA conventions not C# conventions to stop the
+// obnoxious "Can I haz all identifiers with the same casing" behavior of the VBE.
+
+namespace Rubberduck.UnitTesting
+{
+ [
+ ComVisible(true),
+ Guid(RubberduckGuid.ParamsSendKeysGuid),
+ InterfaceType(ComInterfaceType.InterfaceIsDual),
+ EditorBrowsable(EditorBrowsableState.Always),
+ ]
+ public interface ISendKeysParams
+ {
+ ///
+ /// Gets the name of the 'Keys' parameter.
+ ///
+ [DispId(1)]
+ [Description("Gets the name of the 'Keys' parameter.")]
+ string Keys { get; }
+
+ ///
+ /// Gets the name of the 'Wait' parameter.
+ ///
+ [DispId(2)]
+ [Description("Gets the name of the 'Wait' parameter.")]
+ string Wait { get; }
+ }
+}
diff --git a/Rubberduck.Main/ComClientLibrary/Abstract/UnitTesting/ParameterInfo/ISetAttrParams.cs b/Rubberduck.Main/ComClientLibrary/Abstract/UnitTesting/ParameterInfo/ISetAttrParams.cs
new file mode 100644
index 0000000000..67f666ac6c
--- /dev/null
+++ b/Rubberduck.Main/ComClientLibrary/Abstract/UnitTesting/ParameterInfo/ISetAttrParams.cs
@@ -0,0 +1,33 @@
+using System.ComponentModel;
+using System.Runtime.InteropServices;
+using Rubberduck.Resources.Registration;
+
+// ReSharper disable InconsistentNaming
+// The parameters on RD's public interfaces are following VBA conventions not C# conventions to stop the
+// obnoxious "Can I haz all identifiers with the same casing" behavior of the VBE.
+
+namespace Rubberduck.UnitTesting
+{
+ [
+ ComVisible(true),
+ Guid(RubberduckGuid.ParamsSetAttrGuid),
+ InterfaceType(ComInterfaceType.InterfaceIsDual),
+ EditorBrowsable(EditorBrowsableState.Always),
+ ]
+ public interface ISetAttrParams
+ {
+ ///
+ /// Gets the name of the 'PathName' parameter.
+ ///
+ [DispId(1)]
+ [Description("Gets the name of the 'PathName' parameter.")]
+ string PathName { get; }
+
+ ///
+ /// Gets the name of the 'Attributes' parameter.
+ ///
+ [DispId(2)]
+ [Description("Gets the name of the 'Attributes' parameter.")]
+ string Attributes { get; }
+ }
+}
diff --git a/Rubberduck.Main/ComClientLibrary/Abstract/UnitTesting/ParameterInfo/IShellParams.cs b/Rubberduck.Main/ComClientLibrary/Abstract/UnitTesting/ParameterInfo/IShellParams.cs
new file mode 100644
index 0000000000..b0c33b7a02
--- /dev/null
+++ b/Rubberduck.Main/ComClientLibrary/Abstract/UnitTesting/ParameterInfo/IShellParams.cs
@@ -0,0 +1,33 @@
+using System.ComponentModel;
+using System.Runtime.InteropServices;
+using Rubberduck.Resources.Registration;
+
+// ReSharper disable InconsistentNaming
+// The parameters on RD's public interfaces are following VBA conventions not C# conventions to stop the
+// obnoxious "Can I haz all identifiers with the same casing" behavior of the VBE.
+
+namespace Rubberduck.UnitTesting
+{
+ [
+ ComVisible(true),
+ Guid(RubberduckGuid.ParamsShellGuid),
+ InterfaceType(ComInterfaceType.InterfaceIsDual),
+ EditorBrowsable(EditorBrowsableState.Always),
+ ]
+ public interface IShellParams
+ {
+ ///
+ /// Gets the name of the 'PathName' parameter.
+ ///
+ [DispId(1)]
+ [Description("Gets the name of the 'PathName' parameter.")]
+ string PathName { get; }
+
+ ///
+ /// Gets the name of the 'WindowStyle' optional parameter.
+ ///
+ [DispId(2)]
+ [Description("Gets the name of the 'WindowStyle' parameter.")]
+ string WindowStyle { get; }
+ }
+}
diff --git a/Rubberduck.Main/ComClientLibrary/UnitTesting/FakesProvider.cs b/Rubberduck.Main/ComClientLibrary/UnitTesting/FakesProvider.cs
index c0bb2cfb6e..b14b18eeab 100644
--- a/Rubberduck.Main/ComClientLibrary/UnitTesting/FakesProvider.cs
+++ b/Rubberduck.Main/ComClientLibrary/UnitTesting/FakesProvider.cs
@@ -125,5 +125,7 @@ private T RetrieveOrCreateFunction(Func factory)
public IFake Dir => RetrieveOrCreateFunction();
public IStub FileCopy => RetrieveOrCreateFunction();
#endregion
+
+ public IParams Params { get; } = new Params();
}
}
diff --git a/Rubberduck.Main/ComClientLibrary/UnitTesting/ParameterInfo/ChDirParams.cs b/Rubberduck.Main/ComClientLibrary/UnitTesting/ParameterInfo/ChDirParams.cs
new file mode 100644
index 0000000000..26233651d5
--- /dev/null
+++ b/Rubberduck.Main/ComClientLibrary/UnitTesting/ParameterInfo/ChDirParams.cs
@@ -0,0 +1,15 @@
+using System.ComponentModel;
+using System.Runtime.InteropServices;
+using Rubberduck.Resources.Registration;
+
+// ReSharper disable InconsistentNaming
+// The parameters on RD's public interfaces are following VBA conventions not C# conventions to stop the
+// obnoxious "Can I haz all identifiers with the same casing" behavior of the VBE.
+
+namespace Rubberduck.UnitTesting
+{
+ internal class ChDirParams : IChDirParams
+ {
+ public string Path { get; } = nameof(Path);
+ }
+}
diff --git a/Rubberduck.Main/ComClientLibrary/UnitTesting/ParameterInfo/ChDriveParams.cs b/Rubberduck.Main/ComClientLibrary/UnitTesting/ParameterInfo/ChDriveParams.cs
new file mode 100644
index 0000000000..efb0dcb3da
--- /dev/null
+++ b/Rubberduck.Main/ComClientLibrary/UnitTesting/ParameterInfo/ChDriveParams.cs
@@ -0,0 +1,15 @@
+using System.ComponentModel;
+using System.Runtime.InteropServices;
+using Rubberduck.Resources.Registration;
+
+// ReSharper disable InconsistentNaming
+// The parameters on RD's public interfaces are following VBA conventions not C# conventions to stop the
+// obnoxious "Can I haz all identifiers with the same casing" behavior of the VBE.
+
+namespace Rubberduck.UnitTesting
+{
+ internal class ChDriveParams : IChDriveParams
+ {
+ public string Drive { get; } = nameof(Drive);
+ }
+}
diff --git a/Rubberduck.Main/ComClientLibrary/UnitTesting/ParameterInfo/CurDirParams.cs b/Rubberduck.Main/ComClientLibrary/UnitTesting/ParameterInfo/CurDirParams.cs
new file mode 100644
index 0000000000..6e43559046
--- /dev/null
+++ b/Rubberduck.Main/ComClientLibrary/UnitTesting/ParameterInfo/CurDirParams.cs
@@ -0,0 +1,15 @@
+using System.ComponentModel;
+using System.Runtime.InteropServices;
+using Rubberduck.Resources.Registration;
+
+// ReSharper disable InconsistentNaming
+// The parameters on RD's public interfaces are following VBA conventions not C# conventions to stop the
+// obnoxious "Can I haz all identifiers with the same casing" behavior of the VBE.
+
+namespace Rubberduck.UnitTesting
+{
+ internal class CurDirParams : ICurDirParams
+ {
+ public string Drive { get; } = nameof(Drive);
+ }
+}
diff --git a/Rubberduck.Main/ComClientLibrary/UnitTesting/ParameterInfo/DeleteSettingParams.cs b/Rubberduck.Main/ComClientLibrary/UnitTesting/ParameterInfo/DeleteSettingParams.cs
new file mode 100644
index 0000000000..dd7f5c435d
--- /dev/null
+++ b/Rubberduck.Main/ComClientLibrary/UnitTesting/ParameterInfo/DeleteSettingParams.cs
@@ -0,0 +1,19 @@
+using System.ComponentModel;
+using System.Runtime.InteropServices;
+using Rubberduck.Resources.Registration;
+
+// ReSharper disable InconsistentNaming
+// The parameters on RD's public interfaces are following VBA conventions not C# conventions to stop the
+// obnoxious "Can I haz all identifiers with the same casing" behavior of the VBE.
+
+namespace Rubberduck.UnitTesting
+{
+ internal class DeleteSettingParams : IDeleteSettingParams
+ {
+ public string AppName { get; } = nameof(AppName);
+
+ public string Section { get; } = nameof(Section);
+
+ public string Key { get; } = nameof(Key);
+ }
+}
diff --git a/Rubberduck.Main/ComClientLibrary/UnitTesting/ParameterInfo/DirParams.cs b/Rubberduck.Main/ComClientLibrary/UnitTesting/ParameterInfo/DirParams.cs
new file mode 100644
index 0000000000..53bfdb9e74
--- /dev/null
+++ b/Rubberduck.Main/ComClientLibrary/UnitTesting/ParameterInfo/DirParams.cs
@@ -0,0 +1,17 @@
+using System.ComponentModel;
+using System.Runtime.InteropServices;
+using Rubberduck.Resources.Registration;
+
+// ReSharper disable InconsistentNaming
+// The parameters on RD's public interfaces are following VBA conventions not C# conventions to stop the
+// obnoxious "Can I haz all identifiers with the same casing" behavior of the VBE.
+
+namespace Rubberduck.UnitTesting
+{
+ internal class DirParams : IDirParams
+ {
+ public string PathName { get; } = nameof(PathName);
+
+ public string Attributes { get; } = nameof(Attributes);
+ }
+}
diff --git a/Rubberduck.Main/ComClientLibrary/UnitTesting/ParameterInfo/EnvironParams.cs b/Rubberduck.Main/ComClientLibrary/UnitTesting/ParameterInfo/EnvironParams.cs
new file mode 100644
index 0000000000..289241b17d
--- /dev/null
+++ b/Rubberduck.Main/ComClientLibrary/UnitTesting/ParameterInfo/EnvironParams.cs
@@ -0,0 +1,17 @@
+using System.ComponentModel;
+using System.Runtime.InteropServices;
+using Rubberduck.Resources.Registration;
+
+// ReSharper disable InconsistentNaming
+// The parameters on RD's public interfaces are following VBA conventions not C# conventions to stop the
+// obnoxious "Can I haz all identifiers with the same casing" behavior of the VBE.
+
+namespace Rubberduck.UnitTesting
+{
+ internal class EnvironParams : IEnvironParams
+ {
+ public string EnvString { get; } = nameof(EnvString);
+
+ public string Number { get; } = nameof(Number);
+ }
+}
diff --git a/Rubberduck.Main/ComClientLibrary/UnitTesting/ParameterInfo/FileCopyParams.cs b/Rubberduck.Main/ComClientLibrary/UnitTesting/ParameterInfo/FileCopyParams.cs
new file mode 100644
index 0000000000..d614c83759
--- /dev/null
+++ b/Rubberduck.Main/ComClientLibrary/UnitTesting/ParameterInfo/FileCopyParams.cs
@@ -0,0 +1,17 @@
+using System.ComponentModel;
+using System.Runtime.InteropServices;
+using Rubberduck.Resources.Registration;
+
+// ReSharper disable InconsistentNaming
+// The parameters on RD's public interfaces are following VBA conventions not C# conventions to stop the
+// obnoxious "Can I haz all identifiers with the same casing" behavior of the VBE.
+
+namespace Rubberduck.UnitTesting
+{
+ internal class FileCopyParams : IFileCopyParams
+ {
+ public string Source { get; } = nameof(Source);
+
+ public string Destination { get; } = nameof(Destination);
+ }
+}
diff --git a/Rubberduck.Main/ComClientLibrary/UnitTesting/ParameterInfo/FileDateTimeParams.cs b/Rubberduck.Main/ComClientLibrary/UnitTesting/ParameterInfo/FileDateTimeParams.cs
new file mode 100644
index 0000000000..1ede01b6e1
--- /dev/null
+++ b/Rubberduck.Main/ComClientLibrary/UnitTesting/ParameterInfo/FileDateTimeParams.cs
@@ -0,0 +1,15 @@
+using System.ComponentModel;
+using System.Runtime.InteropServices;
+using Rubberduck.Resources.Registration;
+
+// ReSharper disable InconsistentNaming
+// The parameters on RD's public interfaces are following VBA conventions not C# conventions to stop the
+// obnoxious "Can I haz all identifiers with the same casing" behavior of the VBE.
+
+namespace Rubberduck.UnitTesting
+{
+ internal class FileDateTimeParams : IFileDateTimeParams
+ {
+ public string PathName { get; } = nameof(PathName);
+ }
+}
diff --git a/Rubberduck.Main/ComClientLibrary/UnitTesting/ParameterInfo/FileLenParams.cs b/Rubberduck.Main/ComClientLibrary/UnitTesting/ParameterInfo/FileLenParams.cs
new file mode 100644
index 0000000000..033d711a03
--- /dev/null
+++ b/Rubberduck.Main/ComClientLibrary/UnitTesting/ParameterInfo/FileLenParams.cs
@@ -0,0 +1,15 @@
+using System.ComponentModel;
+using System.Runtime.InteropServices;
+using Rubberduck.Resources.Registration;
+
+// ReSharper disable InconsistentNaming
+// The parameters on RD's public interfaces are following VBA conventions not C# conventions to stop the
+// obnoxious "Can I haz all identifiers with the same casing" behavior of the VBE.
+
+namespace Rubberduck.UnitTesting
+{
+ internal class FileLenParams : IFileLenParams
+ {
+ public string PathName { get; } = nameof(PathName);
+ }
+}
diff --git a/Rubberduck.Main/ComClientLibrary/UnitTesting/ParameterInfo/FreeFileParams.cs b/Rubberduck.Main/ComClientLibrary/UnitTesting/ParameterInfo/FreeFileParams.cs
new file mode 100644
index 0000000000..35f65db25e
--- /dev/null
+++ b/Rubberduck.Main/ComClientLibrary/UnitTesting/ParameterInfo/FreeFileParams.cs
@@ -0,0 +1,15 @@
+using System.ComponentModel;
+using System.Runtime.InteropServices;
+using Rubberduck.Resources.Registration;
+
+// ReSharper disable InconsistentNaming
+// The parameters on RD's public interfaces are following VBA conventions not C# conventions to stop the
+// obnoxious "Can I haz all identifiers with the same casing" behavior of the VBE.
+
+namespace Rubberduck.UnitTesting
+{
+ internal class FreeFileParams : IFreeFileParams
+ {
+ public string RangeNumber { get; } = nameof(RangeNumber);
+ }
+}
diff --git a/Rubberduck.Main/ComClientLibrary/UnitTesting/ParameterInfo/GetAttrParams.cs b/Rubberduck.Main/ComClientLibrary/UnitTesting/ParameterInfo/GetAttrParams.cs
new file mode 100644
index 0000000000..10147a6ee3
--- /dev/null
+++ b/Rubberduck.Main/ComClientLibrary/UnitTesting/ParameterInfo/GetAttrParams.cs
@@ -0,0 +1,15 @@
+using System.ComponentModel;
+using System.Runtime.InteropServices;
+using Rubberduck.Resources.Registration;
+
+// ReSharper disable InconsistentNaming
+// The parameters on RD's public interfaces are following VBA conventions not C# conventions to stop the
+// obnoxious "Can I haz all identifiers with the same casing" behavior of the VBE.
+
+namespace Rubberduck.UnitTesting
+{
+ internal class GetAttrParams : IGetAttrParams
+ {
+ public string PathName { get; } = nameof(PathName);
+ }
+}
diff --git a/Rubberduck.Main/ComClientLibrary/UnitTesting/ParameterInfo/InputBoxParams.cs b/Rubberduck.Main/ComClientLibrary/UnitTesting/ParameterInfo/InputBoxParams.cs
new file mode 100644
index 0000000000..2aed89ee32
--- /dev/null
+++ b/Rubberduck.Main/ComClientLibrary/UnitTesting/ParameterInfo/InputBoxParams.cs
@@ -0,0 +1,21 @@
+using System.ComponentModel;
+using System.Runtime.InteropServices;
+using Rubberduck.Resources.Registration;
+
+// ReSharper disable InconsistentNaming
+// The parameters on RD's public interfaces are following VBA conventions not C# conventions to stop the
+// obnoxious "Can I haz all identifiers with the same casing" behavior of the VBE.
+
+namespace Rubberduck.UnitTesting
+{
+ internal class InputBoxParams : IInputBoxParams
+ {
+ public string Prompt { get; } = nameof(Prompt);
+ public string Title { get; } = nameof(Title);
+ public string Default { get; } = nameof(Default);
+ public string XPos { get; } = nameof(XPos);
+ public string YPos { get; } = nameof(YPos);
+ public string HelpFile { get; } = nameof(HelpFile);
+ public string Context { get; } = nameof(Context);
+ }
+}
diff --git a/Rubberduck.Main/ComClientLibrary/UnitTesting/ParameterInfo/KillParams.cs b/Rubberduck.Main/ComClientLibrary/UnitTesting/ParameterInfo/KillParams.cs
new file mode 100644
index 0000000000..898515e267
--- /dev/null
+++ b/Rubberduck.Main/ComClientLibrary/UnitTesting/ParameterInfo/KillParams.cs
@@ -0,0 +1,15 @@
+using System.ComponentModel;
+using System.Runtime.InteropServices;
+using Rubberduck.Resources.Registration;
+
+// ReSharper disable InconsistentNaming
+// The parameters on RD's public interfaces are following VBA conventions not C# conventions to stop the
+// obnoxious "Can I haz all identifiers with the same casing" behavior of the VBE.
+
+namespace Rubberduck.UnitTesting
+{
+ internal class KillParams : IKillParams
+ {
+ public string PathName { get; } = nameof(PathName);
+ }
+}
diff --git a/Rubberduck.Main/ComClientLibrary/UnitTesting/ParameterInfo/MkDirParams.cs b/Rubberduck.Main/ComClientLibrary/UnitTesting/ParameterInfo/MkDirParams.cs
new file mode 100644
index 0000000000..6e7533ab21
--- /dev/null
+++ b/Rubberduck.Main/ComClientLibrary/UnitTesting/ParameterInfo/MkDirParams.cs
@@ -0,0 +1,15 @@
+using System.ComponentModel;
+using System.Runtime.InteropServices;
+using Rubberduck.Resources.Registration;
+
+// ReSharper disable InconsistentNaming
+// The parameters on RD's public interfaces are following VBA conventions not C# conventions to stop the
+// obnoxious "Can I haz all identifiers with the same casing" behavior of the VBE.
+
+namespace Rubberduck.UnitTesting
+{
+ internal class MkDirParams : IMkDirParams
+ {
+ public string Path { get; } = nameof(Path);
+ }
+}
diff --git a/Rubberduck.Main/ComClientLibrary/UnitTesting/ParameterInfo/MsgBoxParams.cs b/Rubberduck.Main/ComClientLibrary/UnitTesting/ParameterInfo/MsgBoxParams.cs
new file mode 100644
index 0000000000..3b85a67cf1
--- /dev/null
+++ b/Rubberduck.Main/ComClientLibrary/UnitTesting/ParameterInfo/MsgBoxParams.cs
@@ -0,0 +1,19 @@
+using System.ComponentModel;
+using System.Runtime.InteropServices;
+using Rubberduck.Resources.Registration;
+
+// ReSharper disable InconsistentNaming
+// The parameters on RD's public interfaces are following VBA conventions not C# conventions to stop the
+// obnoxious "Can I haz all identifiers with the same casing" behavior of the VBE.
+
+namespace Rubberduck.UnitTesting
+{
+ internal class MsgBoxParams : IMsgBoxParams
+ {
+ public string Prompt { get; } = nameof(Prompt);
+ public string Buttons { get; } = nameof(Buttons);
+ public string Title { get; } = nameof(Title);
+ public string HelpFile { get; } = nameof(HelpFile);
+ public string Context { get; } = nameof(Context);
+ }
+}
diff --git a/Rubberduck.Main/ComClientLibrary/UnitTesting/ParameterInfo/Params.cs b/Rubberduck.Main/ComClientLibrary/UnitTesting/ParameterInfo/Params.cs
new file mode 100644
index 0000000000..083eb3fd69
--- /dev/null
+++ b/Rubberduck.Main/ComClientLibrary/UnitTesting/ParameterInfo/Params.cs
@@ -0,0 +1,46 @@
+using Rubberduck.Resources.Registration;
+using Rubberduck.UnitTesting;
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Linq;
+using System.Runtime.InteropServices;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace Rubberduck.UnitTesting
+{
+ [
+ ComVisible(true),
+ Guid(RubberduckGuid.ParamsClassGuid),
+ ProgId(RubberduckProgId.ParamsClassProgId),
+ ClassInterface(ClassInterfaceType.None),
+ ComDefaultInterface(typeof(IParams)),
+ EditorBrowsable(EditorBrowsableState.Always)
+ ]
+ public class Params : IParams
+ {
+ public IMsgBoxParams MsgBox { get; } = new MsgBoxParams();
+ public IInputBoxParams InputBox { get; } = new InputBoxParams();
+ public IEnvironParams Environ { get; } = new EnvironParams();
+ public IShellParams Shell { get; } = new ShellParams();
+ public ISendKeysParams SendKeys { get; } = new SendKeysParams();
+ public IKillParams Kill { get; } = new KillParams();
+ public IFileCopyParams FileCopy { get; } = new FileCopyParams();
+ public IFreeFileParams FreeFile { get; } = new FreeFileParams();
+ public IGetAttrParams GetAttr { get; } = new GetAttrParams();
+ public ISetAttrParams SetAttr { get; } = new SetAttrParams();
+ public IFileLenParams FileLen { get; } = new FileLenParams();
+ public IFileDateTimeParams FileDateTime { get; } = new FileDateTimeParams();
+ public IDirParams Dir { get; } = new DirParams();
+ public ICurDirParams CurDir { get; } = new CurDirParams();
+ public IChDirParams ChDir { get; } = new ChDirParams();
+ public IChDriveParams ChDrive { get; } = new ChDriveParams();
+ public IMkDirParams MkDir { get; } = new MkDirParams();
+ public IRmDirParams RmDir { get; } = new RmDirParams();
+ public IDeleteSettingParams DeleteSetting { get; } = new DeleteSettingParams();
+ public ISaveSettingParams SaveSetting { get; } = new SaveSettingParams();
+ public IRandomizeParams Randomize { get; } = new RandomizeParams();
+ public IRndParams Rnd { get; } = new RndParams();
+ }
+}
diff --git a/Rubberduck.Main/ComClientLibrary/UnitTesting/ParameterInfo/RandomizeParams.cs b/Rubberduck.Main/ComClientLibrary/UnitTesting/ParameterInfo/RandomizeParams.cs
new file mode 100644
index 0000000000..f41b8091c0
--- /dev/null
+++ b/Rubberduck.Main/ComClientLibrary/UnitTesting/ParameterInfo/RandomizeParams.cs
@@ -0,0 +1,15 @@
+using System.ComponentModel;
+using System.Runtime.InteropServices;
+using Rubberduck.Resources.Registration;
+
+// ReSharper disable InconsistentNaming
+// The parameters on RD's public interfaces are following VBA conventions not C# conventions to stop the
+// obnoxious "Can I haz all identifiers with the same casing" behavior of the VBE.
+
+namespace Rubberduck.UnitTesting
+{
+ internal class RandomizeParams : IRandomizeParams
+ {
+ public string Number { get; } = nameof(Number);
+ }
+}
diff --git a/Rubberduck.Main/ComClientLibrary/UnitTesting/ParameterInfo/RmDirParams.cs b/Rubberduck.Main/ComClientLibrary/UnitTesting/ParameterInfo/RmDirParams.cs
new file mode 100644
index 0000000000..b991a254fb
--- /dev/null
+++ b/Rubberduck.Main/ComClientLibrary/UnitTesting/ParameterInfo/RmDirParams.cs
@@ -0,0 +1,15 @@
+using System.ComponentModel;
+using System.Runtime.InteropServices;
+using Rubberduck.Resources.Registration;
+
+// ReSharper disable InconsistentNaming
+// The parameters on RD's public interfaces are following VBA conventions not C# conventions to stop the
+// obnoxious "Can I haz all identifiers with the same casing" behavior of the VBE.
+
+namespace Rubberduck.UnitTesting
+{
+ internal class RmDirParams : IRmDirParams
+ {
+ public string Path { get; } = nameof(Path);
+ }
+}
diff --git a/Rubberduck.Main/ComClientLibrary/UnitTesting/ParameterInfo/RndParams.cs b/Rubberduck.Main/ComClientLibrary/UnitTesting/ParameterInfo/RndParams.cs
new file mode 100644
index 0000000000..0def13b3a3
--- /dev/null
+++ b/Rubberduck.Main/ComClientLibrary/UnitTesting/ParameterInfo/RndParams.cs
@@ -0,0 +1,15 @@
+using System.ComponentModel;
+using System.Runtime.InteropServices;
+using Rubberduck.Resources.Registration;
+
+// ReSharper disable InconsistentNaming
+// The parameters on RD's public interfaces are following VBA conventions not C# conventions to stop the
+// obnoxious "Can I haz all identifiers with the same casing" behavior of the VBE.
+
+namespace Rubberduck.UnitTesting
+{
+ internal class RndParams : IRndParams
+ {
+ public string Number { get; } = nameof(Number);
+ }
+}
diff --git a/Rubberduck.Main/ComClientLibrary/UnitTesting/ParameterInfo/SaveSettingParams.cs b/Rubberduck.Main/ComClientLibrary/UnitTesting/ParameterInfo/SaveSettingParams.cs
new file mode 100644
index 0000000000..782acc9679
--- /dev/null
+++ b/Rubberduck.Main/ComClientLibrary/UnitTesting/ParameterInfo/SaveSettingParams.cs
@@ -0,0 +1,21 @@
+using System.ComponentModel;
+using System.Runtime.InteropServices;
+using Rubberduck.Resources.Registration;
+
+// ReSharper disable InconsistentNaming
+// The parameters on RD's public interfaces are following VBA conventions not C# conventions to stop the
+// obnoxious "Can I haz all identifiers with the same casing" behavior of the VBE.
+
+namespace Rubberduck.UnitTesting
+{
+ internal class SaveSettingParams : ISaveSettingParams
+ {
+ public string AppName { get; } = nameof(AppName);
+
+ public string Section { get; } = nameof(Section);
+
+ public string Key { get; } = nameof(Key);
+
+ public string Setting { get; } = nameof(Setting);
+ }
+}
diff --git a/Rubberduck.Main/ComClientLibrary/UnitTesting/ParameterInfo/SendKeysParams.cs b/Rubberduck.Main/ComClientLibrary/UnitTesting/ParameterInfo/SendKeysParams.cs
new file mode 100644
index 0000000000..bbd37079f8
--- /dev/null
+++ b/Rubberduck.Main/ComClientLibrary/UnitTesting/ParameterInfo/SendKeysParams.cs
@@ -0,0 +1,17 @@
+using System.ComponentModel;
+using System.Runtime.InteropServices;
+using Rubberduck.Resources.Registration;
+
+// ReSharper disable InconsistentNaming
+// The parameters on RD's public interfaces are following VBA conventions not C# conventions to stop the
+// obnoxious "Can I haz all identifiers with the same casing" behavior of the VBE.
+
+namespace Rubberduck.UnitTesting
+{
+ internal class SendKeysParams : ISendKeysParams
+ {
+ public string Keys { get; } = nameof(Keys);
+
+ public string Wait { get; } = nameof(Wait);
+ }
+}
diff --git a/Rubberduck.Main/ComClientLibrary/UnitTesting/ParameterInfo/SetAttrParams.cs b/Rubberduck.Main/ComClientLibrary/UnitTesting/ParameterInfo/SetAttrParams.cs
new file mode 100644
index 0000000000..7927679167
--- /dev/null
+++ b/Rubberduck.Main/ComClientLibrary/UnitTesting/ParameterInfo/SetAttrParams.cs
@@ -0,0 +1,17 @@
+using System.ComponentModel;
+using System.Runtime.InteropServices;
+using Rubberduck.Resources.Registration;
+
+// ReSharper disable InconsistentNaming
+// The parameters on RD's public interfaces are following VBA conventions not C# conventions to stop the
+// obnoxious "Can I haz all identifiers with the same casing" behavior of the VBE.
+
+namespace Rubberduck.UnitTesting
+{
+ internal class SetAttrParams : ISetAttrParams
+ {
+ public string PathName { get; } = nameof(PathName);
+
+ public string Attributes { get; } = nameof(Attributes);
+ }
+}
diff --git a/Rubberduck.Main/ComClientLibrary/UnitTesting/ParameterInfo/ShellParams.cs b/Rubberduck.Main/ComClientLibrary/UnitTesting/ParameterInfo/ShellParams.cs
new file mode 100644
index 0000000000..8d6c54aa74
--- /dev/null
+++ b/Rubberduck.Main/ComClientLibrary/UnitTesting/ParameterInfo/ShellParams.cs
@@ -0,0 +1,16 @@
+using System.ComponentModel;
+using System.Runtime.InteropServices;
+using Rubberduck.Resources.Registration;
+
+// ReSharper disable InconsistentNaming
+// The parameters on RD's public interfaces are following VBA conventions not C# conventions to stop the
+// obnoxious "Can I haz all identifiers with the same casing" behavior of the VBE.
+
+namespace Rubberduck.UnitTesting
+{
+ internal class ShellParams : IShellParams
+ {
+ public string PathName { get; } = nameof(PathName);
+ public string WindowStyle { get; } = nameof(WindowStyle);
+ }
+}
diff --git a/Rubberduck.Resources/Registration/RubberduckGuid.cs b/Rubberduck.Resources/Registration/RubberduckGuid.cs
index af8ceeb3d6..a2631771b9 100644
--- a/Rubberduck.Resources/Registration/RubberduckGuid.cs
+++ b/Rubberduck.Resources/Registration/RubberduckGuid.cs
@@ -26,6 +26,33 @@ public static class RubberduckGuid
public const string IFakeGuid = UnitTestingGuidspace + "DF" + GuidSuffix;
public const string IVerifyGuid = UnitTestingGuidspace + "E0" + GuidSuffix;
public const string IStubGuid = UnitTestingGuidspace + "E1" + GuidSuffix;
+ public const string IParamsGuid = UnitTestingGuidspace + "E2" + GuidSuffix;
+
+ public const string ParamsClassGuid = UnitTestingGuidspace + "40" + GuidSuffix;
+ public const string ParamsMsgBoxGuid = UnitTestingGuidspace + "41" + GuidSuffix;
+ public const string ParamsInputBoxGuid = UnitTestingGuidspace + "42" + GuidSuffix;
+ public const string ParamsEnvironGuid = UnitTestingGuidspace + "44" + GuidSuffix;
+ public const string ParamsShellGuid = UnitTestingGuidspace + "47" + GuidSuffix;
+ public const string ParamsSendKeysGuid = UnitTestingGuidspace + "48" + GuidSuffix;
+ public const string ParamsKillGuid = UnitTestingGuidspace + "49" + GuidSuffix;
+ public const string ParamsMkDirGuid = UnitTestingGuidspace + "4A" + GuidSuffix;
+ public const string ParamsRmDirGuid = UnitTestingGuidspace + "4B" + GuidSuffix;
+ public const string ParamsChDirGuid = UnitTestingGuidspace + "4C" + GuidSuffix;
+ public const string ParamsChDriveGuid = UnitTestingGuidspace + "4D" + GuidSuffix;
+ public const string ParamsCurDirGuid = UnitTestingGuidspace + "4E" + GuidSuffix;
+ public const string ParamsRndGuid = UnitTestingGuidspace + "52" + GuidSuffix;
+ public const string ParamsDeleteSettingGuid = UnitTestingGuidspace + "53" + GuidSuffix;
+ public const string ParamsSaveSettingGuid = UnitTestingGuidspace + "54" + GuidSuffix;
+ public const string ParamsGetSettingGuid = UnitTestingGuidspace + "55" + GuidSuffix;
+ public const string ParamsRandomizeGuid = UnitTestingGuidspace + "56" + GuidSuffix;
+ public const string ParamsGetAllSettingsGuid = UnitTestingGuidspace + "57" + GuidSuffix;
+ public const string ParamsSetAttrGuid = UnitTestingGuidspace + "58" + GuidSuffix;
+ public const string ParamsGetAttrGuid = UnitTestingGuidspace + "59" + GuidSuffix;
+ public const string ParamsFileLenGuid = UnitTestingGuidspace + "5A" + GuidSuffix;
+ public const string ParamsFileDateTimeGuid = UnitTestingGuidspace + "5B" + GuidSuffix;
+ public const string ParamsFreeFileGuid = UnitTestingGuidspace + "5C" + GuidSuffix;
+ public const string ParamsDirGuid = UnitTestingGuidspace + "5E" + GuidSuffix;
+ public const string ParamsFileCopyGuid = UnitTestingGuidspace + "5F" + GuidSuffix;
// Rubberduck API Guids:
private const string ApiGuidspace = "69E0F7";
diff --git a/Rubberduck.Resources/Registration/RubberduckProgId.cs b/Rubberduck.Resources/Registration/RubberduckProgId.cs
index 7dc9f157e3..2c121c1e3a 100644
--- a/Rubberduck.Resources/Registration/RubberduckProgId.cs
+++ b/Rubberduck.Resources/Registration/RubberduckProgId.cs
@@ -17,6 +17,31 @@ public static class RubberduckProgId
public const string AssertClassProgId = BaseNamespace + "AssertClass";
public const string PermissiveAssertClassProgId = BaseNamespace + "PermissiveAssertClass";
public const string FakesProviderProgId = BaseNamespace + "FakesProvider";
+ public const string ParamsClassProgId = BaseNamespace + "ParamsClass";
+
+ public const string ParamsMsgBoxProgId = BaseNamespace + "MsgBoxParams";
+ public const string ParamsInputBoxProgId = BaseNamespace + "InputBoxParams";
+ public const string ParamsEnvironProgId = BaseNamespace + "EnvironParams";
+ public const string ParamsShellProgId = BaseNamespace + "ShellParams";
+ public const string ParamsSendKeysProgId = BaseNamespace + "SendKeysParams";
+ public const string ParamsKillProgId = BaseNamespace + "KillParams";
+ public const string ParamsMkDirProgId = BaseNamespace + "MkDirParams";
+ public const string ParamsRmDirProgId = BaseNamespace + "RmDirParams";
+ public const string ParamsChDirProgId = BaseNamespace + "ChDirParams";
+ public const string ParamsChDriveProgId = BaseNamespace + "ChDriveParams";
+ public const string ParamsCurDirProgId = BaseNamespace + "CurDirParams";
+ public const string ParamsRandomizeProgId = BaseNamespace + "RandomizeParams";
+ public const string ParamsRndProgId = BaseNamespace + "RndParams";
+ public const string ParamsDeleteSettingProgId = BaseNamespace + "DeleteSettingParams";
+ public const string ParamsSaveSettingProgId = BaseNamespace + "SaveSettingParams";
+ public const string ParamGetSettingProgId = BaseNamespace + "GetSettingParams";
+ public const string ParamsSetAttrProgId = BaseNamespace + "SetAttrParams";
+ public const string ParamsGetAttrProgId = BaseNamespace + "GetAttrParams";
+ public const string ParamsFileLenProgId = BaseNamespace + "FileLenParams";
+ public const string ParamsFileDateTimeProgId = BaseNamespace + "FileDateTimeParams";
+ public const string ParamsFreeFileProgId = BaseNamespace + "FreeFileParams";
+ public const string ParamsDirProgId = BaseNamespace + "DirParams";
+ public const string ParamsFileCopyProgId = BaseNamespace + "FileCopyParams";
public const string DebugAddinObject = BaseNamespace + "VBETypeLibsAPI";
}