Dev2.Core.Tests.CompositeIntellisenseProviderTests.CompositeIntellisenseProvider_GetIntellisenseResults_OptionalProviderReturnsWhenIfError C# (CSharp) Method

CompositeIntellisenseProvider_GetIntellisenseResults_OptionalProviderReturnsWhenIfError() private method

        public void CompositeIntellisenseProvider_GetIntellisenseResults_OptionalProviderReturnsWhenIfError()
        {
            //------------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","monkeys",true) };

            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(false);

            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.ClosestMatch
                });

            Assert.AreEqual(2, res.Count);

            Assert.AreEqual(results2.First(), res[1]);
            Assert.AreEqual(results.First(), res[0]);
            Assert.IsTrue(res[0].IsError);
        }