public async Task FindTopicCategoriesUsesDataCorrectly() { var options = new MeetupClientOptions { Client = FakeHttpClient.AssertResponse("TopicCategory") }; var meetup = MeetupClient.WithApiToken("TestToken", options); var topics = await meetup.Topics.FindCategories(); Assert.NotNull(topics.Data); Assert.Equal(3, topics.Data.Length); var topic = topics.Data.Skip(1).First(); Assert.Equal("Tech", topic.Name); Assert.Equal("tech", topic.ShortName); Assert.Equal("Tech", topic.SortName); Assert.Equal(292, topic.Id); Assert.Single(topic.CategoryIds); Assert.NotNull(topic.Photo); Assert.Equal(450131949, topic.Photo.Id); Assert.Equal(MeetupPhotoType.Event, topic.Photo.Type); Assert.Equal("https://secure.meetupstatic.com/", topic.Photo.BaseUrl.ToString()); Assert.Equal("https://secure.meetupstatic.com/photos/event/2/e/a/d/highres_450131949.jpeg", topic.Photo.HighRes.ToString()); Assert.Equal("https://secure.meetupstatic.com/photos/event/2/e/a/d/600_450131949.jpeg", topic.Photo.Photo.ToString()); Assert.Equal("https://secure.meetupstatic.com/photos/event/2/e/a/d/thumb_450131949.jpeg", topic.Photo.Thumb.ToString()); }
public async Task GetGeneratesCorrectUrl() { var options = new MeetupClientOptions { Client = FakeHttpClient.AssertUrl("/tech-nottingham") }; var meetup = MeetupClient.WithApiToken("testToken", options); await meetup.Groups.Get("tech-nottingham"); }
public async Task GetWithFieldsGeneratesCorrectUrl() { var options = new MeetupClientOptions { Client = FakeHttpClient.AssertUrl("/tech-nottingham?fields=plain_text_no_images_description") }; var meetup = MeetupClient.WithApiToken("testToken", options); await meetup.Groups.Get("tech-nottingham", new [] { "plain_text_no_images_description" }); }
public async Task FindTopicUsesCorrectUrl() { var options = new MeetupClientOptions { Client = FakeHttpClient.AssertUrl("/find/topics?photo-host=public&query=tech") }; var meetup = MeetupClient.WithApiToken("testToken", options); await meetup.Topics.Find("tech"); }
public async Task FindTopicCategoriesUsesCorrectUrl() { var options = new MeetupClientOptions { Client = FakeHttpClient.AssertUrl("/find/topic_categories?photo-host=public") }; var meetup = MeetupClient.WithApiToken("testToken", options); await meetup.Topics.FindCategories(); }
public async Task FindTopicThrowsIfQueryIsEmpty() { var options = new MeetupClientOptions { Client = FakeHttpClient.AssertUrl("/find/topics?photo-host=public&query=tech") }; var meetup = MeetupClient.WithApiToken("testToken", options); await Assert.ThrowsAsync <ArgumentNullException>(() => meetup.Topics.Find(string.Empty)); }
public async Task CreateForGeneratesCorrectUrl() { var options = new MeetupClientOptions { Client = FakeHttpClient.AssertUrl("/tech-nottingham/venues?fields=taglist", System.Net.Http.HttpMethod.Post) }; var meetup = MeetupClient.WithApiToken("testToken", options); await meetup.Venues.CreateFor("tech-nottingham", new Venue()); }
public async Task RecommendedVenueEmptyGeneratesCorrectUrl() { var options = new MeetupClientOptions { Client = FakeHttpClient.AssertUrl("/recommended/venues?fields=taglist") }; var meetup = MeetupClient.WithApiToken("testToken", options); await meetup.Venues.Recommended(); }
public async Task StatusCreatesCorrectCall() { var client = FakeHttpClient.AssertUrl("/status"); var defaults = new MeetupClientOptions { Client = client }; var meetup = new MeetupClient(defaults); await meetup.Meta.Status(); }
public async Task ForGroupGeneratesCorrectUrl() { var options = new MeetupClientOptions { Client = FakeHttpClient.AssertUrl("/tech-nottingham/venues?fields=taglist") }; var meetup = MeetupClient.WithApiToken("testToken", options); await meetup.Venues.For("tech-nottingham"); }
public void CustomSerializerWithOAuthTokenSetCorrectly() { var defaults = new MeetupClientOptions { CustomSerializer = new JsonSerializer() }; var meetupClient = MeetupClient.WithOAuthToken(TestToken, defaults); Assert.Equal(defaults, meetupClient.Options); }
public async Task FindVenueOrderedNameGeneratesCorrectUrl() { var request = new FindVenuesRequest("rock city"); var options = new MeetupClientOptions { Client = FakeHttpClient.AssertUrl("/find/venues?text=rock+city&fields=taglist&order=rating") }; var meetup = MeetupClient.WithApiToken("testToken", options); await meetup.Venues.Find("rock city", VenueOrderBy.Rating); }
public async Task RecommendedTopicThrowsIfGroupsListIsEmpty() { var options = new MeetupClientOptions { Client = FakeHttpClient.AssertUrl("/find/topics?photo-host=public&query=tech") }; var meetup = MeetupClient.WithApiToken("testToken", options); var exception = await Assert.ThrowsAsync <ArgumentNullException>(() => meetup.Topics.RecommendedGroupTopic(new int[] {})); Assert.Equal("basedOnTopics", exception.ParamName); }
public async Task LocationFindGeneratesCorrectResponse() { var options = new MeetupClientOptions { Client = FakeHttpClient.AssertResponse("FindLocation") }; var meetup = MeetupClient.WithApiToken("testToken", options); var response = await meetup.Geo.FindLocation(string.Empty); Assert.Equal(5, response.Data.Length); }
public async Task CreateForGeneratesCorrectBodyContent() { var options = new MeetupClientOptions { Client = FakeHttpClient.AssertContent <Venue>(v => { Assert.NotNull(v); Assert.Equal("random place", v.Name); }) }; var meetup = MeetupClient.WithApiToken("testToken", options); await meetup.Venues.CreateFor("tech-nottingham", new Venue { Name = "random place" }); }
public async Task SetQuerystringAppearsInUrl() { var defaults = new MeetupClientOptions { Client = new FakeHttpClient(req => { Assert.Equal("/test?test=test", req.RequestUri.PathAndQuery); return(new HttpResponseMessage()); }) }; await MeetupRequestMethods.GetAsync("/test", defaults, new FakeMeetupRequest()); }
public async Task StatusDeserialisesCorrectly() { var defaults = new MeetupClientOptions { Client = FakeHttpClient.AssertResponse("StatusResponse") }; var meetup = new MeetupClient(defaults); var meetupResponse = await meetup.Meta.Status(); var statusResponse = meetupResponse.Data; Assert.Equal("test message", statusResponse.Message); Assert.Equal("test title", statusResponse.Title); Assert.Equal(ApiStatus.Unavailable, statusResponse.ApiStatus); }
public async Task FindTopicCategoriesUsesRequest() { var options = new MeetupClientOptions { Client = FakeHttpClient.AssertUrl("/find/topic_categories?photo-host=public&lat=45.3&lon=-1.18&radius=23.4") }; var request = new FindTopicCategoriesRequest { Latitude = 45.3, Longitude = -1.18, MilesRadius = 23.4 }; var meetup = MeetupClient.WithApiToken("testToken", options); await meetup.Topics.FindCategories(request); }
public async Task GetGeneratesCorrectData() { var options = new MeetupClientOptions { Client = FakeHttpClient.AssertResponse("Group") }; var meetup = MeetupClient.WithApiToken("testToken", options); var response = await meetup.Groups.Get("tech-nottingham"); var data = response.Data; Assert.Equal(14171002, data.Id); Assert.Equal("Tech Nottingham", data.Name); Assert.Equal(MeetupVisibility.Public, data.Visibility); Assert.NotNull(data.Organizer); Assert.Equal(202648061, data.Organizer.Id); }
public async Task RsvpParsesDataCorrectly() { var options = new MeetupClientOptions { Client = FakeHttpClient.AssertResponse("Rsvps") }; var meetup = MeetupClient.WithApiToken("testToken", options); var response = await meetup.Rsvps.For("tech-nottingham", "258091947"); Assert.Single(response.Data); var rsvpData = response.Data.First(); Assert.Equal("yes", rsvpData.Response); Assert.Equal("coorganizer", rsvpData.Member.Role); }
public async Task RsvpForUsesCorrectUrl() { var request = new GetRsvpsRequest("tech-nottingham", "258091947") { Response = RsvpStatus.YesAndNo, OrderBy = RsvpOrderBy.Social, Descending = true }; var querystring = "response=yes%2Cno&order=social&desc=true"; var options = new MeetupClientOptions { Client = FakeHttpClient.AssertUrl("/tech-nottingham/events/258091947/rsvps?photo-host=public&" + querystring) }; var meetup = MeetupClient.WithApiToken("testToken", options); await meetup.Rsvps.For(request); }
public async Task RecommendedTopicGeneratesCorrectUrl() { var request = new RecommendedGroupTopicRequest("tech") { LanguageCode = "en_US", OtherTopics = new [] { 45 }, ExcludeTopics = new[] { 123 }, NumberOfResults = 20 }; var options = new MeetupClientOptions { Client = FakeHttpClient.AssertUrl("/recommended/group_topics?photo-host=public&text=tech&other_topics=45&exclude_topics=123&lang=en_US&page=20") }; var meetup = MeetupClient.WithApiToken("testToken", options); await meetup.Topics.RecommendedGroupTopic(request); }
public async Task ContextHeadersWork() { var defaults = new MeetupClientOptions { Client = new FakeHttpClient(req => { Assert.Equal("test%25group", req.Headers.GetValues("X-Meta-Visit").First()); Assert.Equal("12345", req.Headers.GetValues("X-Meta-Visit-Event").First()); Assert.Equal("/test?test=test", req.RequestUri.PathAndQuery); return(new HttpResponseMessage()); }) }; await MeetupRequestMethods.GetAsync("/test", defaults, new FakeMeetupRequest { ContextEventId = "12345", ContextGroupName = "test%group" }); }
public async Task FindVenueParsesData() { var options = new MeetupClientOptions { Client = FakeHttpClient.AssertResponse("FindVenues") }; var meetup = MeetupClient.WithApiToken("testToken", options); var response = await meetup.Venues.Find("test"); Assert.Equal(3, response.Data.Length); var sample = response.Data.First(); Assert.Equal(10, sample.Tags.Length); Assert.Equal(VenueVisibility.Public, sample.Visibility); Assert.Equal("Quartet statue", sample.Name); }
public async Task LocationFindGeneratesCorrectUrl() { var request = new FindLocationRequest { Name = "bas", Longitude = 57.2, Latitude = -1.18, Page = 1, PageSize = 2 }; var options = new MeetupClientOptions { Client = FakeHttpClient.AssertUrl("/find/location?query=bas&lon=57.2&lat=-1.18&page=2&offset=1") }; var meetup = MeetupClient.WithApiToken("testToken", options); await meetup.Geo.FindLocation(request); }
public async Task LocationPropertiesAreAccurate() { var options = new MeetupClientOptions { Client = FakeHttpClient.AssertResponse("FindLocation") }; var meetup = MeetupClient.WithApiToken("testToken", options); var response = await meetup.Geo.FindLocation(string.Empty); var location = response.Data[2]; Assert.Equal("Stratford ", location.City); Assert.Equal("gb", location.Country); Assert.Equal("United Kingdom", location.LocalizedCountryName); Assert.Equal("Stratford , England, United Kingdom", location.FullName); Assert.Equal("E15", location.Zip); Assert.Equal(51.54, location.Latitude); Assert.Equal(0.01, location.Longitude); }
public async Task FindTopicUsesDataCorrectly() { var options = new MeetupClientOptions { Client = FakeHttpClient.AssertResponse("Topics") }; var meetup = MeetupClient.WithApiToken("testToken", options); var response = await meetup.Topics.Find("tech"); Assert.Equal(3, response.Data.Length); var topic = response.Data.Skip(1).First(); Assert.Equal(10579, topic.Id); Assert.Equal("Technology", topic.Name); Assert.Equal("technology", topic.UrlKey); Assert.Equal("Meetup with other people interested in the internet and technology!", topic.Description); Assert.Equal(6981, topic.GroupCount); Assert.Equal(4927597, topic.MemberCount); Assert.Equal("en_US", topic.LanguageCode); }
public async Task EventForUsesCorrectUrl() { var request = new GetEventsRequest("tech-nottingham") { NoLaterThan = new DateTime(2018, 01, 01).AddMonths(1), NoEarlierThan = new DateTime(2018, 01, 01).AddDays(1), PageSize = 20, ScrollTo = EventScrollTo.recent_past, Status = EventStatus.Past | EventStatus.Upcoming, Descending = true }; var querystring = "no_earlier_than=2018-01-02T00%3A00%3A00&no_later_than=2018-02-01T00%3A00%3A00&page=20&scroll=recent_past&status=past%2Cupcoming&desc=true"; var options = new MeetupClientOptions { Client = FakeHttpClient.AssertUrl("/tech-nottingham/events?photo-host=public&" + querystring) }; var meetup = MeetupClient.WithApiToken("testToken", options); await meetup.Events.For(request); }
public async Task FindVenueRequestGeneratesCorrectUrl() { var request = new FindVenuesRequest("rock city") { Country = "UK", Latitude = 2.3, Longitude = 20.5, Location = "nottingham", MilesRadius = 25.6, Zip = "NG6", Descending = true, OrderBy = VenueOrderBy.Rating_Count }; var options = new MeetupClientOptions { Client = FakeHttpClient.AssertUrl("/find/venues?text=rock+city&fields=taglist&country=UK&lat=2.3&lon=20.5&location=nottingham&radius=25.6&zip=NG6&order=rating_count&desc=true") }; var meetup = MeetupClient.WithApiToken("testToken", options); await meetup.Venues.Find(request); }
public async Task EventParsesDataCorrectly() { var options = new MeetupClientOptions { Client = FakeHttpClient.AssertResponse("Events") }; var meetup = MeetupClient.WithApiToken("testToken", options); var response = await meetup.Events.For("tech-nottingham"); Assert.Single(response.Data); var eventData = response.Data.First(); Assert.Equal("Tech Nottingham August 2018: Secure Signups and Visual Testing", eventData.Name); Assert.Equal(84, eventData.RSVPYesCount); Assert.NotNull(eventData.Venue); Assert.Equal("Beck Street", eventData.Venue.Address1); Assert.False(eventData.Venue.Repinned); Assert.Equal(9000000, eventData.DurationMilliseconds); Assert.NotNull(eventData.Group); Assert.Equal("Techies", eventData.Group.Who); Assert.Equal(MeetupVisibility.Public, eventData.Visibility); }