@joebigelow / wix-1 / commits / b123126f

Extract common code to base class and use common mock messaging

Rob Mensching committed Jun 12, 2020 at 06:53 UTC b123126f6c3511259e4520cc7151e9dce9c534bc
3 files changed +69 -74
src/test/WixToolsetTest.Converters/BaseConverterFixture.cs new
+47
@@ -0,0 +1,47 @@
1 +// Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information.
2 +
3 +namespace WixToolsetTest.Converters
4 +{
5 + using System;
6 + using System.IO;
7 + using System.Text;
8 + using System.Xml.Linq;
9 + using Xunit;
10 +
11 + public abstract class BaseConverterFixture
12 + {
13 + protected static string UnformattedDocumentString(XDocument document)
14 + {
15 + var sb = new StringBuilder();
16 +
17 + using (var writer = new StringWriter(sb))
18 + {
19 + document.Save(writer, SaveOptions.DisableFormatting);
20 + }
21 +
22 + return sb.ToString();
23 + }
24 +
25 + protected static string[] UnformattedDocumentLines(XDocument document)
26 + {
27 + var sb = new StringBuilder();
28 +
29 + using (var writer = new StringWriter(sb))
30 + {
31 + document.Save(writer, SaveOptions.DisableFormatting);
32 + }
33 +
34 + return sb.ToString().Split(new[] { '\r', '\n' }, StringSplitOptions.RemoveEmptyEntries);
35 + }
36 +
37 + protected static void CompareLineByLine(string[] expectedLines, string[] actualLines)
38 + {
39 + for (var i = 0; i < expectedLines.Length; ++i)
40 + {
41 + Assert.True(actualLines.Length > i, $"{i}: Expected file longer than actual file");
42 + Assert.Equal($"{i}: {expectedLines[i]}", $"{i}: {actualLines[i]}");
43 + }
44 + Assert.True(expectedLines.Length == actualLines.Length, "Actual file longer than expected file");
45 + }
46 + }
47 +}
src/test/WixToolsetTest.Converters/ConverterFixture.cs
+22 -73
@@ -3,16 +3,12 @@
3 namespace WixToolsetTest.Converters
4 {
5 using System;
6 - using System.IO;
7 - using System.Text;
6 using System.Xml.Linq;
7 using WixToolset.Converters;
10 - using WixToolset.Data;
11 - using WixToolset.Extensibility;
12 - using WixToolset.Extensibility.Services;
8 + using WixToolsetTest.Converters.Mocks;
9 using Xunit;
10
15 - public class ConverterFixture
11 + public class ConverterFixture : BaseConverterFixture
12 {
13 private static readonly XNamespace Wix4Namespace = "http://wixtoolset.org/schemas/v4/wxs";
14
@@ -32,7 +28,7 @@ namespace WixToolsetTest.Converters
28
29 var document = XDocument.Parse(parse, LoadOptions.PreserveWhitespace | LoadOptions.SetLineInfo);
30
35 - var messaging = new DummyMessaging();
31 + var messaging = new MockMessaging();
32 var converter = new Wix3Converter(messaging, 2, null, null);
33
34 var errors = converter.ConvertDocument(document);
@@ -54,7 +50,7 @@ namespace WixToolsetTest.Converters
50
51 var document = XDocument.Parse(parse, LoadOptions.PreserveWhitespace | LoadOptions.SetLineInfo);
52
57 - var messaging = new DummyMessaging();
53 + var messaging = new MockMessaging();
54 var converter = new Wix3Converter(messaging, 4, null, null);
55
56 var errors = converter.ConvertDocument(document);
@@ -87,7 +83,7 @@ namespace WixToolsetTest.Converters
83
84 var document = XDocument.Parse(parse, LoadOptions.PreserveWhitespace | LoadOptions.SetLineInfo);
85
90 - var messaging = new DummyMessaging();
86 + var messaging = new MockMessaging();
87 var converter = new Wix3Converter(messaging, 4, null, null);
88
89 var errors = converter.ConvertDocument(document);
@@ -123,7 +119,7 @@ namespace WixToolsetTest.Converters
119
120 var document = XDocument.Parse(parse, LoadOptions.PreserveWhitespace | LoadOptions.SetLineInfo);
121
126 - var messaging = new DummyMessaging();
122 + var messaging = new MockMessaging();
123 var converter = new Wix3Converter(messaging, 4, null, null);
124
125 var conversions = converter.ConvertDocument(document);
@@ -161,7 +157,7 @@ namespace WixToolsetTest.Converters
157
158 var document = XDocument.Parse(parse, LoadOptions.PreserveWhitespace | LoadOptions.SetLineInfo);
159
164 - var messaging = new DummyMessaging();
160 + var messaging = new MockMessaging();
161 var converter = new Wix3Converter(messaging, 4, null, null);
162
163 var conversions = converter.ConvertDocument(document);
@@ -195,7 +191,7 @@ namespace WixToolsetTest.Converters
191
192 var document = XDocument.Parse(parse, LoadOptions.PreserveWhitespace | LoadOptions.SetLineInfo);
193
198 - var messaging = new DummyMessaging();
194 + var messaging = new MockMessaging();
195 var converter = new Wix3Converter(messaging, 2, null, null);
196
197 var errors = converter.ConvertDocument(document);
@@ -231,7 +227,7 @@ namespace WixToolsetTest.Converters
227
228 var document = XDocument.Parse(parse, LoadOptions.PreserveWhitespace | LoadOptions.SetLineInfo);
229
234 - var messaging = new DummyMessaging();
230 + var messaging = new MockMessaging();
231 var converter = new Wix3Converter(messaging, 2, null, null);
232
233 var errors = converter.ConvertDocument(document);
@@ -255,7 +251,7 @@ namespace WixToolsetTest.Converters
251
252 var document = XDocument.Parse(parse, LoadOptions.PreserveWhitespace | LoadOptions.SetLineInfo);
253
258 - var messaging = new DummyMessaging();
254 + var messaging = new MockMessaging();
255 var converter = new Wix3Converter(messaging, 2, null, null);
256 var errors = converter.ConvertDocument(document);
257 Assert.Equal(0, errors);
@@ -278,7 +274,7 @@ namespace WixToolsetTest.Converters
274
275 var document = XDocument.Parse(parse, LoadOptions.PreserveWhitespace | LoadOptions.SetLineInfo);
276
281 - var messaging = new DummyMessaging();
277 + var messaging = new MockMessaging();
278 var converter = new Wix3Converter(messaging, 2, null, null);
279
280 var errors = converter.ConvertDocument(document);
@@ -307,7 +303,7 @@ namespace WixToolsetTest.Converters
303
304 var document = XDocument.Parse(parse, LoadOptions.PreserveWhitespace | LoadOptions.SetLineInfo);
305
310 - var messaging = new DummyMessaging();
306 + var messaging = new MockMessaging();
307 var converter = new Wix3Converter(messaging, 2, null, null);
308
309 var errors = converter.ConvertDocument(document);
@@ -340,7 +336,7 @@ namespace WixToolsetTest.Converters
336
337 var document = XDocument.Parse(parse, LoadOptions.PreserveWhitespace | LoadOptions.SetLineInfo);
338
343 - var messaging = new DummyMessaging();
339 + var messaging = new MockMessaging();
340 var converter = new Wix3Converter(messaging, 2, null, null);
341
342 var errors = converter.ConvertDocument(document);
@@ -370,7 +366,7 @@ namespace WixToolsetTest.Converters
366
367 var document = XDocument.Parse(parse, LoadOptions.PreserveWhitespace | LoadOptions.SetLineInfo);
368
373 - var messaging = new DummyMessaging();
369 + var messaging = new MockMessaging();
370 var converter = new Wix3Converter(messaging, 2, null, null);
371
372 var errors = converter.ConvertDocument(document);
@@ -399,7 +395,7 @@ namespace WixToolsetTest.Converters
395
396 var document = XDocument.Parse(parse, LoadOptions.PreserveWhitespace | LoadOptions.SetLineInfo);
397
402 - var messaging = new DummyMessaging();
398 + var messaging = new MockMessaging();
399 var converter = new Wix3Converter(messaging, 2, null, null);
400
401 var errors = converter.ConvertDocument(document);
@@ -438,7 +434,7 @@ namespace WixToolsetTest.Converters
434
435 var document = XDocument.Parse(parse, LoadOptions.PreserveWhitespace | LoadOptions.SetLineInfo);
436
441 - var messaging = new DummyMessaging();
437 + var messaging = new MockMessaging();
438 var converter = new Wix3Converter(messaging, 2, null, null);
439
440 var errors = converter.ConvertDocument(document);
@@ -467,7 +463,7 @@ namespace WixToolsetTest.Converters
463
464 var document = XDocument.Parse(parse, LoadOptions.PreserveWhitespace | LoadOptions.SetLineInfo);
465
470 - var messaging = new DummyMessaging();
466 + var messaging = new MockMessaging();
467 var converter = new Wix3Converter(messaging, 2, null, null);
468
469 var errors = converter.ConvertDocument(document);
@@ -495,7 +491,7 @@ namespace WixToolsetTest.Converters
491
492 var document = XDocument.Parse(parse, LoadOptions.PreserveWhitespace | LoadOptions.SetLineInfo);
493
498 - var messaging = new DummyMessaging();
494 + var messaging = new MockMessaging();
495 var converter = new Wix3Converter(messaging, 2, null, null);
496
497 var errors = converter.ConvertDocument(document);
@@ -523,7 +519,7 @@ namespace WixToolsetTest.Converters
519
520 var document = XDocument.Parse(parse, LoadOptions.PreserveWhitespace | LoadOptions.SetLineInfo);
521
526 - var messaging = new DummyMessaging();
522 + var messaging = new MockMessaging();
523 var converter = new Wix3Converter(messaging, 2, null, null);
524
525 var errors = converter.ConvertDocument(document);
@@ -551,7 +547,7 @@ namespace WixToolsetTest.Converters
547
548 var document = XDocument.Parse(parse, LoadOptions.PreserveWhitespace | LoadOptions.SetLineInfo);
549
554 - var messaging = new DummyMessaging();
550 + var messaging = new MockMessaging();
551 var converter = new Wix3Converter(messaging, 2, null, null);
552
553 var errors = converter.ConvertDocument(document);
@@ -579,7 +575,7 @@ namespace WixToolsetTest.Converters
575
576 var document = XDocument.Parse(parse, LoadOptions.PreserveWhitespace | LoadOptions.SetLineInfo);
577
582 - var messaging = new DummyMessaging();
578 + var messaging = new MockMessaging();
579 var converter = new Wix3Converter(messaging, 2, null, null);
580
581 var errors = converter.ConvertDocument(document);
@@ -613,7 +609,7 @@ namespace WixToolsetTest.Converters
609
610 var document = XDocument.Parse(parse, LoadOptions.PreserveWhitespace | LoadOptions.SetLineInfo);
611
616 - var messaging = new DummyMessaging();
612 + var messaging = new MockMessaging();
613 var converter = new Wix3Converter(messaging, 2, null, null);
614
615 var errors = converter.ConvertDocument(document);
@@ -623,52 +619,5 @@ namespace WixToolsetTest.Converters
619 Assert.Equal(6, errors);
620 Assert.Equal(expected, actual);
621 }
626 -
627 - private static string UnformattedDocumentString(XDocument document)
628 - {
629 - var sb = new StringBuilder();
630 -
631 - using (var writer = new StringWriter(sb))
632 - {
633 - document.Save(writer, SaveOptions.DisableFormatting);
634 - }
635 -
636 - return sb.ToString();
637 - }
638 -
639 - private class DummyMessaging : IMessaging
640 - {
641 - public bool EncounteredError { get; set; }
642 -
643 - public int LastErrorNumber { get; set; }
644 -
645 - public bool ShowVerboseMessages { get; set; }
646 -
647 - public bool SuppressAllWarnings { get; set; }
648 -
649 - public bool WarningsAsError { get; set; }
650 -
651 - public void ElevateWarningMessage(int warningNumber)
652 - {
653 - }
654 -
655 - public string FormatMessage(Message message) => String.Empty;
656 -
657 - public void SetListener(IMessageListener listener)
658 - {
659 - }
660 -
661 - public void SuppressWarningMessage(int warningNumber)
662 - {
663 - }
664 -
665 - public void Write(Message message)
666 - {
667 - }
668 -
669 - public void Write(string message, bool verbose = false)
670 - {
671 - }
672 - }
622 }
623 }
src/test/WixToolsetTest.Converters/Mocks/MockMessaging.cs
-1
@@ -4,7 +4,6 @@ namespace WixToolsetTest.Converters.Mocks
4 {
5 using System;
6 using System.Collections.Generic;
7 - using System.Text;
7 using WixToolset.Data;
8 using WixToolset.Extensibility;
9 using WixToolset.Extensibility.Services;