@@ -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 }
0 commit comments