public async Task WithMissingUserIdReturnsBadRequest() { // arrange var mockUserAuth = Mockers.MockUserAuth(); string userId; IActionResult actionResult = new BadRequestObjectResult(new { error = "Error." }); mockUserAuth.Setup(m => m.GetUserIdAsync(It.IsAny <HttpRequest>(), out userId, out actionResult)) .Returns(Task.FromResult(false)); var fakeRepository = new FakeBlobRepository(); Mock <HttpRequest> mockRequest = Mockers.MockRequest(null); Mock <ILogger> mockLogger = new Mock <ILogger>(); var sut = new Functions( mockUserAuth.Object, fakeRepository); // act var response = await sut.AddBegin(mockRequest.Object, mockLogger.Object).ConfigureAwait(false); var objectResult = (BadRequestObjectResult)response; var addResponse = (dynamic)objectResult.Value; // assert Assert.AreEqual("Error.", addResponse.error); }
/// <summary> /// Gets an audio operations class with a blob uploaded to the mock /// blob repository. /// </summary> /// <param name="mockUserAuth">Returns the mock user auth.</param> /// <param name="mockHealthService">Returns the mock health service.</param> /// <returns>An instance of the <see cref="Functions"/> class.</returns> public static Functions GetApiFunctions( out Mock <IUserAuthenticationService> mockUserAuth, out Mock <IHealthService> mockHealthService) { mockUserAuth = Mockers.MockUserAuth(); mockHealthService = new Mock <IHealthService>(); return(new Functions(mockUserAuth.Object, mockHealthService.Object)); }
/// <summary> /// Gets an audio operations class with a blob uploaded to the mock /// blob repository. /// </summary> /// <param name="mockUserAuth">Returns the mock user auth.</param> /// <param name="fakeBlobRepo">Returns the fake blob repository with the added blob.</param> /// <param name="mockEventPub">Returns the fake event publisher.</param> /// <returns>An instance of the <see cref="Api.Functions"/> class.</returns> public static Api.Functions GetApiFunctionsWithBlobUploaded( out Mock <IUserAuthenticationService> mockUserAuth, out FakeBlobRepository fakeBlobRepo, out Mock <IEventGridPublisherService> mockEventPub) { mockUserAuth = Mockers.MockUserAuth(); mockEventPub = new Mock <IEventGridPublisherService>(); var mockEventSub = new Mock <IEventGridSubscriberService>(); var mockAudioTranscriptionService = new Mock <Api.IAudioTranscriptionService>(); fakeBlobRepo = new FakeBlobRepository(); fakeBlobRepo.AddFakeBlob(Mockers.AudioContainerName, $"{Mockers.DefaultUserId}/{Mockers.DefaultId}"); return(new Api.Functions( mockUserAuth.Object, fakeBlobRepo, mockEventSub.Object, mockEventPub.Object, mockAudioTranscriptionService.Object)); }
public async Task WithThrownExceptionThrowsException() { // arrange var mockUserAuth = Mockers.MockUserAuth(); string userId; IActionResult actionResult = new BadRequestObjectResult(new { error = "Error." }); System.Exception ex = new System.Exception("My error."); mockUserAuth.Setup(m => m.GetUserIdAsync(It.IsAny <HttpRequest>(), out userId, out actionResult)) .ThrowsAsync(ex); var fakeRepository = new FakeBlobRepository(); Mock <HttpRequest> mockRequest = Mockers.MockRequest(null); Mock <AbstractLogger> mockLogger = new Mock <AbstractLogger>(); var sut = new Functions( mockUserAuth.Object, fakeRepository); // act await Assert.ThrowsExceptionAsync <System.Exception>(() => sut.AddBegin(mockRequest.Object, mockLogger.Object)).ConfigureAwait(false); mockLogger.Verify(moc => moc.Log(LogLevel.Error, It.IsAny <System.Exception>(), "Unhandled Exception.")); }
public async Task WithSuccessReturnsIdAndUrl() { // arrange var mockUserAuth = Mockers.MockUserAuth(); var fakeRepository = new FakeBlobRepository(); Mock <HttpRequest> mockRequest = Mockers.MockRequest(null); Mock <ILogger> mockLogger = new Mock <ILogger>(); var sut = new Functions( mockUserAuth.Object, fakeRepository); // act var response = await sut.AddBegin(mockRequest.Object, mockLogger.Object).ConfigureAwait(false); var objectResult = (OkObjectResult)response; var addResponse = (AddBeginResponse)objectResult.Value; // assert Assert.IsNotNull(addResponse.Id); Assert.IsNotNull(addResponse.UploadUrl); Assert.AreEqual($"https://fakerepository/audio/fakeuserid/{addResponse.Id}?sasToken=Write", addResponse.UploadUrl.ToString()); }