void Verify_RemoveAt_RemovesRow(int startItemCount, int indexNumber) { //------------Setup for test-------------------------- var items = CreateItemsList(startItemCount); var modelItem = CreateModelItem(items); var viewModel = new TestActivityDesignerCollectionViewModelItemsInitialized(modelItem); //------------Execute Test--------------------------- viewModel.RemoveAt(indexNumber); //------------Assert Results------------------------- 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; i < expectedItemCount; i++, j++) { var dto = (ActivityDTO)mic[i].GetCurrentValue(); if(i == indexNumber - 1) { // skip item that was deleted j++; } Assert.AreSame(items[j], dto); } // ReSharper restore PossibleNullReferenceException }
public void ActivityCollectionDesignerViewModel_RemoveAt_AnyIndexWhenTwoRows_DoesNotRemoveRow() { var items = CreateItemsList(2); var modelItem = CreateModelItem(items); var viewModel = new TestActivityDesignerCollectionViewModelItemsInitialized(modelItem); viewModel.RemoveAt(1); Verify_CollectionUnchanged(items, viewModel); viewModel.RemoveAt(2); Verify_CollectionUnchanged(items, viewModel); }