public void ItGetsShowcase()
        {
            // Arrange
            const string slug = "unit-test-showcase";

            var rawEvent = new ContentfulEventBuilder().Slug(slug).EventDate(new DateTime(2017, 4, 1)).Build();
            var events   = new List <ContentfulEvent> {
                rawEvent
            };

            var modelledEvent = new Event("title", "event-slug", "", "", "", "", "", "", DateTime.MaxValue, "", "", 1, EventFrequency.None, null, "", null, new List <string>(), null, false, "", DateTime.MinValue, new List <string>(), null, null, new List <EventCategory> {
                new EventCategory("event", "slug", "icon")
            }, null, null, null, null);

            _eventFactory.Setup(e => e.ToModel(It.IsAny <ContentfulEvent>())).Returns(modelledEvent);

            var collection  = new ContentfulCollection <ContentfulShowcase>();
            var rawShowcase = new ContentfulShowcaseBuilder().Slug(slug).Build();

            collection.Items = new List <ContentfulShowcase> {
                rawShowcase
            };

            var builder = new QueryBuilder <ContentfulShowcase>().ContentTypeIs("showcase").FieldEquals("fields.slug", slug).Include(3);

            _contentfulClient.Setup(o => o.GetEntries(It.Is <QueryBuilder <ContentfulShowcase> >(q => q.Build() == builder.Build()), It.IsAny <CancellationToken>()))
            .ReturnsAsync(collection);

            _cacheWrapper.Setup(o => o.GetFromCacheOrDirectlyAsync(It.Is <string>(s => s == "event-all"), It.IsAny <Func <Task <IList <ContentfulEvent> > > >(), It.Is <int>(s => s == 60))).ReturnsAsync(events);

            // Act
            var response = AsyncTestHelper.Resolve(_repository.GetShowcases(slug));

            // Assert
            response.StatusCode.Should().Be(HttpStatusCode.OK);
        }
예제 #2
0
        public ShowcasesViewModel(INetworkActivityService networkActivity, ShowcaseRepository showcaseRepository)
        {
            GoToShowcaseCommand = ReactiveCommand.Create();
            GoToShowcaseCommand.OfType <Showcase>().Subscribe(x =>
            {
                var vm          = CreateViewModel <ShowcaseViewModel>();
                vm.ShowcaseSlug = x.Slug;
                vm.Title        = x.Name;
                ShowViewModel(vm);
            });

            var showcases = new ReactiveList <Showcase>();

            Showcases = showcases;

            LoadCommand = ReactiveCommand.CreateAsyncTask(async t =>
                                                          showcases.Reset(await showcaseRepository.GetShowcases()));
            LoadCommand.TriggerNetworkActivity(networkActivity);
        }