Skip to content

Commit 9c0adf5

Browse files
committed
Add Recommended You Do Not ChangeElements If Not Provided for templates
1 parent b1df225 commit 9c0adf5

File tree

11 files changed

+152
-74
lines changed

11 files changed

+152
-74
lines changed

FineCodeCoverageTests/FineCodeCoverageTests.csproj

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -115,15 +115,15 @@
115115
<Compile Include="MsCodeCoverage\ShimCopier_Tests.cs" />
116116
<Compile Include="MsCodeCoverage\TemplatedRunSettingsService_Tests.cs" />
117117
<Compile Include="MsCodeCoverage\CustomRunSettingsTemplateProvider_Tests.cs" />
118-
<Compile Include="MsCodeCoverage\Helpers\IXPathNavigableExtensions.cs" />
118+
<Compile Include="MsCodeCoverage\Helpers\XmlHelper.cs" />
119119
<Compile Include="MsCodeCoverage\RunSettingsHelper_Tests.cs" />
120120
<Compile Include="MsCodeCoverage\RunSettingsTemplate_Tests.cs" />
121121
<Compile Include="MsCodeCoverage\MsCodeCoverageRunSettingsService_Collect_Tests.cs" />
122122
<Compile Include="MsCodeCoverage\MsCodeCoverageRunSettingsService_IsCollecting_Tests.cs" />
123123
<Compile Include="MsCodeCoverage\MsCodeCoverageRunSettingsService_Initialize_Tests.cs" />
124124
<Compile Include="MsCodeCoverage\MsCodeCoverageRunSettingsService_IRunSettingsService_Tests.cs" />
125125
<Compile Include="MsCodeCoverage\ProjectRunSettingsGenerator_Tests.cs" />
126-
<Compile Include="MsCodeCoverage\Implementations\TestRunSettingsTemplateReplacements.cs" />
126+
<Compile Include="MsCodeCoverage\Implementations\RunSettingsTemplateReplacements.cs" />
127127
<Compile Include="MsCodeCoverage\UserRunSettingsService_AddFCCSettings_Tests.cs" />
128128
<Compile Include="MsCodeCoverage\UserRunSettingsService_Analysis_Tests.cs" />
129129
<Compile Include="MsCodeCoverage\RunSettingsTemplateReplacementsFactory_Tests.cs" />

FineCodeCoverageTests/MsCodeCoverage/Helpers/IXPathNavigableExtensions.cs renamed to FineCodeCoverageTests/MsCodeCoverage/Helpers/XmlHelper.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55

