示例#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);
        }
示例#2
0
        public void Constructor_NotNull()
        {
            var vsimports = CreateInstance(
                Mock.Of <VSLangProj.VSProject>(),
                Mock.Of <IProjectThreadingService>(),
                Mock.Of <IActiveConfiguredValue <ConfiguredProject> >(),
                Mock.Of <IProjectAccessor>(),
                Mock.Of <IUnconfiguredProjectVsServices>(),
                VisualBasicNamespaceImportsListFactory.CreateInstance());

            Assert.NotNull(vsimports);
        }
示例#3
0
        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);
        }
        [InlineData(new [] { "A", "B", "D", "E" }, new [] { "B", "C", "E", "F" }, new [] { "C", "F" }, new [] { "A", "D" })]                        // Addition and deletion in jumbled order with the same no of elements as before

        public void UpdateNamespaceImportListTest(string[] initialState, string[] updateToApply, string[] expectedAdded, string[] expectedRemoved)
        {
            var list = VisualBasicNamespaceImportsListFactory.CreateInstance(initialState);

            var json = ConstructNamespaceImportChangeJson(updateToApply);
            var projectSubscriptionUpdate = IProjectSubscriptionUpdateFactory.FromJson(json);

            list.TestApply(projectSubscriptionUpdate);

            // Updates represent the final state, so they are the expected list too
            Assert.Equal(updateToApply.OrderBy(s => s), list.OrderBy(s => s));
            Assert.Equal(expectedAdded.OrderBy(s => s), list.ImportsAdded.OrderBy(s => s));
            Assert.Equal(expectedRemoved.OrderBy(s => s), list.ImportsRemoved.OrderBy(s => s));

            return;
示例#5
0
        public void UpdateNamespaceImportListTest()
        {
            var list     = VisualBasicNamespaceImportsListFactory.CreateInstance();
            var dataList = new List <string>();

            list.SetList(dataList);

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

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

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

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

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

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

            // Remove from the middle
            list.OnNamespaceImportChanged(
                IProjectVersionedValueFactory.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.Create(GetProjectSubscriptionUpdate("F", "C", "B", "E")));
            VerifyList(dataList, "B", "C", "E", "F");
        }
示例#6
0
        public void VsImports_PropertiesCheck()
        {
            var dte     = Mock.Of <DTE>();
            var project = Mock.Of <Project>();

            var vsProjectMock = new Mock <VSLangProj.VSProject>();

            vsProjectMock.Setup(p => p.DTE)
            .Returns(dte);
            vsProjectMock.Setup(p => p.Project)
            .Returns(project);

            var vsimports = CreateInstance(
                vsProjectMock.Object,
                Mock.Of <IProjectThreadingService>(),
                Mock.Of <IActiveConfiguredValue <ConfiguredProject> >(),
                Mock.Of <IProjectAccessor>(),
                Mock.Of <IUnconfiguredProjectVsServices>(),
                VisualBasicNamespaceImportsListFactory.CreateInstance());

            Assert.Equal(dte, vsimports.DTE);
            Assert.Equal(project, vsimports.ContainingProject);
        }