public async Task ProcessEmailRequestBatch_CannotBeRetried() { var graphRequests = this.GetGraphRequest(); var httpresponsemessage = this.GetEmailResponseMessage(graphRequests, "ErrorSubmissionQuotaExceeded", "Quota Exceeded", HttpStatusCode.TooManyRequests); var handlerMock = new Mock <HttpMessageHandler>(); _ = handlerMock .Protected() .Setup <Task <HttpResponseMessage> >( "SendAsync", ItExpr.IsAny <HttpRequestMessage>(), ItExpr.IsAny <CancellationToken>()) .ReturnsAsync(httpresponsemessage); var httpClient = new HttpClient(handlerMock.Object); Exception ex = null; var msGrpahProvider = new MSGraphProvider(this.MsGraphSetting, Options.Create(this.retrySetting), this.Logger, httpClient); try { var result = await msGrpahProvider.ProcessEmailRequestBatch(this.TestTokenHeader, graphRequests).ConfigureAwait(false); } catch (Exception e) { ex = e; } Assert.IsTrue(ex?.Message?.Contains("An error occurred while processing notification batch", StringComparison.OrdinalIgnoreCase)); }
public async Task ProcessDeleteInvite_BadRequest() { var eventId = Guid.NewGuid().ToString(); var id = Guid.NewGuid().ToString(); HttpResponseMessage resp = this.GetHttpResponseMessage(HttpStatusCode.BadRequest, id); var handlerMock = new Mock <HttpMessageHandler>(); _ = handlerMock .Protected() .Setup <Task <HttpResponseMessage> >( "SendAsync", ItExpr.IsAny <HttpRequestMessage>(), ItExpr.IsAny <CancellationToken>()) .ReturnsAsync(resp); var httpClient = new HttpClient(handlerMock.Object); var notificationId = Guid.NewGuid().ToString(); var msGrpahProvider = new MSGraphProvider(this.MsGraphSetting, Options.Create(this.retrySetting), this.Logger, httpClient); Exception ex = null; try { var result = await msGrpahProvider.DeleteMeetingInvite(this.TestTokenHeader, notificationId, eventId).ConfigureAwait(false); } catch (Exception e) { ex = e; } Assert.IsTrue(ex?.Message?.Contains($"An error occurred while sending notification id: {notificationId}")); }
public async Task ProcessSendInvite_Response_Null() { var notificationId = Guid.NewGuid().ToString(); Exception ex = null; var msGrpahProvider = new MSGraphProvider(this.MsGraphSetting, Options.Create(this.retrySetting), this.Logger, this.MockedHttpClient.Object); try { var result = await msGrpahProvider.SendMeetingInvite(this.TestTokenHeader, this.GetInvitePayload(), notificationId).ConfigureAwait(false); } catch (Exception e) { ex = e; } Assert.IsTrue(ex?.Message?.Contains($"An error occurred while sending notification id: {notificationId}")); }
public async Task ProcessEmailRequestBatch_Response_Null() { var graphRequests = this.GetGraphRequest(); Exception ex = null; var msGrpahProvider = new MSGraphProvider(this.MsGraphSetting, Options.Create(this.retrySetting), this.Logger, this.MockedHttpClient.Object); try { var result = await msGrpahProvider.ProcessEmailRequestBatch(this.TestTokenHeader, graphRequests).ConfigureAwait(false); } catch (Exception e) { ex = e; } Assert.IsTrue(ex?.Message?.Contains("An error occurred while processing notification batch", StringComparison.OrdinalIgnoreCase)); }
public async Task ProcessSendInvite_RequestTimeout() { HttpResponseMessage resp = this.GetHttpResponseMessage(HttpStatusCode.RequestTimeout, null); var handlerMock = new Mock <HttpMessageHandler>(); _ = handlerMock .Protected() .Setup <Task <HttpResponseMessage> >( "SendAsync", ItExpr.IsAny <HttpRequestMessage>(), ItExpr.IsAny <CancellationToken>()) .ReturnsAsync(resp); var httpClient = new HttpClient(handlerMock.Object); var notificationId = Guid.NewGuid().ToString(); var msGrpahProvider = new MSGraphProvider(this.MsGraphSetting, Options.Create(this.retrySetting), this.Logger, httpClient); var result = await msGrpahProvider.SendMeetingInvite(this.TestTokenHeader, this.GetInvitePayload(), notificationId).ConfigureAwait(false); Assert.AreEqual(result.StatusCode, HttpStatusCode.RequestTimeout); }
public void ProcessSendInviteAttachments_Success() { var eventId = Guid.NewGuid().ToString(); var id = Guid.NewGuid().ToString(); HttpResponseMessage resp = this.GetHttpResponseMessage(HttpStatusCode.TooManyRequests, null); var handlerMock = new Mock <HttpMessageHandler>(); _ = handlerMock .Protected() .Setup <Task <HttpResponseMessage> >( "SendAsync", ItExpr.IsAny <HttpRequestMessage>(), ItExpr.IsAny <CancellationToken>()) .ReturnsAsync(resp); var httpClient = new HttpClient(handlerMock.Object); var notificationId = Guid.NewGuid().ToString(); var msGrpahProvider = new MSGraphProvider(this.MsGraphSetting, Options.Create(this.retrySetting), this.Logger, httpClient); var result = msGrpahProvider.SendMeetingInviteAttachments(this.TestTokenHeader, this.GetAttachments(), notificationId, eventId); Assert.AreEqual(result.Count, 2); }
public async Task ProcessEmailRequestBatch_Success() { var graphRequests = this.GetGraphRequest(); var httpresponsemessage = this.GetEmailResponseMessage(graphRequests, null, null, HttpStatusCode.Accepted); var handlerMock = new Mock <HttpMessageHandler>(); _ = handlerMock .Protected() .Setup <Task <HttpResponseMessage> >( "SendAsync", ItExpr.IsAny <HttpRequestMessage>(), ItExpr.IsAny <CancellationToken>()) .ReturnsAsync(httpresponsemessage); var httpClient = new HttpClient(handlerMock.Object); var msGrpahProvider = new MSGraphProvider(this.MsGraphSetting, Options.Create(this.retrySetting), this.Logger, httpClient); var result = await msGrpahProvider.ProcessEmailRequestBatch(this.TestTokenHeader, graphRequests).ConfigureAwait(false); Assert.AreEqual(2, result.Where(x => x.Status == HttpStatusCode.Accepted).Count()); }
public async Task ProcessUpdateInvite_Success() { var eventId = Guid.NewGuid().ToString(); var id = Guid.NewGuid().ToString(); HttpResponseMessage resp = this.GetHttpResponseMessage(HttpStatusCode.Accepted, id); var handlerMock = new Mock <HttpMessageHandler>(); _ = handlerMock .Protected() .Setup <Task <HttpResponseMessage> >( "SendAsync", ItExpr.IsAny <HttpRequestMessage>(), ItExpr.IsAny <CancellationToken>()) .ReturnsAsync(resp); var httpClient = new HttpClient(handlerMock.Object); var notificationId = Guid.NewGuid().ToString(); var msGrpahProvider = new MSGraphProvider(this.MsGraphSetting, Options.Create(this.retrySetting), this.Logger, httpClient); var result = await msGrpahProvider.UpdateMeetingInvite(this.TestTokenHeader, this.GetInvitePayload(), notificationId, eventId).ConfigureAwait(false); Assert.AreEqual(result.StatusCode, HttpStatusCode.Accepted); var res = JsonConvert.DeserializeObject <InviteResponse>(result.Result); Assert.AreEqual(res.EventId, id); }