66
namespace FineCodeCoverageTests.MsCodeCoverage
77
{
8-
internal static class IXPathNavigableExtensions
8+
internal static class XmlHelper
99
{
1010
public const string XmlDeclaration = "<?xml version='1.0' encoding='utf-8'?>";
1111

FineCodeCoverageTests/MsCodeCoverage/Implementations/TestRunSettingsTemplateReplacements.cs renamed to FineCodeCoverageTests/MsCodeCoverage/Implementations/RunSettingsTemplateReplacements.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ internal class TemplateReplaceResult : ITemplateReplacementResult
99
public bool ReplacedTestAdapter { get; set; }
1010
}
1111

12-
internal class TestRunSettingsTemplateReplacements : IRunSettingsTemplateReplacements
12+
internal class RunSettingsTemplateReplacements : IRunSettingsTemplateReplacements
1313
{
1414
public string Enabled { get; set; }
1515

FineCodeCoverageTests/MsCodeCoverage/ProjectRunSettingsGenerator_Tests.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,12 +37,12 @@ internal class ProjectRunSettingsGenerator_Tests
3737
private List<ICoverageProjectRunSettings> coverageProjectsRunSettings;
3838
private string generatedRunSettingsInOutputFolderPath1;
3939
private string generatedRunSettingsInOutputFolderPath2;
40-
private const string runSettings1 = IXPathNavigableExtensions.XmlDeclaration + @"
40+
private const string runSettings1 = XmlHelper.XmlDeclaration + @"
4141
<RunSettings>
4242
<RunConfiguration/>
4343
</RunSettings>
4444
";
45-
private const string runSettings2 = IXPathNavigableExtensions.XmlDeclaration + @"
45+
private const string runSettings2 = XmlHelper.XmlDeclaration + @"
4646
<RunSettings>
4747
<RunConfiguration/>
4848
</RunSettings>

FineCodeCoverageTests/MsCodeCoverage/RunSettingsTemplate_Tests.cs

Lines changed: 53 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -9,12 +9,12 @@ namespace FineCodeCoverageTests.MsCodeCoverage
99
public class RunSettingsTemplate_Tests
1010
{
1111
[Test]
12-
public void Should_Be_Replaceable()
12+
public void Should_Be_Replaceable_With_Recommended_You_Do_Not_Change_Elements_When_Not_Provided()
1313
{
1414
var runSettingsTemplate = new RunSettingsTemplate();
1515
var template = runSettingsTemplate.ToString();
1616

17-
var replacements = new TestRunSettingsTemplateReplacements
17+
var replacements = new RunSettingsTemplateReplacements
1818
{
1919
AttributesExclude = "<AttributesExclude/>",
2020
AttributesInclude = "<AttributesInclude/>",
@@ -34,8 +34,7 @@ public void Should_Be_Replaceable()
3434
TestAdapter = "testadapter"
3535
};
3636

37-
var xmlDeclaration = "<?xml version='1.0' encoding='utf-8'?>";
38-
var expected = xmlDeclaration + $@"
37+
var expected = XmlHelper.XmlDeclaration + $@"
3938
<RunSettings>
4039
<RunConfiguration>
4140
<ResultsDirectory>{replacements.ResultsDirectory}</ResultsDirectory>
@@ -95,6 +94,10 @@ public void Should_Be_Replaceable()
9594
{replacements.PublicKeyTokensInclude}
9695
</Include>
9796
</PublicKeyTokens>
97+
<UseVerifiableInstrumentation>True</UseVerifiableInstrumentation>
98+
<AllowLowIntegrityProcesses>True</AllowLowIntegrityProcesses>
99+
<CollectFromChildProcesses>True</CollectFromChildProcesses>
100+
<CollectAspDotNet>False</CollectAspDotNet>
98101
</CodeCoverage>
99102
<Format>Cobertura</Format>
100103
<FCCGenerated/>
@@ -104,7 +107,7 @@ public void Should_Be_Replaceable()
104107
</DataCollectionRunSettings>
105108
</RunSettings>";
106109

107-
var result = runSettingsTemplate.Replace(template, replacements);
110+
var result = runSettingsTemplate.ReplaceTemplate(template, replacements);
108111

109112
XmlAssert.NoXmlDifferences(result.Replaced, expected);
110113
}
@@ -114,7 +117,7 @@ public void Should_Be_ReplacedTestAdapter_When_Template_Has_The_FCC_TestAdapter_
114117
{
115118
var runSettingsTemplate = new RunSettingsTemplate();
116119
var template = runSettingsTemplate.ToString();
117-
Assert.True(runSettingsTemplate.Replace(template, new TestRunSettingsTemplateReplacements()).ReplacedTestAdapter);
120+
Assert.True(runSettingsTemplate.ReplaceTemplate(template, new RunSettingsTemplateReplacements()).ReplacedTestAdapter);
118121
}
119122

120123
[Test]
@@ -127,8 +130,9 @@ public void Should_Be_ReplacedTestAdapter_False_When_Custom_Template_Does_Not_Ha
127130
<TestAdaptersPaths>No placeholder</TestAdaptersPaths>
128131
</RunConfiguration>
129132
</RunSettings>
130-
";
131-
Assert.False(runSettingsTemplate.Replace(customTemplate, new TestRunSettingsTemplateReplacements()).ReplacedTestAdapter);
133+
";
134+
var configuredCustomTemplate = runSettingsTemplate.ConfigureCustom(customTemplate);
135+
Assert.False(runSettingsTemplate.ReplaceTemplate(configuredCustomTemplate, new RunSettingsTemplateReplacements()).ReplacedTestAdapter);
132136
}
133137

134138
[TestCase("%fcc_testadapter%", true)]
@@ -154,6 +158,38 @@ public void Should_Not_Be_FCC_Generated_If_FCCGenerated_Element_Exists()
154158
var xpathNavigable = XDocument.Parse("<Not/>").ToXPathNavigable();
155159
Assert.False(runSettingsTemplate.FCCGenerated(xpathNavigable));
156160
}
161+
162+
[Test]
163+
public void Should_Not_Add_Recommended_You_Do_Not_Change_Elements_When_Provided()
164+
{
165+
var template = @"
166+
<RunSettings>
167+
<RunConfiguration>
168+
</RunConfiguration>
169+
<DataCollectionRunSettings>
170+
<DataCollectors>
171+
<DataCollector friendlyName='Code Coverage' enabled='{replacements.Enabled}'>
172+
<Configuration>
173+
<CodeCoverage>
174+
<UseVerifiableInstrumentation>False</UseVerifiableInstrumentation>
175+
<AllowLowIntegrityProcesses>False</AllowLowIntegrityProcesses>
176+
<CollectFromChildProcesses>False</CollectFromChildProcesses>
177+
<CollectAspDotNet>True</CollectAspDotNet>
178+
</CodeCoverage>
179+
<Format>Cobertura</Format>
180+
<FCCGenerated/>
181+
</Configuration>
182+
</DataCollector>
183+
</DataCollectors>
184+
</DataCollectionRunSettings>
185+
</RunSettings>";
186+
187+
var runSettingsTemplate = new RunSettingsTemplate();
188+
var result = runSettingsTemplate.ReplaceTemplate(template, new RunSettingsTemplateReplacements());
189+
190+
XmlAssert.NoXmlDifferences(result.Replaced, template);
191+
192+
}
157193
}
158194

