@@ -125,15 +125,16 @@ await progressReporterViewModel.Received(1)
125
125
. ExecuteTaskWithProgressAsync (
126
126
Arg . Is < TaskToPerformParams < AdapterResponseWithData < List < ServerProject > > > > ( x =>
127
127
x . ProgressStatus == UiResources . SearchingProjectInProgressText &&
128
- x . WarningText == UiResources . SearchingProjectFailedText &&
129
- x . AfterSuccess == testSubject . InitProjects ) ) ;
128
+ x . WarningText == UiResources . SearchingProjectFailedText ) ) ;
130
129
}
131
130
132
131
[ TestMethod ]
133
- public void ProjectSearchTerm_WithEmptyTerm_ShouldNotUpdateSearchResult ( )
132
+ public void ProjectSearchTerm_WithEmptyTerm_ShouldRestoreInitialListOfProjects ( )
134
133
{
135
134
var viewModel = CreateInitializedTestSubjectWitNotMockedProgress ( ) ;
135
+ slCoreConnectionAdapter . FuzzySearchProjectsAsync ( testSubject . ServerConnection , Arg . Any < string > ( ) ) . Returns ( new AdapterResponseWithData < List < ServerProject > > ( true , [ ] ) ) ;
136
136
137
+ viewModel . ProjectSearchTerm = "myProject" ;
137
138
viewModel . ProjectSearchTerm = "" ;
138
139
139
140
viewModel . ProjectResults . Should ( ) . BeEquivalentTo ( AnInitialListOfProjects ) ;
@@ -196,6 +197,34 @@ await progressReporterViewModel.Received(1)
196
197
x . AfterSuccess == testSubject . InitProjects ) ) ;
197
198
}
198
199
200
+ [ TestMethod ]
201
+ public async Task InitializeProjectWithProgressAsync_OnSuccess_CachesInitialServerProjects ( )
202
+ {
203
+ var viewModel = CreateTestSubjectWithNotMockedProgress ( ) ;
204
+ MockTrySonarQubeConnection ( AConnectionInfo , success : true ) ;
205
+ var expectedServerProjects = new List < ServerProject > { new ( "proj1" , "name1" ) , new ( "proj2" , "name2" ) } ;
206
+ slCoreConnectionAdapter . GetAllProjectsAsync ( Arg . Any < ServerConnection > ( ) )
207
+ . Returns ( new AdapterResponseWithData < List < ServerProject > > ( true , expectedServerProjects ) ) ;
208
+
209
+ await viewModel . InitializeProjectWithProgressAsync ( ) ;
210
+
211
+ viewModel . InitialServerProjects . Should ( ) . BeEquivalentTo ( expectedServerProjects ) ;
212
+ }
213
+
214
+ [ TestMethod ]
215
+ public async Task InitializeProjectWithProgressAsync_OnFailure_InitialServerProjectsIsEmpty ( )
216
+ {
217
+ var viewModel = CreateTestSubjectWithNotMockedProgress ( ) ;
218
+ MockTrySonarQubeConnection ( AConnectionInfo , success : true ) ;
219
+ var expectedServerProjects = new List < ServerProject > { new ( "proj1" , "name1" ) , new ( "proj2" , "name2" ) } ;
220
+ slCoreConnectionAdapter . GetAllProjectsAsync ( Arg . Any < ServerConnection > ( ) )
221
+ . Returns ( new AdapterResponseWithData < List < ServerProject > > ( false , expectedServerProjects ) ) ;
222
+
223
+ await viewModel . InitializeProjectWithProgressAsync ( ) ;
224
+
225
+ viewModel . InitialServerProjects . Should ( ) . BeEmpty ( ) ;
226
+ }
227
+
199
228
[ TestMethod ]
200
229
public async Task AdapterGetAllProjectsAsync_GettingServerConnectionSucceeded_CallsAdapterWithCredentialsForServerConnection ( )
201
230
{
@@ -264,8 +293,13 @@ private void MockTrySonarQubeConnection(ConnectionInfo connectionInfo, bool succ
264
293
265
294
private ProjectSelectionViewModel CreateInitializedTestSubjectWitNotMockedProgress ( )
266
295
{
267
- var viewModel = new ProjectSelectionViewModel ( AConnectionInfo , connectedModeServices , new ProgressReporterViewModel ( logger ) ) ;
296
+ var viewModel = CreateTestSubjectWithNotMockedProgress ( ) ;
268
297
viewModel . InitProjects ( new AdapterResponseWithData < List < ServerProject > > ( true , AnInitialListOfProjects ) ) ;
269
298
return viewModel ;
270
299
}
300
+
301
+ private ProjectSelectionViewModel CreateTestSubjectWithNotMockedProgress ( )
302
+ {
303
+ return new ProjectSelectionViewModel ( AConnectionInfo , connectedModeServices , new ProgressReporterViewModel ( logger ) ) ;
304
+ }
271
305
}
0 commit comments