Skip to content

Commit 7bee7f9

Browse files
committed
Moved unit test settings to .settings file
1 parent a1a7483 commit 7bee7f9

File tree

9 files changed

+52
-45
lines changed

9 files changed

+52
-45
lines changed

RetailCoder.VBE/Properties/Settings.Designer.cs

Lines changed: 16 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

RetailCoder.VBE/Properties/Settings.settings

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -170,5 +170,15 @@
170170
<CodeExplorer_GroupByType>false</CodeExplorer_GroupByType>
171171
&lt;/WindowSettings&gt;</Value>
172172
</Setting>
173+
<Setting Name="UnitTestSettings" Type="Rubberduck.Settings.UnitTestSettings" Scope="Application">
174+
<Value Profile="(Default)">&lt;?xml version="1.0" encoding="utf-16"?&gt;
175+
&lt;UnitTestSettings xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"&gt;
176+
&lt;BindingMode&gt;LateBinding&lt;/BindingMode&gt;
177+
&lt;AssertMode&gt;StrictAssert&lt;/AssertMode&gt;
178+
&lt;ModuleInit&gt;true&lt;/ModuleInit&gt;
179+
&lt;MethodInit&gt;true&lt;/MethodInit&gt;
180+
&lt;DefaultTestStubInNewModule&gt;false&lt;/DefaultTestStubInNewModule&gt;
181+
&lt;/UnitTestSettings&gt;</Value>
182+
</Setting>
173183
</Settings>
174184
</SettingsFile>

RetailCoder.VBE/Settings/UnitTestConfigProvider.cs

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,21 +5,22 @@ namespace Rubberduck.Settings
55
public class UnitTestConfigProvider : IConfigProvider<UnitTestSettings>
66
{
77
private readonly IPersistanceService<UnitTestSettings> _persister;
8+
private readonly UnitTestSettings _defaultSettings;
89

910
public UnitTestConfigProvider(IPersistanceService<UnitTestSettings> persister)
1011
{
1112
_persister = persister;
13+
_defaultSettings = new DefaultSettings<UnitTestSettings>().Default;
1214
}
1315

1416
public UnitTestSettings Create()
1517
{
16-
var prototype = new UnitTestSettings();
17-
return _persister.Load(prototype) ?? prototype;
18+
return _persister.Load(_defaultSettings) ?? _defaultSettings;
1819
}
1920

2021
public UnitTestSettings CreateDefaults()
2122
{
22-
return new UnitTestSettings();
23+
return _defaultSettings;
2324
}
2425

2526
public void Save(UnitTestSettings settings)

RetailCoder.VBE/Settings/UnitTestSettings.cs

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
using System;
2+
using System.Configuration;
23
using System.Xml.Serialization;
34

45
namespace Rubberduck.Settings
@@ -25,13 +26,15 @@ public interface IUnitTestSettings
2526
bool DefaultTestStubInNewModule { get; set; }
2627
}
2728

29+
[SettingsSerializeAs(SettingsSerializeAs.Xml)]
2830
[XmlType(AnonymousType = true)]
2931
public class UnitTestSettings : IUnitTestSettings, IEquatable<UnitTestSettings>
3032
{
33+
/// <Summary>
34+
/// Default constructor required for XML serialization.
35+
/// </Summary>
3136
public UnitTestSettings()
32-
: this(BindingMode.LateBinding, AssertMode.StrictAssert, true, true, false)
3337
{
34-
//empty constructor needed for serialization
3538
}
3639

3740
public UnitTestSettings(BindingMode bindingMode, AssertMode assertMode, bool moduleInit, bool methodInit, bool defaultTestStub)

RetailCoder.VBE/UI/Settings/UnitTestSettingsViewModel.cs

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -142,14 +142,7 @@ private void ExportSettings()
142142
dialog.ShowDialog();
143143
if (string.IsNullOrEmpty(dialog.FileName)) return;
144144
var service = new XmlPersistanceService<Rubberduck.Settings.UnitTestSettings> { FilePath = dialog.FileName };
145-
service.Save(new Rubberduck.Settings.UnitTestSettings
146-
{
147-
BindingMode = BindingMode,
148-
AssertMode = AssertMode,
149-
ModuleInit = ModuleInit,
150-
MethodInit = MethodInit,
151-
DefaultTestStubInNewModule = DefaultTestStubInNewModule
152-
});
145+
service.Save(new Rubberduck.Settings.UnitTestSettings(BindingMode, AssertMode, ModuleInit, MethodInit, DefaultTestStubInNewModule));
153146
}
154147
}
155148
}