159195
public class RunSettingsTemplate_ConfigureCustom_Tests
@@ -180,7 +216,7 @@ public void Should_Add_Replaceable_RunConfiguration_If_Not_Present()
180216
</DataCollectionRunSettings>
181217
</RunSettings>";
182218

183-
var replacements = new TestRunSettingsTemplateReplacements
219+
var replacements = new RunSettingsTemplateReplacements
184220
{
185221
ResultsDirectory = "results directory",
186222
TestAdapter = "ms collector path"
@@ -228,7 +264,7 @@ public void Should_Add_Replaceable_ResultsDirectory_And_TestAdaptersPath_If_Not_
228264
</DataCollectionRunSettings>
229265
</RunSettings>";
230266

231-
var replacements = new TestRunSettingsTemplateReplacements
267+
var replacements = new RunSettingsTemplateReplacements
232268
{
233269
ResultsDirectory = "results directory",
234270
TestAdapter = "ms collector path"
@@ -290,7 +326,7 @@ private void AddedReplaceableMsDataCollectorTest(string customDataCollectionPart
290326
{customDataCollectionPart}
291327
</RunSettings>";
292328

293-
var replacements = new TestRunSettingsTemplateReplacements
329+
var replacements = new RunSettingsTemplateReplacements
294330
{
295331
AttributesExclude = "<AttributesExclude/>",
296332
AttributesInclude = "<AttributesInclude/>",
@@ -394,7 +430,7 @@ public void Should_AddEnabledReplacementAttributeIfNotPresent_To_Existing_Ms_Dat
394430
</DataCollectionRunSettings>
395431
</RunSettings>";
396432

397-
var replacements = new TestRunSettingsTemplateReplacements
433+
var replacements = new RunSettingsTemplateReplacements
398434
{
399435
Enabled = "enabledreplaced"
400436
};
@@ -434,7 +470,7 @@ public void Should_Add_Cobertura_Format_To_Existing_Configuration_Element_If_Not
434470
</DataCollectionRunSettings>
435471
</RunSettings>";
436472

437-
var replacements = new TestRunSettingsTemplateReplacements
473+
var replacements = new RunSettingsTemplateReplacements
438474
{
439475
};
440476

@@ -474,7 +510,7 @@ public void Should_Correct_Existing_Format_To_Cobertura_When_Different_Format()
474510
</DataCollectionRunSettings>
475511
</RunSettings>";
476512

477-
var replacements = new TestRunSettingsTemplateReplacements
513+
var replacements = new RunSettingsTemplateReplacements
478514
{
479515
};
480516

@@ -513,7 +549,7 @@ public void Should_Add_FCCGenerated_To_Existing_Configuration_Element()
513549
</DataCollectionRunSettings>
514550
</RunSettings>";
515551

516-
var replacements = new TestRunSettingsTemplateReplacements
552+
var replacements = new RunSettingsTemplateReplacements
517553
{
518554
};
519555

@@ -548,7 +584,7 @@ public void Should_Add_Configuration_Element_If_Not_Present_To_Existing_Ms_DataC
548584
</DataCollectionRunSettings>
549585
</RunSettings>";
550586

551-
var replacements = new TestRunSettingsTemplateReplacements
587+
var replacements = new RunSettingsTemplateReplacements
552588
{
553589
};
554590

@@ -576,7 +612,7 @@ private void ConfiguredCustomReplaceTest(string custom,string expected,IRunSetti
576612

577613
var customTemplate = runSettingsTemplate.ConfigureCustom(custom);
578614

579-
var replaced = runSettingsTemplate.Replace(customTemplate, replacements).Replaced;
615+
var replaced = runSettingsTemplate.Replace(customTemplate, replacements);
580616

581617
XmlAssert.NoXmlDifferences(replaced, expected);
582618
}

FineCodeCoverageTests/MsCodeCoverage/TemplatedRunSettingsService_Tests.cs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ public async Task Should_Create_Run_Settings_From_Template()
3232
var mockRunSettingsTemplate = autoMocker.GetMock<IRunSettingsTemplate>();
3333
mockRunSettingsTemplate.Setup(runSettingsTemplate => runSettingsTemplate.ToString()).Returns("<MockRunSettingsTemplate/>");
3434

35-
var runSettingsTemplateReplacements = new TestRunSettingsTemplateReplacements();
35+
var runSettingsTemplateReplacements = new RunSettingsTemplateReplacements();
3636
var mockRunSettingsTemplateReplacementFactory = autoMocker.GetMock<IRunSettingsTemplateReplacementsFactory>();
3737
mockRunSettingsTemplateReplacementFactory.Setup(
3838
runSettingsTemplateReplacementsFactory =>
@@ -42,7 +42,7 @@ public async Task Should_Create_Run_Settings_From_Template()
4242
var result = await templatedRunSettingsService.GenerateAsync(coverageProjects, "SolutionDirectory", "FccTestAdapterPath");
4343

4444
mockRunSettingsTemplate.Verify(
45-
runSettingsTemplate => runSettingsTemplate.Replace(
45+
runSettingsTemplate => runSettingsTemplate.ReplaceTemplate(
4646
"<MockRunSettingsTemplate/>",
4747
runSettingsTemplateReplacements)
4848
);
@@ -71,7 +71,7 @@ public async Task Should_Create_Run_Settings_From_Configured_Custom_Template_If_
7171

7272

7373
mockRunSettingsTemplate.Verify(
74-
runSettingsTemplate => runSettingsTemplate.Replace(
74+
runSettingsTemplate => runSettingsTemplate.ReplaceTemplate(
7575
"<ConfiguredCustom/>",
7676
runSettingsTemplateReplacements)
7777
);
@@ -148,7 +148,7 @@ public async Task Should_Return_A_Result_With_No_ExceptionReason_When_No_Excepti
148148
var mockRunSettingsTemplate = autoMocker.GetMock<IRunSettingsTemplate>();
149149
mockRunSettingsTemplate.SetupSequence(
150150
runSettingsTemplate =>
151-
runSettingsTemplate.Replace(It.IsAny<string>(), It.IsAny<IRunSettingsTemplateReplacements>())
151+
runSettingsTemplate.ReplaceTemplate(It.IsAny<string>(), It.IsAny<IRunSettingsTemplateReplacements>())
152152
).Returns(
153153
new TemplateReplaceResult
154154
{
@@ -192,7 +192,7 @@ private void SetupReplaceResult(ITemplateReplacementResult templateReplacementRe
192192
var mockRunSettingsTemplate = autoMocker.GetMock<IRunSettingsTemplate>();
193193
mockRunSettingsTemplate.Setup(
194194
runSettingsTemplate =>
195-
runSettingsTemplate.Replace(It.IsAny<string>(), It.IsAny<IRunSettingsTemplateReplacements>())
195+
runSettingsTemplate.ReplaceTemplate(It.IsAny<string>(), It.IsAny<IRunSettingsTemplateReplacements>())
196196
).Returns(templateReplacementResult);
197197
}
198198

@@ -206,7 +206,7 @@ private IEnumerable<ICoverageProjectRunSettings> GetWriteProjectsRunSettingsAsyn
206206

207207
private IRunSettingsTemplateReplacements SetupReplacements()
208208
{
209-
var runSettingsTemplateReplacements = new TestRunSettingsTemplateReplacements();
209+
var runSettingsTemplateReplacements = new RunSettingsTemplateReplacements();
210210
var mockRunSettingsTemplateReplacementFactory = autoMocker.GetMock<IRunSettingsTemplateReplacementsFactory>();
211211
mockRunSettingsTemplateReplacementFactory.Setup(
212212
runSettingsTemplateReplacementsFactory =>

0 commit comments

Comments
 (0)