public async Task CourseGetAsyncReturnsHttpRequestExceptionWhenApiReturnsNotSuccessful() { // Arrange var courseGetRequest = new CourseGetRequest { CourseId = courseId, RunId = courseRunId }; var httpResponse = new HttpResponseMessage { StatusCode = HttpStatusCode.BadRequest, Content = new StringContent("{}") }; var fakeHttpRequestSender = A.Fake <IFakeHttpRequestSender>(); A.CallTo(() => fakeHttpRequestSender.Send(A <HttpRequestMessage> .Ignored)).Returns(httpResponse); var auditService = A.Fake <IAuditService>(); var fakeHttpMessageHandler = new FakeHttpMessageHandler(fakeHttpRequestSender); var httpClient = new HttpClient(fakeHttpMessageHandler) { BaseAddress = new Uri("http://SomeDummyUrl") }; var findACourseClient = new FindACourseClient(httpClient, defaultSettings, auditService, defaultLogger); // Act await Assert.ThrowsAsync <HttpRequestException>(async() => await findACourseClient.CourseGetAsync(courseGetRequest).ConfigureAwait(false)).ConfigureAwait(false); // Assert httpResponse.Dispose(); httpClient.Dispose(); fakeHttpMessageHandler.Dispose(); }
public async Task CourseGetAsyncCatchesExceptionWhenApiReturnsNotSuccessful() { // Arrange var courseGetRequest = new CourseGetRequest { CourseId = courseId, RunId = courseRunId }; var fakeHttpRequestSender = A.Fake <IFakeHttpRequestSender>(); A.CallTo(() => fakeHttpRequestSender.Send(A <HttpRequestMessage> .Ignored)).Throws <Exception>(); var auditService = A.Fake <IAuditService>(); using var fakeHttpMessageHandler = new FakeHttpMessageHandler(fakeHttpRequestSender); using var httpClient = new HttpClient(fakeHttpMessageHandler) { BaseAddress = new Uri("http://SomeDummyUrl") }; var findACourseClient = new FindACourseClient(httpClient, defaultSettings, auditService, defaultLogger); // Act var result = await findACourseClient.CourseGetAsync(courseGetRequest).ConfigureAwait(false); // Assert Assert.Null(result); }
public async Task CourseGet() { var courseGetRequest = new CourseGetRequest { CourseId = Guid.Parse("2ed8b2f9-da49-4432-963b-5842746aef5c"), RunId = Guid.Parse("f6f0036f-5cdf-486c-8b3e-1bb102940cd1"), }; var courseSearchService = new CourseSearchApiService(findACourseClient, auditService, mapper); var detailResponse = await courseSearchService.GetCourseDetailsAsync(courseGetRequest.CourseId.ToString(), courseGetRequest.RunId.ToString()).ConfigureAwait(false); detailResponse.CourseId.Should().Be(courseGetRequest.CourseId.ToString()); }
public async Task CourseGet() { //Get Details for a course var courseGetRequest = new CourseGetRequest { CourseId = Guid.Parse("36d9dfb8-7fa9-4779-beae-ca65ba429bfd"), RunId = Guid.Parse("4776fd59-f313-47c9-8fea-5f9cbc58bcd4"), }; var detailsResponse = await findACourseClient.CourseGetAsync(courseGetRequest).ConfigureAwait(false); detailsResponse.Course.CourseId.Should().Be(courseGetRequest.CourseId.ToString()); }
public async Task CourseGetAsyncReturnsResponseObjectWhenApiCallIsSuccessful() { // Arrange var courseGetRequest = new CourseGetRequest { CourseId = courseId, RunId = courseRunId }; var expectedResponse = new CourseRunDetailResponse { CourseRunId = courseRunId, CourseName = "CourseName", Course = new CourseDetailResponseCourse { CourseId = courseId }, }; var httpResponse = new HttpResponseMessage { StatusCode = HttpStatusCode.OK, Content = new StringContent(JsonConvert.SerializeObject(expectedResponse)) }; var fakeHttpRequestSender = A.Fake <IFakeHttpRequestSender>(); A.CallTo(() => fakeHttpRequestSender.Send(A <HttpRequestMessage> .Ignored)).Returns(httpResponse); var auditService = A.Fake <IAuditService>(); var fakeHttpMessageHandler = new FakeHttpMessageHandler(fakeHttpRequestSender); var httpClient = new HttpClient(fakeHttpMessageHandler) { BaseAddress = new Uri("http://SomeDummyUrl") }; var findACourseClient = new FindACourseClient(httpClient, defaultSettings, auditService, defaultLogger); // Act var result = await findACourseClient.CourseGetAsync(courseGetRequest).ConfigureAwait(false); // Assert Assert.NotNull(result); Assert.Equal(expectedResponse.CourseName, result.CourseName); Assert.Equal(expectedResponse.CourseRunId, result.CourseRunId); Assert.Equal(expectedResponse.Course.CourseId, result.Course.CourseId); httpResponse.Dispose(); httpClient.Dispose(); fakeHttpMessageHandler.Dispose(); }