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