private static PropertyListView InitListView()
        {
            var testClass     = new PropertyListView();
            var listviewItems = new TestListViewClassCollection();

            testClass.InitListView(listviewItems);
            return(testClass);
        }
        public void InitListViewTest()
        {
            // Arrange
            Type expectedItemType = typeof(TestListViewClass);
            var  propertyGrid     = new PropertyGrid();

            // Act
            var testClass = new PropertyListView {
                PropertyGrid = propertyGrid
            };
            var listviewItems = new TestListViewClassCollection();

            testClass.InitListView(listviewItems);

            // Assert
            Assert.AreEqual(listviewItems, testClass.DataSource);
            Assert.AreEqual(expectedItemType, testClass.ItemType);
            Assert.IsNull(testClass.PropertyGrid.SelectedObject);
            // Columns
            Assert.AreEqual("IntData", testClass.ListView.Columns[0].Text);
            Assert.AreEqual("StringData", testClass.ListView.Columns[1].Text);
            Assert.AreEqual("PointData", testClass.ListView.Columns[2].Text);
            Assert.AreEqual("EnumData", testClass.ListView.Columns[3].Text);
            // testlistview1
            Assert.AreEqual("100", testClass.ListView.Items[0].Text);
            Assert.AreEqual("testString100", testClass.ListView.Items[0].SubItems[1].Text);
            Assert.AreEqual("{X=1,Y=1}", testClass.ListView.Items[0].SubItems[2].Text);
            Assert.AreEqual("Enum1", testClass.ListView.Items[0].SubItems[3].Text);
            // testlistview2
            Assert.AreEqual("200", testClass.ListView.Items[1].Text);
            Assert.AreEqual("testString200", testClass.ListView.Items[1].SubItems[1].Text);
            Assert.AreEqual("{X=2,Y=2}", testClass.ListView.Items[1].SubItems[2].Text);
            Assert.AreEqual("Enum2", testClass.ListView.Items[1].SubItems[3].Text);
            // testlistview3
            Assert.AreEqual("300", testClass.ListView.Items[2].Text);
            Assert.AreEqual("testString300", testClass.ListView.Items[2].SubItems[1].Text);
            Assert.AreEqual("{X=3,Y=3}", testClass.ListView.Items[2].SubItems[2].Text);
            Assert.AreEqual("Enum3", testClass.ListView.Items[2].SubItems[3].Text);
        }