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); }
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); }
public OtpControllerTest() { otpRepository = new Mock <IOtpRepository>(); otpGenerator = new Mock <IOtpGenerator>(); smsClient = new Mock <ISmsClient>(); var otpService = new OtpSender(otpRepository.Object, otpGenerator.Object, smsClient.Object, otpProperties); var otpServiceFactory = new OtpSenderFactory(otpService, new FakeOtpSender(otpRepository.Object), null); otpController = new OtpController(otpServiceFactory, new OtpVerifier(otpRepository.Object, new OtpProperties(1))); }
public void ShouldReturnDefaultOtpSender(string mobileNumber) { var otpSender = new OtpSender(null, null, null, null); var otpSenderFactory = new OtpSenderFactory( otpSender, new FakeOtpSender(null), new List <string> { mobileNumber }); var response = otpSenderFactory.ServiceFor(mobileNumber); response.As <OtpSender>().Should().NotBeNull().And.BeEquivalentTo(otpSender); }
public OtpSenderTest() { otpSender = new OtpSender(otpRepository.Object, otpGenerator.Object, otpWebHandler.Object, otpProperties, smsServiceProperties); }