public void AccessElementByIndex()
        {
            var list = new ListDebugTestInfo(_testEntities);

            Assert.AreEqual(_firstElementName, list[0].bstrName);
            Assert.AreEqual(_secondElementName, list[1].bstrName);
        }
        public void GetItemsWhenFromIndexIsNotZero()
        {
            var list = new ListDebugTestInfo(_testEntities);

            var outProperties = new TestEntity[1];
            int returnedCount = 0;
            int status        = list.GetItems(1, 1, outProperties, ref returnedCount);

            Assert.AreEqual(VSConstants.S_OK, status);
            Assert.AreEqual(1, returnedCount);
            Assert.AreEqual(_secondElementName, outProperties[0].bstrName);
        }
        public void GetItems()
        {
            var list = new ListDebugTestInfo(_testEntities);

            var outProperties = new TestEntity[_testEntities.Length];
            int returnedCount = 0;
            int status        = list.GetItems(0, _testEntities.Length, outProperties, ref returnedCount);

            Assert.AreEqual(VSConstants.S_OK, status);
            Assert.AreEqual(_testEntities.Length, returnedCount);
            Assert.AreEqual(_firstElementName, outProperties[0].bstrName);
            Assert.AreEqual(_secondElementName, outProperties[1].bstrName);
        }
        public void FalseIsReturnedOnUnexpectedInput()
        {
            var list = new ListDebugTestInfo(_testEntities);

            var outProperties = new TestEntity[_testEntities.Length];
            int returnedCount = 0;

            int statusWhenFromIsNegative = list.GetItems(-1, _testEntities.Length, outProperties,
                                                         ref returnedCount);
            int statusWhenFromMoreThanCount = list.GetItems(10, _testEntities.Length,
                                                            outProperties, ref returnedCount);
            int statusWhenCountIsNegative            = list.GetItems(0, -1, outProperties, ref returnedCount);
            int statusWhenCountIsMoreThanArrayLength = list.GetItems(0, outProperties.Length + 1,
                                                                     outProperties, ref returnedCount);

            Assert.AreEqual(VSConstants.S_FALSE, statusWhenFromIsNegative);
            Assert.AreEqual(VSConstants.S_FALSE, statusWhenFromMoreThanCount);
            Assert.AreEqual(VSConstants.S_FALSE, statusWhenCountIsNegative);
            Assert.AreEqual(VSConstants.S_FALSE, statusWhenCountIsMoreThanArrayLength);
        }
        public void CountNumberOfElements()
        {
            var list = new ListDebugTestInfo(_testEntities);

            Assert.AreEqual(_testEntities.Length, list.Count);
        }