Esempio n. 1
0
        public void GetsGroupForGroupSlug()
        {
            const string slug            = "group_slug";
            var          contentfulGroup = new ContentfulGroupBuilder().Slug(slug).Build();
            var          collection      = new ContentfulCollection <ContentfulGroup>();

            collection.Items = new List <ContentfulGroup> {
                contentfulGroup
            };

            var group   = new GroupBuilder().Build();
            var builder = new QueryBuilder <ContentfulGroup>().ContentTypeIs("group").FieldEquals("fields.slug", slug).Include(1);

            _client.Setup(o => o.GetEntries(It.Is <QueryBuilder <ContentfulGroup> >(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(new List <ContentfulEvent>());

            _groupFactory.Setup(o => o.ToModel(contentfulGroup)).Returns(group);

            var response = AsyncTestHelper.Resolve(_repository.GetGroup(slug, false));

            response.StatusCode.Should().Be(HttpStatusCode.OK);
            var responseGroup = response.Get <Group>();

            responseGroup.Should().BeEquivalentTo(group);
        }
Esempio n. 2
0
        private List <ContentfulGroup> SetupMockFactoriesAndGetContentfulGroupsForCollection(string testCategorySlug)
        {
            var contentfulGroupCategory     = new ContentfulGroupCategoryBuilder().Slug(testCategorySlug).Build();
            var contentfulGroupWithCategory = new ContentfulGroupBuilder().Slug("slug-with-categories").CategoriesReference(
                new List <ContentfulGroupCategory> {
                contentfulGroupCategory
            }).Build();
            var contentfulGroupWithoutCategory = new ContentfulGroupBuilder().Slug("slug-without-categories").Build();

            var groupCategory     = new GroupCategory("name", testCategorySlug, "icon", "imagueUrl");
            var groupWithCategory = new GroupBuilder().Slug("slug-with-categories").CategoriesReference(
                new List <GroupCategory>()
            {
                groupCategory
            })
                                    .Build();

            var groupWithoutCategory = new GroupBuilder().Slug("slug-without-categories").Build();

            _groupFactory.Setup(o => o.ToModel(contentfulGroupWithCategory)).Returns(groupWithCategory);
            _groupFactory.Setup(o => o.ToModel(contentfulGroupWithoutCategory)).Returns(groupWithoutCategory);

            return(new List <ContentfulGroup>
            {
                contentfulGroupWithCategory,
                contentfulGroupWithoutCategory
            });
        }
Esempio n. 3
0
        public void ShouldReturnVolunteeringWhenSelected()
        {
            // Arrange
            const string slug     = "unit-test-GroupCategory";
            MapPosition  location = new MapPosition()
            {
                Lat = 1, Lon = 1
            };
            var contentfulGroupWithlocation = new ContentfulGroupBuilder().Slug(slug).MapPosition(location).Build();
            var collection = new ContentfulCollection <ContentfulGroup>();

            collection.Items = new List <ContentfulGroup> {
                contentfulGroupWithlocation
            };

            bool volunteering      = true;
            var  groupWithLocation = new GroupBuilder().Volunteering(volunteering).Slug(slug).Build();

            var builder = new QueryBuilder <ContentfulGroup>().ContentTypeIs("group").FieldEquals("fields.slug", slug).Include(1);

            _client.Setup(o => o.GetEntries(It.Is <QueryBuilder <ContentfulGroup> >(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(new List <ContentfulEvent>());
            _groupFactory.Setup(o => o.ToModel(contentfulGroupWithlocation)).Returns(groupWithLocation);

            // Act
            var response = AsyncTestHelper.Resolve(_repository.GetGroup(slug, false));

            // Assert
            response.StatusCode.Should().Be(HttpStatusCode.OK);
            var responseProfile = response.Get <Group>();

            responseProfile.Volunteering.Should().Be(volunteering);
        }
Esempio n. 4
0
        public void DoesntGetGroupWhenHiddenDateToIsInTheFutureAndHiddenDateFromIsNull()
        {
            // Arrange
            const string slug            = "group_slug";
            var          contentfulGroup = new ContentfulGroupBuilder().Slug(slug).DateHiddenTo(DateTime.Now.AddDays(3)).Build();
            var          collection      = new ContentfulCollection <ContentfulGroup>();

            collection.Items = new List <ContentfulGroup> {
                contentfulGroup
            };

            var group = new GroupBuilder().Slug("group_slug").DateHiddenTo(DateTime.Now.AddDays(3)).Build();

            var builder = new QueryBuilder <ContentfulGroup>().ContentTypeIs("group").FieldEquals("fields.slug", slug).Include(1);

            _client.Setup(o => o.GetEntries(It.Is <QueryBuilder <ContentfulGroup> >(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(new List <ContentfulEvent>());

            _groupFactory.Setup(o => o.ToModel(contentfulGroup)).Returns(group);

            // Act
            var response = AsyncTestHelper.Resolve(_repository.GetGroup(slug, true));

            // Assert
            response.StatusCode.Should().Be(HttpStatusCode.NotFound);
            var responseGroup = response.Get <Group>();

            responseGroup.Should().BeNull();
        }
Esempio n. 5
0
        public void ShouldReturnListOfGroupsWhereAdministratorMatchesEmailAddress()
        {
            // Arrange
            var emailAddress             = "*****@*****.**";
            var contentfulGroupsReturned = new List <ContentfulGroup>();
            var correctContentfulGroup   = new ContentfulGroupBuilder().GroupAdministrators(new GroupAdministrators()
            {
                Items = new List <GroupAdministratorItems>()
                {
                    new GroupAdministratorItems()
                    {
                        Email = emailAddress, Permission = "A"
                    }
                }
            }).Build();

            contentfulGroupsReturned.Add(new ContentfulGroupBuilder().GroupAdministrators(new GroupAdministrators()
            {
                Items = new List <GroupAdministratorItems> {
                    new GroupAdministratorItems()
                    {
                        Email = "*****@*****.**", Permission = "E"
                    }
                }
            }).Build());
            contentfulGroupsReturned.Add(correctContentfulGroup);
            contentfulGroupsReturned.Add(new ContentfulGroupBuilder().GroupAdministrators(new GroupAdministrators()
            {
                Items = new List <GroupAdministratorItems> {
                    new GroupAdministratorItems()
                    {
                        Email = "*****@*****.**", Permission = "A"
                    }
                }
            }).Build());
            contentfulGroupsReturned.Add(new ContentfulGroupBuilder().GroupAdministrators(new GroupAdministrators()
            {
                Items = new List <GroupAdministratorItems> {
                    new GroupAdministratorItems()
                    {
                        Email = "*****@*****.**", Permission = "A"
                    }
                }
            }).Build());
            var collection = new ContentfulCollection <ContentfulGroup>();

            collection.Items = contentfulGroupsReturned;

            var groupReturned = new GroupBuilder().GroupAdministrators(new GroupAdministrators()
            {
                Items = new List <GroupAdministratorItems>()
                {
                    new GroupAdministratorItems()
                    {
                        Email = emailAddress, Permission = "A"
                    }
                }
            }).Build();

            var builder = new QueryBuilder <ContentfulGroup>().ContentTypeIs("group").FieldExists("fields.groupAdministrators")
                          .Include(1)
                          .Limit(ContentfulQueryValues.LIMIT_MAX);

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

            _groupFactory.Setup(o => o.ToModel(correctContentfulGroup)).Returns(groupReturned);

            // Act
            var response       = AsyncTestHelper.Resolve(_repository.GetAdministratorsGroups(emailAddress));
            var filteredGroups = response.Get <List <Group> >();

            // Assert
            filteredGroups.Count().Should().Be(1);
        }
Esempio n. 6
0
        public void ShouldOrderByZToAAsSpecified()
        {
            // Arrange
            var groupCategory = new GroupCategory("name", "slug", "icon", "image");
            var location      = new MapPosition()
            {
                Lat = 5, Lon = -2
            };
            var contentfulGroupFirst  = new ContentfulGroupBuilder().Slug("slug1").Build();
            var contentfulGroupSecond = new ContentfulGroupBuilder().Slug("slug2").Build();
            var contentfulGroupThird  = new ContentfulGroupBuilder().Slug("slug3").Build();
            var collection            = new ContentfulCollection <ContentfulGroup>
            {
                Items = new List <ContentfulGroup> {
                    contentfulGroupFirst, contentfulGroupSecond, contentfulGroupThird
                }
            };

            var groupfirst = new GroupBuilder().Name("aGroup").Slug("slug1").MapPosition(location).CategoriesReference(new List <GroupCategory>()
            {
                groupCategory
            }).Build();
            var groupsecond = new GroupBuilder().Name("bGroup").Slug("slug2").MapPosition(location).CategoriesReference(new List <GroupCategory>()
            {
                groupCategory
            }).Build();
            var groupthird = new GroupBuilder().Name("cGroup").Slug("slug3").MapPosition(location).CategoriesReference(new List <GroupCategory>()
            {
                groupCategory
            }).Build();

            var builder = new QueryBuilder <ContentfulGroup>().ContentTypeIs("group").Include(1).FieldEquals("fields.mapPosition[near]", Defaults.Groups.StockportLatitude + "," + Defaults.Groups.StockportLongitude + ",10").Build();

            _client.Setup(o => o.GetEntries <ContentfulGroup>(It.Is <string>(q => q.Contains(builder)),
                                                              It.IsAny <CancellationToken>())).ReturnsAsync(collection);

            var noLatLngBuilder = new QueryBuilder <ContentfulGroup>().ContentTypeIs("group").Include(1).Build();

            _client.Setup(o => o.GetEntries <ContentfulGroup>(It.Is <string>(q => q.Contains(noLatLngBuilder)),
                                                              It.IsAny <CancellationToken>())).ReturnsAsync(collection);

            _groupFactory.Setup(o => o.ToModel(contentfulGroupFirst)).Returns(groupfirst);
            _groupFactory.Setup(o => o.ToModel(contentfulGroupSecond)).Returns(groupsecond);
            _groupFactory.Setup(o => o.ToModel(contentfulGroupThird)).Returns(groupthird);

            _cacheWrapper.Setup(o => o.GetFromCacheOrDirectlyAsync(It.Is <string>(s => s == "group-categories"), It.IsAny <Func <Task <List <GroupCategory> > > >(), It.Is <int>(s => s == 60))).ReturnsAsync(new List <GroupCategory>()
            {
                groupCategory
            });

            // Act
            var response = AsyncTestHelper.Resolve(_repository.GetGroupResults(new GroupSearch
            {
                Category      = string.Empty,
                GetInvolved   = string.Empty,
                Latitude      = 0.0d,
                Location      = string.Empty,
                Longitude     = 0.0d,
                Order         = "name z-a",
                Organisation  = string.Empty,
                SubCategories = string.Empty,
                Tag           = string.Empty,
                Tags          = string.Empty
            }, "slug"));
            var filteredGroupResults = response.Get <GroupResults>();

            // Assert
            filteredGroupResults.Groups.First().Should().Be(groupthird);
            filteredGroupResults.Groups[1].Should().Be(groupsecond);
            filteredGroupResults.Groups[2].Should().Be(groupfirst);
        }