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); }
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()); }