Skip to content

Commit 8d44c52

Browse files
Add tests for multiple scenarios
1 parent 373352b commit 8d44c52

File tree

1 file changed

+288
-0
lines changed

1 file changed

+288
-0
lines changed

RubberduckTests/CodeExplorer/CodeExplorerTests.cs

Lines changed: 288 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1166,6 +1166,294 @@ public void CollapseAllNodes_StartingWithSubnode()
11661166
Assert.IsTrue(vm.Projects.Single().Items.Last().IsExpanded);
11671167
}
11681168

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+
11691457
[TestCategory("Code Explorer")]
11701458
[TestMethod]
11711459
public void CompareByName_ReturnsZeroForIdenticalNodes()

0 commit comments

Comments
 (0)