void Verify_OnSelectionChanged_OldRowIsNotBlank_RowNotRemoved(int startItemCount, int indexNumber) { //------------Setup for test-------------------------- var items = CreateItemsList(startItemCount); var modelItem = CreateModelItem(items); var viewModel = new TestActivityDesignerCollectionViewModelItemsInitialized(modelItem); for(var i = 0; i < startItemCount; i++) { Assert.AreEqual(i == startItemCount - 1, items[i].CanRemove()); } var idx = indexNumber - 1; //------------Execute Test--------------------------- items[idx].FieldName = string.Empty; // CanRemove() checks this viewModel.OnSelectionChanged(viewModel.ModelItemCollection[idx], viewModel.ModelItemCollection[idx + 1]); //------------Assert Results------------------------- Assert.IsFalse(items[idx].CanRemove()); Verify_CollectionUnchanged(items, viewModel); }
void Verify_OnSelectionChanged_OldRowIsBlank_RowRemoved(int startItemCount, int indexNumber) { //------------Setup for test-------------------------- var items = CreateItemsList(startItemCount); var modelItem = CreateModelItem(items); var viewModel = new TestActivityDesignerCollectionViewModelItemsInitialized(modelItem); for(var i = 0; i < startItemCount; i++) { Assert.AreEqual(i == startItemCount - 1, items[i].CanRemove()); } var idx = indexNumber - 1; //------------Execute Test--------------------------- items[idx].FieldName = string.Empty; // CanRemove() checks this items[idx].FieldValue = string.Empty; // CanRemove() checks this viewModel.OnSelectionChanged(viewModel.ModelItemCollection[idx], viewModel.ModelItemCollection[idx + 1]); //------------Assert Results------------------------- Assert.IsTrue(items[idx].CanRemove()); var expectedItemCount = startItemCount - 1; var expectedNonBlankItemCount = expectedItemCount - 1; Assert.AreEqual(expectedItemCount, viewModel.ItemCount); Assert.AreEqual(string.Format("Activity ({0})", expectedNonBlankItemCount), viewModel.ModelItem.GetProperty("DisplayName")); // ReSharper disable PossibleNullReferenceException var mic = viewModel.ModelItem.Properties[viewModel.CollectionName].Collection; for(int i = 0, j = 0; j < expectedItemCount; j++) { if(i == idx) { i++; // skip } var dto = (ActivityDTO)mic[j].GetCurrentValue(); Assert.AreSame(items[i++], dto); } // ReSharper restore PossibleNullReferenceException }