Ejemplo n.º 1
0
        public void VsImports_ImportsAddRemoveCheck()
        {
            var          dispImportsEventsMock = new Mock <_dispImportsEvents>();
            const string importName            = "Something";

            dispImportsEventsMock.Setup(d => d.ImportAdded(It.Is <string>(s => s == importName)))
            .Verifiable();
            dispImportsEventsMock.Setup(d => d.ImportRemoved(It.Is <string>(s => s == importName)))
            .Verifiable();

            var vsimports = CreateInstance(
                Mock.Of <VSLangProj.VSProject>(),
                Mock.Of <IProjectThreadingService>(),
                Mock.Of <ActiveConfiguredProject <ConfiguredProject> >(),
                Mock.Of <IProjectAccessor>(),
                Mock.Of <IUnconfiguredProjectVsServices>(),
                VisualBasicNamespaceImportsListFactory.CreateInstance("A", "B"));

            vsimports.OnSinkAdded(dispImportsEventsMock.Object);

            vsimports.OnImportAdded(importName);
            vsimports.OnImportRemoved(importName);

            dispImportsEventsMock.VerifyAll();

            vsimports.OnSinkRemoved(dispImportsEventsMock.Object);

            vsimports.OnImportAdded(importName);
            vsimports.OnImportRemoved(importName);

            dispImportsEventsMock.Verify(d => d.ImportAdded(It.IsAny <string>()), Times.Once);
            dispImportsEventsMock.Verify(d => d.ImportRemoved(It.IsAny <string>()), Times.Once);

            Assert.Equal(2, vsimports.Count);
        }
        public void UnderlyingListBasedPropertiesTest()
        {
            var list = VisualBasicNamespaceImportsListFactory.CreateInstance("A", "B");

            //Count
            Assert.Equal(2, list.Count);

            //GetEnumerator
            var enumerator = list.GetEnumerator();

            Assert.True(enumerator.MoveNext());
            Assert.True(string.Compare(enumerator.Current, "A") == 0);
            Assert.True(enumerator.MoveNext());
            Assert.True(string.Compare(enumerator.Current, "B") == 0);
            Assert.False(enumerator.MoveNext());

            //IsPresent(string)
            Assert.Throws <ArgumentException>("bstrImport", () =>
            {
                list.IsPresent(null);
            });
            Assert.Throws <ArgumentException>("bstrImport", () =>
            {
                list.IsPresent("");
            });
            Assert.True(list.IsPresent("A"));
            Assert.False(list.IsPresent("C"));

            //IsPresent(int)
            Assert.Throws <ArgumentException>("indexInt", () =>
            {
                list.IsPresent(0);
            });
            Assert.Throws <ArgumentException>("indexInt", () =>
            {
                list.IsPresent(3);
            });
            Assert.True(list.IsPresent(1));
            Assert.True(list.IsPresent(2));

            //Item(int)
            Assert.Throws <ArgumentException>("lIndex", () =>
            {
                list.Item(0);
            });
            Assert.Throws <ArgumentException>("lIndex", () =>
            {
                list.Item(3);
            });
            Assert.True(string.Compare(list.Item(1), "A") == 0);
            Assert.True(string.Compare(list.Item(2), "B") == 0);
        }
        public void UpdateNamespaceImportListTest()
        {
            var list     = VisualBasicNamespaceImportsListFactory.CreateInstance();
            var dataList = new List <string>();

            list.SetList(dataList);

            // Initial add
            list.OnNamespaceImportChanged(
                IProjectVersionedValueFactory <IProjectSubscriptionUpdate> .Create(GetProjectSubscriptionUpdate("A", "B", "C", "D")));
            VerifyList(dataList, "A", "B", "C", "D");

            // Remove from the end
            list.OnNamespaceImportChanged(
                IProjectVersionedValueFactory <IProjectSubscriptionUpdate> .Create(GetProjectSubscriptionUpdate("A", "B", "C")));
            VerifyList(dataList, "A", "B", "C");

            // Remove from the beginning
            list.OnNamespaceImportChanged(
                IProjectVersionedValueFactory <IProjectSubscriptionUpdate> .Create(GetProjectSubscriptionUpdate("B", "C")));
            VerifyList(dataList, "B", "C");

            // Add at the beginning
            list.OnNamespaceImportChanged(
                IProjectVersionedValueFactory <IProjectSubscriptionUpdate> .Create(GetProjectSubscriptionUpdate("A", "B", "C")));
            VerifyList(dataList, "A", "B", "C");

            // Add at the end
            list.OnNamespaceImportChanged(
                IProjectVersionedValueFactory <IProjectSubscriptionUpdate> .Create(GetProjectSubscriptionUpdate("A", "B", "C", "E")));
            VerifyList(dataList, "A", "B", "C", "E");

            // Add in the middle
            list.OnNamespaceImportChanged(
                IProjectVersionedValueFactory <IProjectSubscriptionUpdate> .Create(GetProjectSubscriptionUpdate("A", "B", "C", "D", "E")));
            VerifyList(dataList, "A", "B", "C", "D", "E");

            // Remove from the middle
            list.OnNamespaceImportChanged(
                IProjectVersionedValueFactory <IProjectSubscriptionUpdate> .Create(GetProjectSubscriptionUpdate("A", "B", "D", "E")));
            VerifyList(dataList, "A", "B", "D", "E");

            // Addition and Deletion in jumbled order with the same no of elements as before
            list.OnNamespaceImportChanged(
                IProjectVersionedValueFactory <IProjectSubscriptionUpdate> .Create(GetProjectSubscriptionUpdate("F", "C", "B", "E")));
            VerifyList(dataList, "B", "C", "E", "F");
        }