public async Task ProviderOrchestrationAsync_Returns_Wish_Results()
        {
            var wishA = new Wish {
                Name = "wish", Query = "query"
            };
            var wishB = new Wish {
                Name = "wish two", Query = "w.2"
            };
            var providerCtx = new SearchProviderContext
            {
                Provider = new Provider(),
                Wishes   = new[] { wishA, wishB }
            };
            var context = new Mock <DurableOrchestrationContextBase>(MockBehavior.Strict);

            context.Setup(c => c.GetInput <SearchProviderContext>()).Returns(providerCtx);
            context.SetupSequence(c => c.CallActivityAsync <IEnumerable <WishResult> >("WishSearch", It.IsAny <object>()))
            .ReturnsAsync(new[]
            {
                new WishResult(),
                new WishResult()
            }).
            ReturnsAsync(new[]
            {
                new WishResult()
            });

            var result = await _function.ProviderOrchestrationAsync(context.Object);

            context.Verify(c => c.GetInput <SearchProviderContext>(), Times.Once());
            context.Verify(c => c.CallActivityAsync <IEnumerable <WishResult> >("WishSearch", It.IsAny <object>()), Times.Exactly(2));
            Assert.Equal(3, result.Count());
        }
        public async Task ProviderOrchestrationAsync_Returns_Empty_List_With_No_Wishes()
        {
            var providerCtx = new SearchProviderContext
            {
                Provider = new Provider(),
                Wishes   = Enumerable.Empty <Wish>()
            };
            var context = new Mock <DurableOrchestrationContextBase>(MockBehavior.Strict);

            context.Setup(c => c.GetInput <SearchProviderContext>()).Returns(providerCtx);

            var result = await _function.ProviderOrchestrationAsync(context.Object);

            context.Verify(c => c.GetInput <SearchProviderContext>(), Times.Once());
            context.Verify(c => c.CallActivityAsync <IEnumerable <WishResult> >("WishSearch", It.IsAny <object>()), Times.Never());
            Assert.Empty(result);
        }