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);
        }