public async Task GetGalleryTopicItemAsync_WithTopicIdNull_ThrowsNewArgumentNullException() { var client = new ImgurClient("123", "1234"); var endpoint = new TopicEndpoint(client); var exception = await Record.ExceptionAsync( async() => await endpoint.GetGalleryTopicItemAsync("XyZ", null).ConfigureAwait(false)) .ConfigureAwait(false); Assert.NotNull(exception); Assert.IsType <ArgumentNullException>(exception); }
public async Task GetGalleryTopicItemAsync_NotNull() { var mockUrl = "https://api.imgur.com/3/topics/Current_Events/xyZ"; var mockResponse = new HttpResponseMessage(HttpStatusCode.OK) { Content = new StringContent(MockTopicEndpointResponses.GetGalleryTopicItem) }; var client = new ImgurClient("123", "1234"); var endpoint = new TopicEndpoint(client, new HttpClient(new MockHttpMessageHandler(mockUrl, mockResponse))); var item = await endpoint.GetGalleryTopicItemAsync("xyZ", "Current Events").ConfigureAwait(false); Assert.NotNull(item); }
public async Task GetGalleryTopicItemsAsync_True() { var mockUrl = "https://api.imgur.com/3/topics/Current_Events/top/day/3"; var mockResponse = new HttpResponseMessage(HttpStatusCode.OK) { Content = new StringContent(MockTopicEndpointResponses.GetGalleryTopicItems) }; var client = new ImgurClient("123", "1234"); var endpoint = new TopicEndpoint(client, new HttpClient(new MockHttpMessageHandler(mockUrl, mockResponse))); var items = await endpoint.GetGalleryTopicItemsAsync("Current Events", CustomGallerySortOrder.Top, TimeWindow.Day, 3) .ConfigureAwait(false); Assert.True(items.Any()); }
public async Task GetDefaultTopicsAsync_True() { var mockUrl = "https://api.imgur.com/3/topics/defaults"; var mockResponse = new HttpResponseMessage(HttpStatusCode.OK) { Content = new StringContent(MockTopicEndpointResponses.GetDefaultTopics) }; var client = new ImgurClient("123", "1234"); var endpoint = new TopicEndpoint(client, new HttpClient(new MockHttpMessageHandler(mockUrl, mockResponse))); var topics = await endpoint.GetDefaultTopicsAsync().ConfigureAwait(false); var topic = topics.FirstOrDefault(); Assert.NotNull(topic); Assert.NotNull(topic.TopPost); Assert.NotNull(topic.HeroImage); }
public override async Task <DialogTurnResult> BeginDialogAsync(DialogContext dc, object options = null, CancellationToken cancellationToken = default) { string topicKey = TopicKey.GetValue(dc.State); string endpoint = TopicEndpoint.GetValue(dc.State); string topicHostname = new Uri(endpoint).DnsSafeHost; string eventType = EventType.GetValue(dc.State); object eventData = EventData.GetValue(dc.State); string eventSubject = Subject.GetValue(dc.State); TopicCredentials topicCredentials = new TopicCredentials(topicKey); EventGridClient client = new EventGridClient(topicCredentials); var events = new List <EventGridEvent>() { new EventGridEvent() { Id = Guid.NewGuid().ToString(), EventType = eventType, Data = eventData, EventTime = DateTime.Now, Subject = eventSubject, DataVersion = "2.0" } }; await client.PublishEventsAsync(topicHostname, events, cancellationToken); await dc.Context.TraceActivityAsync(nameof(PublishEventGridEvent), label : "Event Grid events published", value : new { TopicHostname = topicHostname, Endpoint = endpoint, Events = events, }); return(await dc.EndDialogAsync(cancellationToken : cancellationToken)); }