public void CompositeIntellisenseProvider_GetIntellisenseResults_OptionalProviderReturnsWhenEntireResultsetSelected()
{
//------------Setup for test--------------------------
var compositeIntellisenseProvider = new CompositeIntellisenseProvider();
var mockProviders = TestUtil.GenerateMockEnumerable<IIntellisenseProvider>(3).ToList();
mockProviders.ForEach(a => a.Setup(b => b.Dispose()).Verifiable());
compositeIntellisenseProvider.AddRange(TestUtil.ProxiesFromMockEnumerable(mockProviders));
IList<IntellisenseProviderResult> results = new List<IntellisenseProviderResult> { new IntellisenseProviderResult(mockProviders[0].Object, "bob", "dave") };
IList<IntellisenseProviderResult> results2 = new List<IntellisenseProviderResult> { new IntellisenseProviderResult(mockProviders[0].Object, "d", "x") };
mockProviders[0].Setup(a => a.GetIntellisenseResults(It.IsAny<IntellisenseProviderContext>()))
.Returns(results);
mockProviders[0].Setup(a => a.Optional).Returns(true);
mockProviders[1].Setup(a => a.GetIntellisenseResults(It.IsAny<IntellisenseProviderContext>()))
.Returns(new List<IntellisenseProviderResult>());
mockProviders[1].Setup(a => a.Optional).Returns(false);
mockProviders[2].Setup(a => a.GetIntellisenseResults(It.IsAny<IntellisenseProviderContext>()))
.Returns(results2);
mockProviders[2].Setup(a => a.Optional).Returns(true);
var res =
compositeIntellisenseProvider.GetIntellisenseResults(new IntellisenseProviderContext
{
CaretPosition = 3,
InputText = "bob",
DesiredResultSet = IntellisenseDesiredResultSet.EntireSet
});
Assert.AreEqual(2,res.Count);
Assert.AreEqual(results.First() ,res[0]);
Assert.AreEqual(results2.First(), res[1]);
}