public async Task ReturnOtpGenerationBadRequest() { var sessionId = TestBuilder.Faker().Random.Hash(); var otp = TestBuilder.Faker().Random.String(); var phoneNumber = TestBuilder.Faker().Random.String(); var systemName = TestBuilder.Faker().Random.Word(); var otpRequest = new OtpGenerationRequest(sessionId, new Communication("MOBILE" , phoneNumber), new OtpGenerationDetail(systemName, Action.REGISTRATION.ToString())); var generateMessage = new OtpSender(otpRepository.Object, otpGenerator.Object, smsClient.Object, new OtpProperties(5)) .GenerateMessage(otpRequest.GenerationDetail, otp); var expectedResult = new Response(ResponseType.InternalServerError, "OtpGeneration Saving failed"); otpGenerator.Setup(e => e.GenerateOtp()).Returns(otp); smsClient.Setup(e => e.Send(phoneNumber, generateMessage)).ReturnsAsync(expectedResult); var response = await otpController.GenerateOtp(otpRequest) as ObjectResult; otpGenerator.Verify(); smsClient.Verify(); response.Should().NotBeNull() .And.BeOfType <ObjectResult>() .Which.StatusCode.Should().Be(StatusCodes.Status500InternalServerError); }
private async void ReturnSuccessResponse() { var sessionId = TestBuilder.Faker().Random.Hash(); const string otpToken = "123456"; var systemName = TestBuilder.Faker().Random.Word(); var phoneNumber = TestBuilder.Faker().Phone.PhoneNumber(); var testOtpResponse = new Response(ResponseType.Success, "Otp Created"); var otpCreationDetail = new OtpGenerationDetail(systemName, Action.FORGOT_PIN.ToString()); var otpRequest = new OtpGenerationRequest(sessionId, new Communication("MOBILE" , phoneNumber), otpCreationDetail); var generatedMessage = otpSender.GenerateMessage(otpCreationDetail, otpToken); otpGenerator.Setup(e => e.GenerateOtp()).Returns(otpToken); otpWebHandler.Setup(e => e.Send(otpRequest.Communication.Value, generatedMessage, otpRequest.GenerationDetail.GetTemplateID())) .ReturnsAsync(testOtpResponse); otpRepository.Setup(e => e.Save(otpToken, sessionId)) .ReturnsAsync(testOtpResponse); var otpResponse = await otpSender.GenerateOtp(otpRequest); otpGenerator.Verify(); otpWebHandler.Verify(); otpRepository.Verify(); otpResponse.Should().BeEquivalentTo(testOtpResponse); }
public async Task ShouldSuccessInOtpGeneration() { var sessionId = TestBuilder.Faker().Random.Hash(); var systemName = TestBuilder.Faker().Random.Word(); var otp = TestBuilder.Faker().Random.String(); var phoneNumber = TestBuilder.Faker().Random.String(); var otpRequest = new OtpGenerationRequest(sessionId, new Communication("MOBILE" , phoneNumber), new OtpGenerationDetail(systemName, Action.REGISTRATION.ToString())); var expectedResult = new Response(ResponseType.Success, "Otp Created"); var generateMessage = new OtpSender(otpRepository.Object, otpGenerator.Object, smsClient.Object, new OtpProperties(5)) .GenerateMessage(otpRequest.GenerationDetail, otp); otpGenerator.Setup(e => e.GenerateOtp()).Returns(otp); smsClient.Setup(e => e.Send(phoneNumber, generateMessage)).ReturnsAsync(expectedResult); otpRepository.Setup(e => e.Save(otp, sessionId)).ReturnsAsync(expectedResult); var response = await otpController.GenerateOtp(otpRequest); otpGenerator.Verify(); smsClient.Verify(); response.Should() .NotBeNull() .And .Subject.As <OkObjectResult>() .Value .Should() .BeEquivalentTo(expectedResult); }