@@ -85,7 +85,7 @@ public void Should_Have_NewCodeTracker_When_CoverageContentType_Has_LineExcluder
8585
8686 var containingCodeTrackedLinesBuilder = autoMoqer . Create < ContainingCodeTrackedLinesBuilder > ( ) ;
8787
88- containingCodeTrackedLinesBuilder . Create ( new List < ILine > { } , mockTextSnapshot . Object ) ;
88+ containingCodeTrackedLinesBuilder . Create ( new List < ILine > { } , mockTextSnapshot . Object , "" ) ;
8989
9090 mockContainingCodeTrackedLinesFactory . VerifyAll ( ) ;
9191 }
@@ -116,42 +116,41 @@ public void Should_Use_CoverageContentType_FileCodeSpanRangeService_When_UseFile
116116
117117 var containingCodeTrackedLinesBuilder = autoMoqer . Create < ContainingCodeTrackedLinesBuilder > ( ) ;
118118
119- containingCodeTrackedLinesBuilder . Create ( new List < ILine > { } , mockTextSnapshot . Object ) ;
119+ containingCodeTrackedLinesBuilder . Create ( new List < ILine > { } , mockTextSnapshot . Object , "" ) ;
120120
121121 mockContainingCodeTrackedLinesFactory . VerifyAll ( ) ;
122122 }
123123
124- [ Test ]
125- public void Should_Create_Non_Tracking_When_Coverage_Lines_Not_Within_TextSnapshot ( )
124+ [ TestCase ( true ) ]
125+ [ TestCase ( false ) ]
126+ public void Should_Create_Null_TrackedLines__When_Coverage_Lines_Not_Within_TextSnapshot ( bool inSnapshot )
126127 {
127128 var line1 = new Line ( 1 ) ;
128- var line2 = new Line ( 100 ) ;
129+ var line2 = new Line ( inSnapshot ? 2 : 100 ) ;
129130
130131 var mockTextSnapshot = new Mock < ITextSnapshot > ( ) ;
131132 mockTextSnapshot . SetupGet ( textSnapshot => textSnapshot . ContentType . TypeName ) . Returns ( "contenttypename" ) ;
132133 mockTextSnapshot . SetupGet ( textSnapshot => textSnapshot . LineCount ) . Returns ( 5 ) ;
133134 var autoMoqer = new AutoMoqer ( ) ;
134135
135- var mockContainingCodeTrackedLinesFactory = autoMoqer . GetMock < IContainingCodeTrackedLinesFactory > ( ) ;
136136 var trackedLinesFromFactory = new Mock < IContainingCodeTrackerTrackedLines > ( ) . Object ;
137137
138- mockContainingCodeTrackedLinesFactory . Setup ( containingCodeTrackedLinesFactory => containingCodeTrackedLinesFactory . Create (
139- new List < IContainingCodeTracker > { } ,
140- null ,
141- null
142- ) ) . Returns ( trackedLinesFromFactory ) ;
143138 var mockCoverageContentType = new Mock < ICoverageContentType > ( ) ;
144139 mockCoverageContentType . SetupGet ( coverageContentType => coverageContentType . ContentTypeName ) . Returns ( "contenttypename" ) ;
145- mockCoverageContentType . SetupGet ( coverageContentType => coverageContentType . FileCodeSpanRangeService ) . Returns ( new Mock < IFileCodeSpanRangeService > ( ) . Object ) ;
146- mockCoverageContentType . SetupGet ( coverageContentTyoe => coverageContentTyoe . UseFileCodeSpanRangeServiceForChanges ) . Returns ( true ) ;
147- mockCoverageContentType . SetupGet ( coverageContentType => coverageContentType . LineExcluder ) . Returns ( new Mock < ILineExcluder > ( ) . Object ) ;
148140 autoMoqer . SetInstance ( new ICoverageContentType [ ] { mockCoverageContentType . Object } ) ;
149141
150142 var containingCodeTrackedLinesBuilder = autoMoqer . Create < ContainingCodeTrackedLinesBuilder > ( ) ;
151143
152- containingCodeTrackedLinesBuilder . Create ( new List < ILine > { line1 , line2 } , mockTextSnapshot . Object ) ;
144+ var trackedLines = containingCodeTrackedLinesBuilder . Create ( new List < ILine > { line1 , line2 } , mockTextSnapshot . Object , "" ) ;
153145
154- mockContainingCodeTrackedLinesFactory . VerifyAll ( ) ;
146+ if ( inSnapshot )
147+ {
148+ Assert . IsNotNull ( trackedLines ) ;
149+ }
150+ else
151+ {
152+ Assert . IsNull ( trackedLines ) ;
153+ }
155154 }
156155
157156 [ TestCase ( ContainingCodeTrackerType . CoverageLines , 1 , DynamicCoverageType . Covered , true , true ) ]
@@ -205,7 +204,7 @@ bool newLines
205204 }
206205 else
207206 {
208- Assert . Null ( serializedEditorDynamicCoverage . NewCodeLineNumbers ) ;
207+ Assert . IsEmpty ( serializedEditorDynamicCoverage . NewCodeLineNumbers ) ;
209208 }
210209 Assert . That ( serializedEditorDynamicCoverage . Text , Is . EqualTo ( "text" ) ) ;
211210 var serializedContainingCodeTracker = serializedEditorDynamicCoverage . SerializedContainingCodeTrackers . Single ( ) ;
@@ -217,34 +216,21 @@ bool newLines
217216 Assert . That ( serializedEditorDynamicCoverage . UsedFileCodeSpanRangeService , Is . EqualTo ( usedFileCodeSpanRangeService ) ) ;
218217 }
219218
220- [ Test ]
221- public void Should_Deserialize_As_Empty_TrackedLines_If_Text_Has_Changed_Outside_Editor ( )
219+ [ TestCase ( true ) ]
220+ [ TestCase ( false ) ]
221+ public void Should_Deserialize_AsNull_TrackedLines_If_Text_Has_Changed_Outside_Editor ( bool textChanged )
222222 {
223223 var autoMoqer = new AutoMoqer ( ) ;
224- var mockNewCodeTrackerFactory = autoMoqer . GetMock < INewCodeTrackerFactory > ( ) ;
225- mockNewCodeTrackerFactory . Setup ( newCodeTrackerFactory => newCodeTrackerFactory . Create ( It . IsAny < ILineExcluder > ( ) , It . IsAny < List < int > > ( ) , It . IsAny < ITextSnapshot > ( ) ) )
226- . Returns ( new Mock < INewCodeTracker > ( ) . Object ) ;
227224
228225 var mockTextSnaphot = new Mock < ITextSnapshot > ( ) ;
229226 mockTextSnaphot . SetupGet ( textSnapshot => textSnapshot . ContentType . TypeName )
230227 . Returns ( "contenttypename" ) ;
231- mockTextSnaphot . Setup ( textSnapshot => textSnapshot . GetText ( ) ) . Returns ( "changedtext" ) ;
228+ mockTextSnaphot . Setup ( textSnapshot => textSnapshot . GetText ( ) ) . Returns ( textChanged ? "changedtext" : "text ") ;
232229
233- var newLineExcluder = new Mock < ILineExcluder > ( ) . Object ;
234230 var mockCoverageContentType = new Mock < ICoverageContentType > ( ) ;
235231 mockCoverageContentType . SetupGet ( coverageContentType => coverageContentType . ContentTypeName )
236232 . Returns ( "contenttypename" ) ;
237- mockCoverageContentType . SetupGet ( coverageContentType => coverageContentType . LineExcluder ) . Returns ( newLineExcluder ) ;
238233 autoMoqer . SetInstance ( new ICoverageContentType [ ] { mockCoverageContentType . Object } ) ;
239-
240- var mockContainingCodeTrackedLinesFactory = autoMoqer . GetMock < IContainingCodeTrackedLinesFactory > ( ) ;
241- var containingCodeTrackerTrackedLinesFromFactory = new Mock < IContainingCodeTrackerTrackedLines > ( ) . Object ;
242- mockContainingCodeTrackedLinesFactory . Setup (
243- containingCodeTrackedLinesFactory => containingCodeTrackedLinesFactory . Create (
244- new List < IContainingCodeTracker > ( ) ,
245- null ,
246- null
247- ) ) . Returns ( containingCodeTrackerTrackedLinesFromFactory ) ;
248234
249235 var mockJsonConvertService = autoMoqer . GetMock < IJsonConvertService > ( ) ;
250236 mockJsonConvertService . Setup ( jsonConvertService => jsonConvertService . DeserializeObject < SerializedEditorDynamicCoverage > ( "serializedState" ) )
@@ -255,11 +241,18 @@ public void Should_Deserialize_As_Empty_TrackedLines_If_Text_Has_Changed_Outside
255241
256242 var containingCodeTrackedLinesBuilder = autoMoqer . Create < ContainingCodeTrackedLinesBuilder > ( ) ;
257243
244+ var deserializedTrackedLines = containingCodeTrackedLinesBuilder . Create (
245+ "serializedState" , mockTextSnaphot . Object , "" ) ;
258246
259- var containingCodeTrackerTrackedLinesWithState = containingCodeTrackedLinesBuilder . Create ( "serializedState" , mockTextSnaphot . Object ) as ContainingCodeTrackerTrackedLinesWithState ;
247+ if ( textChanged )
248+ {
249+ Assert . IsNull ( deserializedTrackedLines ) ;
250+ }
251+ else
252+ {
253+ Assert . IsNotNull ( deserializedTrackedLines ) ;
254+ }
260255
261- Assert . False ( containingCodeTrackerTrackedLinesWithState . UsedFileCodeSpanRangeService ) ;
262- Assert . That ( containingCodeTrackerTrackedLinesWithState . Wrapped , Is . SameAs ( containingCodeTrackerTrackedLinesFromFactory ) ) ;
263256 }
264257 }
265258
@@ -301,7 +294,7 @@ public void Should_Create_CoverageLines_ContainingCodeTracker_For_Each_Line_When
301294
302295 var containingCodeTrackedLinesBuilder = autoMoqer . Create < ContainingCodeTrackedLinesBuilder > ( ) ;
303296
304- var trackedLinesWithState = containingCodeTrackedLinesBuilder . Create ( new List < ILine > { line1 , line2 } , mockTextSnapshot . Object ) as ContainingCodeTrackerTrackedLinesWithState ;
297+ var trackedLinesWithState = containingCodeTrackedLinesBuilder . Create ( new List < ILine > { line1 , line2 } , mockTextSnapshot . Object , "" ) as ContainingCodeTrackerTrackedLinesWithState ;
305298
306299 Assert . False ( trackedLinesWithState . UsedFileCodeSpanRangeService ) ;
307300 Assert . That ( trackedLinesWithState . Wrapped , Is . SameAs ( trackedLinesFromFactory ) ) ;
@@ -373,7 +366,7 @@ List<IContainingCodeTracker> expectedOrderedContainingCodeTrackers
373366
374367 var containingCodeTrackedLinesBuilder = autoMoqer . Create < ContainingCodeTrackedLinesBuilder > ( ) ;
375368
376- var trackedLinesWithState = containingCodeTrackedLinesBuilder . Create ( lines , mockTextSnapshot . Object ) as ContainingCodeTrackerTrackedLinesWithState ;
369+ var trackedLinesWithState = containingCodeTrackedLinesBuilder . Create ( lines , mockTextSnapshot . Object , "" ) as ContainingCodeTrackerTrackedLinesWithState ;
377370
378371 Assert . That ( trackedLinesWithState . Wrapped , Is . SameAs ( trackedLinesFromFactory ) ) ;
379372 Assert . True ( trackedLinesWithState . UsedFileCodeSpanRangeService ) ;
@@ -705,7 +698,7 @@ private void DeserializesContainingCodeTrackerTest(
705698 var containingCodeTrackedLinesBuilder = autoMoqer . Create < ContainingCodeTrackedLinesBuilder > ( ) ;
706699
707700
708- var containingCodeTrackerTrackedLinesWithState = containingCodeTrackedLinesBuilder . Create ( "serializedState" , mockTextSnaphot . Object ) as ContainingCodeTrackerTrackedLinesWithState ;
701+ var containingCodeTrackerTrackedLinesWithState = containingCodeTrackedLinesBuilder . Create ( "serializedState" , mockTextSnaphot . Object , "" ) as ContainingCodeTrackerTrackedLinesWithState ;
709702
710703 Assert . True ( containingCodeTrackerTrackedLinesWithState . UsedFileCodeSpanRangeService ) ;
711704 Assert . That ( containingCodeTrackerTrackedLinesWithState . Wrapped , Is . SameAs ( containingCodeTrackerTrackedLinesFromFactory ) ) ;
@@ -839,7 +832,7 @@ public void Should_Recreate_With_No_New_CodeTracker_If_No_Line_Excluder()
839832 var containingCodeTrackedLinesBuilder = autoMoqer . Create < ContainingCodeTrackedLinesBuilder > ( ) ;
840833
841834
842- var containingCodeTrackerTrackedLinesWithState = containingCodeTrackedLinesBuilder . Create ( "serializedState" , mockTextSnaphot . Object ) as ContainingCodeTrackerTrackedLinesWithState ;
835+ var containingCodeTrackerTrackedLinesWithState = containingCodeTrackedLinesBuilder . Create ( "serializedState" , mockTextSnaphot . Object , "" ) as ContainingCodeTrackerTrackedLinesWithState ;
843836
844837 Assert . That ( containingCodeTrackerTrackedLinesWithState . Wrapped , Is . SameAs ( containingCodeTrackerTrackedLinesFromFactory ) ) ;
845838
@@ -906,7 +899,7 @@ public void Should_Recreated_With_NewCodeTracker_With_Lines_From_CodeSpanRanges(
906899 var containingCodeTrackedLinesBuilder = autoMoqer . Create < ContainingCodeTrackedLinesBuilder > ( ) ;
907900
908901
909- var containingCodeTrackerTrackedLinesWithState = containingCodeTrackedLinesBuilder . Create ( "serializedState" , mockTextSnaphot . Object ) as ContainingCodeTrackerTrackedLinesWithState ;
902+ var containingCodeTrackerTrackedLinesWithState = containingCodeTrackedLinesBuilder . Create ( "serializedState" , mockTextSnaphot . Object , "" ) as ContainingCodeTrackerTrackedLinesWithState ;
910903
911904 Assert . That ( containingCodeTrackerTrackedLinesWithState . Wrapped , Is . SameAs ( containingCodeTrackerTrackedLinesFromFactory ) ) ;
912905 }
@@ -949,7 +942,7 @@ public void Should_Create_CoverageLines_ContainingCodeTracker_For_Each_Line()
949942
950943 var containingCodeTrackedLinesBuilder = autoMoqer . Create < ContainingCodeTrackedLinesBuilder > ( ) ;
951944
952- var trackedLinesWithState = containingCodeTrackedLinesBuilder . Create ( new List < ILine > { line1 , line2 } , mockTextSnapshot . Object ) as ContainingCodeTrackerTrackedLinesWithState ;
945+ var trackedLinesWithState = containingCodeTrackedLinesBuilder . Create ( new List < ILine > { line1 , line2 } , mockTextSnapshot . Object , "" ) as ContainingCodeTrackerTrackedLinesWithState ;
953946
954947 Assert . False ( trackedLinesWithState . UsedFileCodeSpanRangeService ) ;
955948 Assert . That ( trackedLinesWithState . Wrapped , Is . SameAs ( trackedLinesFromFactory ) ) ;
@@ -1030,7 +1023,7 @@ CoverageType expectedAdjustedCoverageType
10301023 var containingCodeTrackedLinesBuilder = autoMoqer . Create < ContainingCodeTrackedLinesBuilder > ( ) ;
10311024
10321025
1033- var containingCodeTrackerTrackedLinesWithState = containingCodeTrackedLinesBuilder . Create ( "serializedState" , mockTextSnaphot . Object ) as ContainingCodeTrackerTrackedLinesWithState ;
1026+ var containingCodeTrackerTrackedLinesWithState = containingCodeTrackedLinesBuilder . Create ( "serializedState" , mockTextSnaphot . Object , "" ) as ContainingCodeTrackerTrackedLinesWithState ;
10341027 Assert . False ( containingCodeTrackerTrackedLinesWithState . UsedFileCodeSpanRangeService ) ;
10351028 Assert . That ( containingCodeTrackerTrackedLinesWithState . Wrapped , Is . SameAs ( containingCodeTrackerTrackedLinesFromFactory ) ) ;
10361029
@@ -1084,7 +1077,7 @@ public void Should_Use_NewCodeTracker_With_NewLines_And_Line_Excluder_If_Coverag
10841077 var containingCodeTrackedLinesBuilder = autoMoqer . Create < ContainingCodeTrackedLinesBuilder > ( ) ;
10851078
10861079
1087- var containingCodeTrackerTrackedLinesWithState = containingCodeTrackedLinesBuilder . Create ( "serializedState" , mockTextSnaphot . Object ) as ContainingCodeTrackerTrackedLinesWithState ;
1080+ var containingCodeTrackerTrackedLinesWithState = containingCodeTrackedLinesBuilder . Create ( "serializedState" , mockTextSnaphot . Object , "" ) as ContainingCodeTrackerTrackedLinesWithState ;
10881081
10891082 Assert . That ( containingCodeTrackerTrackedLinesWithState . Wrapped , Is . SameAs ( containingCodeTrackerTrackedLinesFromFactory ) ) ;
10901083
0 commit comments