/// <summary> /// Initializes a new instance of the <see cref="T:PasswordAuthenticationService{TRequest}"/> class. /// </summary> /// <param name="requestFactory">Request factory.</param> /// <param name="repository">Repository.</param> /// <param name="verifierFactory">Verifier factory.</param> /// <param name="serializer">Serializer.</param> public PasswordAuthenticationService(IStoredCredentialsRepository repository, IPasswordVerifierFactory verifierFactory = null, IRequestFactory <TRequest> requestFactory = null, ICredentialsSerializer serializer = null) { if (repository == null) { throw new ArgumentNullException(nameof(repository)); } this.repository = repository; this.verifierFactory = verifierFactory ?? new PasswordVerifierFactory(); this.requestFactory = requestFactory ?? new SimpleRequestFactory <TRequest>(); this.credentialsSerializer = serializer ?? new JsonCredentialsSerializer(); }
public void RetrieveVerifier_uses_factory([Frozen] IPasswordVerifierFactory factory, PasswordAuthenticationService <StubAuthenticationRequest> sut, StubAuthenticationRequest request, IPasswordVerifier verifier) { // Arrange Mock.Get(factory) .Setup(x => x.GetVerifier(request.CredentialsObject)) .Returns(verifier); // Act sut.RetrieveVerifier(ref request); // Assert Assert.AreSame(verifier, request.Verifier, "Verifier is set"); Mock.Get(factory) .Verify(x => x.GetVerifier(request.CredentialsObject), Times.Once()); }
public void RetrieveVerifier_sets_failure_result_when_verifier_cannot_be_created([Frozen] IPasswordVerifierFactory factory, PasswordAuthenticationService <StubAuthenticationRequest> sut, StubAuthenticationRequest request) { // Arrange Mock.Get(factory) .Setup(x => x.GetVerifier(request.CredentialsObject)) .Returns((IPasswordVerifier)null); request.Result = null; // Act sut.RetrieveVerifier(ref request); // Assert Mock.Get(factory) .Verify(x => x.GetVerifier(request.CredentialsObject), Times.Once()); Assert.NotNull(request.Result, "Result has been set"); Assert.IsFalse(request.Result.Success, "Result indicates failure"); }
public void RetrieveVerifier_does_not_use_factory_when_credentials_object_is_empty([Frozen] IPasswordVerifierFactory factory, PasswordAuthenticationService <StubAuthenticationRequest> sut, StubAuthenticationRequest request) { // Arrange Mock.Get(factory) .Setup(x => x.GetVerifier(It.IsAny <object>())) .Returns((IPasswordVerifier)null); request.CredentialsObject = null; // Act sut.RetrieveVerifier(ref request); // Assert Mock.Get(factory) .Verify(x => x.GetVerifier(It.IsAny <object>()), Times.Never()); }