Skip to content

Commit 30d1a9e

Browse files
committed
Harmonize TestModule templates
1 parent 7946d06 commit 30d1a9e

File tree

2 files changed

+49
-20
lines changed

2 files changed

+49
-20
lines changed

RetailCoder.VBE/Root/RubberduckModule.cs

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -163,9 +163,20 @@ private IEnumerable<Assembly> FindPlugins()
163163
{
164164
var assemblies = new List<Assembly>();
165165
var basePath = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
166-
assemblies.Add(Assembly.LoadFile(Path.Combine(basePath, "Rubberduck.Inspections.dll")));
167166

167+
var inspectionsAssembly = Path.Combine(basePath, "Rubberduck.Inspections.dll");
168+
if (File.Exists(inspectionsAssembly))
169+
{
170+
assemblies.Add(Assembly.LoadFile(inspectionsAssembly));
171+
}
172+
173+
//var path = Path.Combine(basePath, "Plug-ins");
168174
var path = Path.Combine(basePath, "Plug-ins");
175+
if (!Directory.Exists(path))
176+
{
177+
Directory.CreateDirectory(path);
178+
}
179+
169180
foreach (var library in Directory.EnumerateFiles(path, "*.dll"))
170181
{
171182
try

RetailCoder.VBE/UI/Command/AddTestModuleCommand.cs

Lines changed: 37 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -30,21 +30,27 @@ public AddTestModuleCommand(IVBE vbe, RubberduckParserState state, IGeneralConfi
3030
}
3131

3232
private const string FolderAnnotation = "'@Folder(\"Tests\")\r\n";
33-
private const string ModuleLateBinding = "Private Assert As Object\r\n";
34-
private const string ModuleEarlyBinding = "Private Assert As New Rubberduck.{0}AssertClass\r\n";
33+
private const string AssertLateBinding = "Private Assert As Object";
3534

36-
private const string TestModuleEmptyTemplate = "'@TestModule\r\n{0}\r\n{1}\r\n";
35+
private const string ModuleFakesProvider = "Private Fakes As {0}";
36+
private const string AssertEarlyBinding = "Private Assert As Rubberduck.{0}AssertClass";
3737

38-
private const string ModuleInitLateBinding = "Set Assert = CreateObject(\"Rubberduck.{0}AssertClass\")\r\n";
38+
private const string TestModuleEmptyTemplate = "'@TestModule\r\n{0}\r\n{1}\r\n{2}\r\n\r\n";
39+
40+
private const string ModuleInitLateBinding = "Set Assert = CreateObject(\"Rubberduck.{0}AssertClass\")";
3941
private readonly string _moduleInit = string.Concat(
40-
"'@ModuleInitialize\r\n"
41-
, "Public Sub ModuleInitialize()\r\n"
42-
, " '", RubberduckUI.UnitTest_NewModule_RunOnce, ".\r\n {0}\r\n"
43-
, "End Sub\r\n\r\n"
44-
, "'@ModuleCleanup\r\n"
45-
, "Public Sub ModuleCleanup()\r\n"
46-
, " '", RubberduckUI.UnitTest_NewModule_RunOnce, ".\r\n"
47-
, "End Sub\r\n\r\n"
42+
"'@ModuleInitialize\r\n",
43+
"Public Sub ModuleInitialize()\r\n",
44+
$" '{RubberduckUI.UnitTest_NewModule_RunOnce}.\r\n",
45+
" {0}\r\n",
46+
" {1}\r\n",
47+
"End Sub\r\n\r\n",
48+
"'@ModuleCleanup\r\n",
49+
"Public Sub ModuleCleanup()\r\n",
50+
$" '{RubberduckUI.UnitTest_NewModule_RunOnce}.\r\n",
51+
" Set Assert = Nothing\r\n",
52+
" Set Fakes = nothing\r\n",
53+
"End Sub\r\n\r\n"
4854
);
4955

5056
private readonly string _methodInit = string.Concat(
@@ -63,18 +69,30 @@ public AddTestModuleCommand(IVBE vbe, RubberduckParserState state, IGeneralConfi
6369
private string GetTestModule(IUnitTestSettings settings)
6470
{
6571
var assertClass = settings.AssertMode == AssertMode.StrictAssert ? string.Empty : "Permissive";
66-
var moduleBinding = settings.BindingMode == BindingMode.EarlyBinding
67-
? string.Format(ModuleEarlyBinding, assertClass)
68-
: ModuleLateBinding;
6972

70-
var formattedModuleTemplate = string.Format(TestModuleEmptyTemplate, FolderAnnotation, moduleBinding);
73+
bool isEarlyBinding = settings.BindingMode == BindingMode.EarlyBinding;
74+
var moduleBinding = isEarlyBinding
75+
? string.Format(AssertEarlyBinding,assertClass)
76+
: AssertLateBinding;
77+
var moduleFakes = string.Format(ModuleFakesProvider, isEarlyBinding
78+
? "Rubberduck.IFakesProvider"
79+
: "Object");
80+
81+
var formattedModuleTemplate = string.Format(TestModuleEmptyTemplate, FolderAnnotation, moduleBinding, moduleFakes);
7182

7283
if (settings.ModuleInit)
7384
{
74-
var lateBindingString = string.Format(ModuleInitLateBinding,
75-
settings.AssertMode == AssertMode.StrictAssert ? string.Empty : "Permissive");
85+
var assertLateBindingString = string.Format(ModuleInitLateBinding, assertClass);
86+
var assertEarlyBindingString = "Set Assert = New Rubberduck.AssertClass";
87+
88+
const string rdFakes = "Rubberduck.FakesProvider";
89+
var fakesEarlyBindingString = $"New {rdFakes}";
90+
var fakesLateBindingString = $"CreateObject({rdFakes})";
7691

77-
formattedModuleTemplate += string.Format(_moduleInit, settings.BindingMode == BindingMode.EarlyBinding ? string.Empty : lateBindingString);
92+
formattedModuleTemplate += string.Format(_moduleInit,
93+
isEarlyBinding ? assertEarlyBindingString : assertLateBindingString,
94+
string.Format("Set Fakes = {0}", isEarlyBinding ? fakesEarlyBindingString : fakesLateBindingString)
95+
);
7896
}
7997

8098
if (settings.MethodInit)

0 commit comments

Comments
 (0)