Ejemplo n.º 1
0
        public async Task Get_ShouldReturnStrategyList()
        {
            // Arrange
            var model   = new StrategyQueryViewModel();
            var adGroup = new AdGroup {
                AdGroupName = "My Strategy 1"
            };
            var adGroup2 = new AdGroup {
                AdGroupName = "My Strategy 2"
            };
            var adGroups = new List <AdGroup> {
                adGroup, adGroup2
            };

            Mock.Mock <IStrategyService>().Setup(x => x.GetStrategies(It.IsAny <StrategyQueryOptions>())).Returns(adGroups.ToAsyncEnumerable());

            // Act
            var results = await Controller.Get(model);

            // Assert
            Assert.That(results, Is.Not.Null);
            Assert.That(results, Is.TypeOf <OkNegotiatedContentResult <PagedListViewModel <StrategyListViewModel> > >());
            var content = ((OkNegotiatedContentResult <PagedListViewModel <StrategyListViewModel> >)results).Content;

            Assert.That(content.Data, Is.Not.Null);
            Assert.That(content.Data.Count(), Is.EqualTo(2));
            Assert.That(content.Data.First().StrategyName, Is.EqualTo(adGroup.AdGroupName));
        }
        public async Task <IHttpActionResult> Get([FromUri] StrategyQueryViewModel model)
        {
            if (model == null)
            {
                return(BadRequest());
            }

            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var strategyQueryOptions = _mapping.Map <StrategyQueryOptions>(model);
            var adGroups             = await _strategyService.GetStrategies(strategyQueryOptions).ToPagedListAsync(model).ConfigureAwait(false);

            var retVal = _mapping.Map <PagedListViewModel <StrategyListViewModel> >(adGroups);

            return(Ok(retVal));
        }