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