RetailCoder.VBE/app.config

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -219,6 +219,18 @@
219219
</WindowSettings>
220220
</value>
221221
</setting>
222+
<setting name="UnitTestSettings" serializeAs="Xml">
223+
<value>
224+
<UnitTestSettings xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
225+
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
226+
<BindingMode>LateBinding</BindingMode>
227+
<AssertMode>StrictAssert</AssertMode>
228+
<ModuleInit>true</ModuleInit>
229+
<MethodInit>true</MethodInit>
230+
<DefaultTestStubInNewModule>false</DefaultTestStubInNewModule>
231+
</UnitTestSettings>
232+
</value>
233+
</setting>
222234
</Rubberduck.Properties.Settings>
223235
</applicationSettings>
224236
</configuration>

RubberduckTests/CodeExplorer/CodeExplorerTests.cs

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2112,14 +2112,7 @@ public void CompareByNodeType_FoldersAreSortedByName()
21122112
#region Helpers
21132113
private Configuration GetDefaultUnitTestConfig()
21142114
{
2115-
var unitTestSettings = new UnitTestSettings
2116-
{
2117-
BindingMode = BindingMode.LateBinding,
2118-
AssertMode = AssertMode.StrictAssert,
2119-
ModuleInit = true,
2120-
MethodInit = true,
2121-
DefaultTestStubInNewModule = false
2122-
};
2115+
var unitTestSettings = new UnitTestSettings(BindingMode.LateBinding, AssertMode.StrictAssert, true, true, false);
21232116

21242117
var generalSettings = new GeneralSettings
21252118
{

RubberduckTests/Commands/UnitTestCommandTests.cs

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -340,14 +340,7 @@ Private Property Set PrivateProperty(s As String)
340340

341341
private Configuration GetUnitTestConfig()
342342
{
343-
var unitTestSettings = new UnitTestSettings
344-
{
345-
BindingMode = BindingMode.EarlyBinding,
346-
AssertMode = AssertMode.StrictAssert,
347-
ModuleInit = false,
348-
MethodInit = false,
349-
DefaultTestStubInNewModule = false
350-
};
343+
var unitTestSettings = new UnitTestSettings(BindingMode.EarlyBinding, AssertMode.StrictAssert, false, false, false);
351344

352345
var userSettings = new UserSettings(null, null, null, null, unitTestSettings, null, null);
353346
return new Configuration(userSettings);

RubberduckTests/Settings/UnitTestSettingsTests.cs

Lines changed: 2 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -10,29 +10,15 @@ public class UnitTestSettingsTests
1010
{
1111
private Configuration GetDefaultConfig()
1212
{
13-
var unitTestSettings = new UnitTestSettings
14-
{
15-
BindingMode = BindingMode.LateBinding,
16-
AssertMode = AssertMode.StrictAssert,
17-
ModuleInit = true,
18-
MethodInit = true,
19-
DefaultTestStubInNewModule = false
20-
};
13+
var unitTestSettings = new UnitTestSettings(BindingMode.LateBinding, AssertMode.StrictAssert, true, true, false);
2114

2215
var userSettings = new UserSettings(null, null, null, null, unitTestSettings, null, null);
2316
return new Configuration(userSettings);
2417
}
2518

2619
private Configuration GetNondefaultConfig()
2720
{
28-
var unitTestSettings = new UnitTestSettings
29-
{
30-
BindingMode = BindingMode.EarlyBinding,
31-
AssertMode = AssertMode.PermissiveAssert,
32-
ModuleInit = false,
33-
MethodInit = false,
34-
DefaultTestStubInNewModule = true
35-
};
21+
var unitTestSettings = new UnitTestSettings(BindingMode.EarlyBinding, AssertMode.PermissiveAssert, false, false, true);
3622

3723
var userSettings = new UserSettings(null, null, null, null, unitTestSettings, null, null);
3824
return new Configuration(userSettings);

0 commit comments

Comments
 (0)