public void ChangesModel_MultipleSourceControlEntries_UntoggleSingleFromAll() { const int entryCount = 5; var model = new TestableChangesModel(); var changes = BuildChangesList(entryCount); model.UpdateChangeList(changes); var fullList = model.GetAllEntries(); Assert.AreEqual(entryCount + 1, fullList.Count); Assert.IsTrue(fullList[0].All); model.UpdateEntryToggle(fullList[0].Entry.Path, true); var untoggledEntry = fullList[entryCount / 2 + 1]; model.UpdateEntryToggle(untoggledEntry.Entry.Path, false); Assert.IsFalse(untoggledEntry.Toggled); fullList = model.GetAllEntries(); Assert.AreEqual(entryCount + 1, fullList.Count); foreach (var entry in fullList) { if (entry == fullList[0]) { Assert.IsTrue(entry.All); } else { Assert.IsFalse(entry.All); } if (entry == untoggledEntry || entry.All) { Assert.IsFalse(entry.Toggled); } else { Assert.IsTrue(entry.Toggled); } } var toggledList = model.GetToggledEntries(); Assert.AreEqual(entryCount - 1, toggledList.Count); foreach (var entry in toggledList) { Assert.IsFalse(entry.All); Assert.AreNotEqual(untoggledEntry, entry); } var untoggledList = model.GetUntoggledEntries(); Assert.AreEqual(1, untoggledList.Count); Assert.AreEqual(untoggledEntry, untoggledList[0]); Assert.AreEqual(entryCount - 1, model.ToggledCount); }
public void ChangesModel_MultipleSourceControlEntries_ToggleAllIndividually() { const int entryCount = 5; var model = new TestableChangesModel(); model.OnStart(); var changes = BuildChangesList(entryCount); model.UpdateChangeList(changes); var fullList = model.GetAllEntries(); Assert.AreEqual(entryCount + 1, fullList.Count); Assert.IsTrue(fullList[0].All); fullList = model.GetAllEntries(); foreach (var entry in fullList.Where(entry => !entry.All)) { model.UpdateEntryToggle(entry.Entry.Path, true); } Assert.AreEqual(entryCount + 1, fullList.Count); foreach (var entry in fullList) { if (entry == fullList[0]) { Assert.IsTrue(entry.All); } else { Assert.IsFalse(entry.All); } Assert.IsTrue(entry.Toggled); } var toggledList = model.GetToggledEntries(); Assert.AreEqual(entryCount, toggledList.Count); foreach (var entry in toggledList) { Assert.IsFalse(entry.All); } var untoggledList = model.GetUntoggledEntries(); Assert.AreEqual(0, untoggledList.Count); Assert.AreEqual(entryCount, model.ToggledCount); }