Skip to content

Commit 2da4e8e

Browse files
committed
missed test of determination of merge from attributes
1 parent b247f23 commit 2da4e8e

File tree

1 file changed

+80
-2
lines changed

1 file changed

+80
-2
lines changed

FineCodeCoverageTests/CoverageProject_Settings_Tests.cs

Lines changed: 80 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -258,7 +258,7 @@ public void Should_Overwrite_String_Array_By_Default()
258258
var mockAppOptions = new Mock<IAppOptions>();
259259
mockAppOptions.SetupAllProperties();
260260
var appOptions = mockAppOptions.Object;
261-
261+
appOptions.Exclude = new string[] { "global" };
262262
var stringArrayElement = XElement.Parse($@"
263263
<Root>
264264
<Exclude>
@@ -278,6 +278,84 @@ public void Should_Overwrite_String_Array_By_Default()
278278
Assert.AreEqual(new string[] { "1", "2"}, appOptions.Exclude);
279279
}
280280

281+
[Test]
282+
public void Should_Overwrite_String_Array_DefaultMerge_False()
283+
{
284+
var mockAppOptions = new Mock<IAppOptions>();
285+
mockAppOptions.SetupAllProperties();
286+
var appOptions = mockAppOptions.Object;
287+
appOptions.Exclude = new string[] { "global" };
288+
var stringArrayElement = XElement.Parse($@"
289+
<Root defaultMerge='false'>
290+
<Exclude>
291+
1
292+
2
293+
</Exclude>
294+
</Root>
295+
");
296+
297+
var settingsMerger = new SettingsMerger(null);
298+
var mergedSettings = settingsMerger.Merge(
299+
appOptions,
300+
new List<XElement> { },
301+
stringArrayElement);
302+
303+
Assert.AreSame(appOptions, mergedSettings);
304+
Assert.AreEqual(new string[] { "1", "2" }, appOptions.Exclude);
305+
}
306+
307+
[Test]
308+
public void Should_Overwrite_String_Array_DefaultMerge_True_Property_Merge_false()
309+
{
310+
var mockAppOptions = new Mock<IAppOptions>();
311+
mockAppOptions.SetupAllProperties();
312+
var appOptions = mockAppOptions.Object;
313+
appOptions.Exclude = new string[] { "global" };
314+
var stringArrayElement = XElement.Parse($@"
315+
<Root defaultMerge='true'>
316+
<Exclude merge='false'>
317+
1
318+
2
319+
</Exclude>
320+
</Root>
321+
");
322+
323+
var settingsMerger = new SettingsMerger(null);
324+
var mergedSettings = settingsMerger.Merge(
325+
appOptions,
326+
new List<XElement> { },
327+
stringArrayElement);
328+
329+
Assert.AreSame(appOptions, mergedSettings);
330+
Assert.AreEqual(new string[] { "1", "2" }, appOptions.Exclude);
331+
}
332+
333+
[Test]
334+
public void Should_Overwrite_String_Array_DefaultMerge_Not_Bool()
335+
{
336+
var mockAppOptions = new Mock<IAppOptions>();
337+
mockAppOptions.SetupAllProperties();
338+
var appOptions = mockAppOptions.Object;
339+
appOptions.Exclude = new string[] { "global" };
340+
var stringArrayElement = XElement.Parse($@"
341+
<Root defaultMerge='xxx'>
342+
<Exclude>
343+
1
344+
2
345+
</Exclude>
346+
</Root>
347+
");
348+
349+
var settingsMerger = new SettingsMerger(null);
350+
var mergedSettings = settingsMerger.Merge(
351+
appOptions,
352+
new List<XElement> { },
353+
stringArrayElement);
354+
355+
Assert.AreSame(appOptions, mergedSettings);
356+
Assert.AreEqual(new string[] { "1", "2" }, appOptions.Exclude);
357+
}
358+
281359
[Test]
282360
public void Should_Merge_String_Array_If_DefaultMerge()
283361
{
@@ -312,7 +390,7 @@ public void Should_Merge_If_Property_Element_Merge()
312390
var appOptions = mockAppOptions.Object;
313391
appOptions.Exclude = new string[] { "global" };
314392
var stringArrayElement = XElement.Parse($@"
315-
<Root>
393+
<Root defaultMerge='false'>
316394
<Exclude merge='true'>
317395
1
318396
2

0 commit comments

Comments
 (0)