@@ -1166,6 +1166,294 @@ public void CollapseAllNodes_StartingWithSubnode()
1166
1166
Assert . IsTrue ( vm . Projects . Single ( ) . Items . Last ( ) . IsExpanded ) ;
1167
1167
}
1168
1168
1169
+ [ TestCategory ( "Code Explorer" ) ]
1170
+ [ TestMethod ]
1171
+ public void SetSortByName_NotAlreadySelectedInMenu_ExpectTrue ( )
1172
+ {
1173
+ var builder = new MockVbeBuilder ( ) ;
1174
+ var project = builder . ProjectBuilder ( "TestProject1" , ProjectProtection . Unprotected )
1175
+ . AddComponent ( "Module1" , ComponentType . StandardModule , "" ) ;
1176
+
1177
+ var components = project . MockVBComponents ;
1178
+
1179
+ var vbe = builder . AddProject ( project . Build ( ) ) . Build ( ) ;
1180
+
1181
+ var commands = new List < CommandBase > { new AddStdModuleCommand ( new AddComponentCommand ( vbe . Object ) ) } ;
1182
+
1183
+ var state = new RubberduckParserState ( vbe . Object , new DeclarationFinderFactory ( ) ) ;
1184
+
1185
+ var windowSettings = new WindowSettings
1186
+ {
1187
+ CodeExplorer_SortByName = false ,
1188
+ CodeExplorer_SortByCodeOrder = true
1189
+ } ;
1190
+ _windowSettingsProvider . Setup ( s => s . Create ( ) ) . Returns ( windowSettings ) ;
1191
+
1192
+ var vm = new CodeExplorerViewModel ( new FolderHelper ( state ) , state , commands , _generalSettingsProvider . Object , _windowSettingsProvider . Object ) ;
1193
+
1194
+ var parser = MockParser . Create ( vbe . Object , state ) ;
1195
+ parser . Parse ( new CancellationTokenSource ( ) ) ;
1196
+ if ( parser . State . Status >= ParserState . Error ) { Assert . Inconclusive ( "Parser Error" ) ; }
1197
+
1198
+ vm . SelectedItem = vm . Projects . First ( ) . Items . First ( ) . Items . First ( ) ;
1199
+ vm . SetNameSortCommand . Execute ( true ) ;
1200
+
1201
+ Assert . IsTrue ( vm . SortByName ) ;
1202
+ Assert . IsFalse ( vm . SortByCodeOrder ) ;
1203
+ }
1204
+
1205
+ [ TestCategory ( "Code Explorer" ) ]
1206
+ [ TestMethod ]
1207
+ public void SetSortByName_AlreadySelectedInMenu_ExpectTrue ( )
1208
+ {
1209
+ var builder = new MockVbeBuilder ( ) ;
1210
+ var project = builder . ProjectBuilder ( "TestProject1" , ProjectProtection . Unprotected )
1211
+ . AddComponent ( "Module1" , ComponentType . StandardModule , "" ) ;
1212
+
1213
+ var components = project . MockVBComponents ;
1214
+
1215
+ var vbe = builder . AddProject ( project . Build ( ) ) . Build ( ) ;
1216
+
1217
+ var commands = new List < CommandBase > { new AddStdModuleCommand ( new AddComponentCommand ( vbe . Object ) ) } ;
1218
+
1219
+ var state = new RubberduckParserState ( vbe . Object , new DeclarationFinderFactory ( ) ) ;
1220
+
1221
+ var windowSettings = new WindowSettings
1222
+ {
1223
+ CodeExplorer_SortByName = true ,
1224
+ CodeExplorer_SortByCodeOrder = false
1225
+ } ;
1226
+ _windowSettingsProvider . Setup ( s => s . Create ( ) ) . Returns ( windowSettings ) ;
1227
+
1228
+ var vm = new CodeExplorerViewModel ( new FolderHelper ( state ) , state , commands , _generalSettingsProvider . Object , _windowSettingsProvider . Object ) ;
1229
+
1230
+ var parser = MockParser . Create ( vbe . Object , state ) ;
1231
+ parser . Parse ( new CancellationTokenSource ( ) ) ;
1232
+ if ( parser . State . Status >= ParserState . Error ) { Assert . Inconclusive ( "Parser Error" ) ; }
1233
+
1234
+ vm . SelectedItem = vm . Projects . First ( ) . Items . First ( ) . Items . First ( ) ;
1235
+ vm . SetNameSortCommand . Execute ( false ) ;
1236
+
1237
+ Assert . IsTrue ( vm . SortByName ) ;
1238
+ Assert . IsFalse ( vm . SortByCodeOrder ) ;
1239
+ }
1240
+
1241
+ [ TestCategory ( "Code Explorer" ) ]
1242
+ [ TestMethod ]
1243
+ public void SetSortByName_BothSortOptionsFalse_ExpectTrueOnlyForSortByName ( )
1244
+ {
1245
+ var builder = new MockVbeBuilder ( ) ;
1246
+ var project = builder . ProjectBuilder ( "TestProject1" , ProjectProtection . Unprotected )
1247
+ . AddComponent ( "Module1" , ComponentType . StandardModule , "" ) ;
1248
+
1249
+ var components = project . MockVBComponents ;
1250
+
1251
+ var vbe = builder . AddProject ( project . Build ( ) ) . Build ( ) ;
1252
+
1253
+ var commands = new List < CommandBase > { new AddStdModuleCommand ( new AddComponentCommand ( vbe . Object ) ) } ;
1254
+
1255
+ var state = new RubberduckParserState ( vbe . Object , new DeclarationFinderFactory ( ) ) ;
1256
+
1257
+ var windowSettings = new WindowSettings
1258
+ {
1259
+ CodeExplorer_SortByName = false ,
1260
+ CodeExplorer_SortByCodeOrder = false
1261
+ } ;
1262
+ _windowSettingsProvider . Setup ( s => s . Create ( ) ) . Returns ( windowSettings ) ;
1263
+
1264
+ var vm = new CodeExplorerViewModel ( new FolderHelper ( state ) , state , commands , _generalSettingsProvider . Object , _windowSettingsProvider . Object ) ;
1265
+
1266
+ var parser = MockParser . Create ( vbe . Object , state ) ;
1267
+ parser . Parse ( new CancellationTokenSource ( ) ) ;
1268
+ if ( parser . State . Status >= ParserState . Error ) { Assert . Inconclusive ( "Parser Error" ) ; }
1269
+
1270
+ vm . SelectedItem = vm . Projects . First ( ) . Items . First ( ) . Items . First ( ) ;
1271
+ vm . SetNameSortCommand . Execute ( true ) ;
1272
+
1273
+ Assert . IsTrue ( vm . SortByName ) ;
1274
+ Assert . IsFalse ( vm . SortByCodeOrder ) ;
1275
+ }
1276
+
1277
+ [ TestCategory ( "Code Explorer" ) ]
1278
+ [ TestMethod ]
1279
+ public void SetSortByName_BothSortOptionsTrue_ExpectTrueOnlyForSortByName ( )
1280
+ {
1281
+ var builder = new MockVbeBuilder ( ) ;
1282
+ var project = builder . ProjectBuilder ( "TestProject1" , ProjectProtection . Unprotected )
1283
+ . AddComponent ( "Module1" , ComponentType . StandardModule , "" ) ;
1284
+
1285
+ var components = project . MockVBComponents ;
1286
+
1287
+ var vbe = builder . AddProject ( project . Build ( ) ) . Build ( ) ;
1288
+
1289
+ var commands = new List < CommandBase > { new AddStdModuleCommand ( new AddComponentCommand ( vbe . Object ) ) } ;
1290
+
1291
+ var state = new RubberduckParserState ( vbe . Object , new DeclarationFinderFactory ( ) ) ;
1292
+
1293
+ var windowSettings = new WindowSettings
1294
+ {
1295
+ CodeExplorer_SortByName = true ,
1296
+ CodeExplorer_SortByCodeOrder = true
1297
+ } ;
1298
+ _windowSettingsProvider . Setup ( s => s . Create ( ) ) . Returns ( windowSettings ) ;
1299
+
1300
+ var vm = new CodeExplorerViewModel ( new FolderHelper ( state ) , state , commands , _generalSettingsProvider . Object , _windowSettingsProvider . Object ) ;
1301
+
1302
+ var parser = MockParser . Create ( vbe . Object , state ) ;
1303
+ parser . Parse ( new CancellationTokenSource ( ) ) ;
1304
+ if ( parser . State . Status >= ParserState . Error ) { Assert . Inconclusive ( "Parser Error" ) ; }
1305
+
1306
+ vm . SelectedItem = vm . Projects . First ( ) . Items . First ( ) . Items . First ( ) ;
1307
+ vm . SetNameSortCommand . Execute ( true ) ;
1308
+
1309
+ Assert . IsTrue ( vm . SortByName ) ;
1310
+ Assert . IsFalse ( vm . SortByCodeOrder ) ;
1311
+ }
1312
+
1313
+ [ TestCategory ( "Code Explorer" ) ]
1314
+ [ TestMethod ]
1315
+ public void SetSortByCodeOrder_NotAlreadySelectedInMenu_ExpectTrue ( )
1316
+ {
1317
+ var builder = new MockVbeBuilder ( ) ;
1318
+ var project = builder . ProjectBuilder ( "TestProject1" , ProjectProtection . Unprotected )
1319
+ . AddComponent ( "Module1" , ComponentType . StandardModule , "" ) ;
1320
+
1321
+ var components = project . MockVBComponents ;
1322
+
1323
+ var vbe = builder . AddProject ( project . Build ( ) ) . Build ( ) ;
1324
+
1325
+ var commands = new List < CommandBase > { new AddStdModuleCommand ( new AddComponentCommand ( vbe . Object ) ) } ;
1326
+
1327
+ var state = new RubberduckParserState ( vbe . Object , new DeclarationFinderFactory ( ) ) ;
1328
+
1329
+ var windowSettings = new WindowSettings
1330
+ {
1331
+ CodeExplorer_SortByName = true ,
1332
+ CodeExplorer_SortByCodeOrder = false
1333
+ } ;
1334
+ _windowSettingsProvider . Setup ( s => s . Create ( ) ) . Returns ( windowSettings ) ;
1335
+
1336
+ var vm = new CodeExplorerViewModel ( new FolderHelper ( state ) , state , commands , _generalSettingsProvider . Object , _windowSettingsProvider . Object ) ;
1337
+
1338
+ var parser = MockParser . Create ( vbe . Object , state ) ;
1339
+ parser . Parse ( new CancellationTokenSource ( ) ) ;
1340
+ if ( parser . State . Status >= ParserState . Error ) { Assert . Inconclusive ( "Parser Error" ) ; }
1341
+
1342
+ vm . SelectedItem = vm . Projects . First ( ) . Items . First ( ) . Items . First ( ) ;
1343
+ vm . SetCodeOrderSortCommand . Execute ( true ) ;
1344
+
1345
+ Assert . IsTrue ( vm . SortByCodeOrder ) ;
1346
+ Assert . IsFalse ( vm . SortByName ) ;
1347
+ }
1348
+
1349
+ [ TestCategory ( "Code Explorer" ) ]
1350
+ [ TestMethod ]
1351
+ public void SetSortByCodeOrder_AlreadySelectedInMenu_ExpectTrue ( )
1352
+ {
1353
+ var builder = new MockVbeBuilder ( ) ;
1354
+ var project = builder . ProjectBuilder ( "TestProject1" , ProjectProtection . Unprotected )
1355
+ . AddComponent ( "Module1" , ComponentType . StandardModule , "" ) ;
1356
+
1357
+ var components = project . MockVBComponents ;
1358
+
1359
+ var vbe = builder . AddProject ( project . Build ( ) ) . Build ( ) ;
1360
+
1361
+ var commands = new List < CommandBase > { new AddStdModuleCommand ( new AddComponentCommand ( vbe . Object ) ) } ;
1362
+
1363
+ var state = new RubberduckParserState ( vbe . Object , new DeclarationFinderFactory ( ) ) ;
1364
+
1365
+ var windowSettings = new WindowSettings
1366
+ {
1367
+ CodeExplorer_SortByName = false ,
1368
+ CodeExplorer_SortByCodeOrder = true
1369
+ } ;
1370
+ _windowSettingsProvider . Setup ( s => s . Create ( ) ) . Returns ( windowSettings ) ;
1371
+
1372
+ var vm = new CodeExplorerViewModel ( new FolderHelper ( state ) , state , commands , _generalSettingsProvider . Object , _windowSettingsProvider . Object ) ;
1373
+
1374
+ var parser = MockParser . Create ( vbe . Object , state ) ;
1375
+ parser . Parse ( new CancellationTokenSource ( ) ) ;
1376
+ if ( parser . State . Status >= ParserState . Error ) { Assert . Inconclusive ( "Parser Error" ) ; }
1377
+
1378
+ vm . SelectedItem = vm . Projects . First ( ) . Items . First ( ) . Items . First ( ) ;
1379
+ vm . SetCodeOrderSortCommand . Execute ( false ) ;
1380
+
1381
+ Assert . IsTrue ( vm . SortByCodeOrder ) ;
1382
+ Assert . IsFalse ( vm . SortByName ) ;
1383
+ }
1384
+
1385
+ [ TestCategory ( "Code Explorer" ) ]
1386
+ [ TestMethod ]
1387
+ public void SetSortByCodeOrder_BothSortOptionsFalse_ExpectCorrectSortPair ( )
1388
+ {
1389
+ var builder = new MockVbeBuilder ( ) ;
1390
+ var project = builder . ProjectBuilder ( "TestProject1" , ProjectProtection . Unprotected )
1391
+ . AddComponent ( "Module1" , ComponentType . StandardModule , "" ) ;
1392
+
1393
+ var components = project . MockVBComponents ;
1394
+
1395
+ var vbe = builder . AddProject ( project . Build ( ) ) . Build ( ) ;
1396
+
1397
+ var commands = new List < CommandBase > { new AddStdModuleCommand ( new AddComponentCommand ( vbe . Object ) ) } ;
1398
+
1399
+ var state = new RubberduckParserState ( vbe . Object , new DeclarationFinderFactory ( ) ) ;
1400
+
1401
+ var windowSettings = new WindowSettings
1402
+ {
1403
+ CodeExplorer_SortByName = false ,
1404
+ CodeExplorer_SortByCodeOrder = false
1405
+ } ;
1406
+ _windowSettingsProvider . Setup ( s => s . Create ( ) ) . Returns ( windowSettings ) ;
1407
+
1408
+ var vm = new CodeExplorerViewModel ( new FolderHelper ( state ) , state , commands , _generalSettingsProvider . Object , _windowSettingsProvider . Object ) ;
1409
+
1410
+ var parser = MockParser . Create ( vbe . Object , state ) ;
1411
+ parser . Parse ( new CancellationTokenSource ( ) ) ;
1412
+ if ( parser . State . Status >= ParserState . Error ) { Assert . Inconclusive ( "Parser Error" ) ; }
1413
+
1414
+ vm . SelectedItem = vm . Projects . First ( ) . Items . First ( ) . Items . First ( ) ;
1415
+ vm . SetCodeOrderSortCommand . Execute ( true ) ;
1416
+
1417
+ Assert . IsTrue ( vm . SortByCodeOrder ) ;
1418
+ Assert . IsFalse ( vm . SortByName ) ;
1419
+ }
1420
+
1421
+ [ TestCategory ( "Code Explorer" ) ]
1422
+ [ TestMethod ]
1423
+ public void SetSortByCodeOrder_BothSortOptionsTrue_ExpectCorrectSortPair ( )
1424
+ {
1425
+ var builder = new MockVbeBuilder ( ) ;
1426
+ var project = builder . ProjectBuilder ( "TestProject1" , ProjectProtection . Unprotected )
1427
+ . AddComponent ( "Module1" , ComponentType . StandardModule , "" ) ;
1428
+
1429
+ var components = project . MockVBComponents ;
1430
+
1431
+ var vbe = builder . AddProject ( project . Build ( ) ) . Build ( ) ;
1432
+
1433
+ var commands = new List < CommandBase > { new AddStdModuleCommand ( new AddComponentCommand ( vbe . Object ) ) } ;
1434
+
1435
+ var state = new RubberduckParserState ( vbe . Object , new DeclarationFinderFactory ( ) ) ;
1436
+
1437
+ var windowSettings = new WindowSettings
1438
+ {
1439
+ CodeExplorer_SortByName = true ,
1440
+ CodeExplorer_SortByCodeOrder = true
1441
+ } ;
1442
+ _windowSettingsProvider . Setup ( s => s . Create ( ) ) . Returns ( windowSettings ) ;
1443
+
1444
+ var vm = new CodeExplorerViewModel ( new FolderHelper ( state ) , state , commands , _generalSettingsProvider . Object , _windowSettingsProvider . Object ) ;
1445
+
1446
+ var parser = MockParser . Create ( vbe . Object , state ) ;
1447
+ parser . Parse ( new CancellationTokenSource ( ) ) ;
1448
+ if ( parser . State . Status >= ParserState . Error ) { Assert . Inconclusive ( "Parser Error" ) ; }
1449
+
1450
+ vm . SelectedItem = vm . Projects . First ( ) . Items . First ( ) . Items . First ( ) ;
1451
+ vm . SetCodeOrderSortCommand . Execute ( true ) ;
1452
+
1453
+ Assert . IsTrue ( vm . SortByCodeOrder ) ;
1454
+ Assert . IsFalse ( vm . SortByName ) ;
1455
+ }
1456
+
1169
1457
[ TestCategory ( "Code Explorer" ) ]
1170
1458
[ TestMethod ]
1171
1459
public void CompareByName_ReturnsZeroForIdenticalNodes ( )
0 commit comments