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.Equal("A", enumerator.Current); Assert.True(enumerator.MoveNext()); Assert.Equal("B", enumerator.Current); 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.Equal("A", list.Item(1)); Assert.Equal("B", list.Item(2)); }
[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;