Exemple #1
0
 public LoginUserHandlerTest()
 {
     _userRepository  = new Mock <IUserRepository>();
     _passwordManager = new Mock <IPasswordManager>();
     _tokenManager    = new Mock <ITokenManager>();
     _sut             = new LoginUserHandler(_userRepository.Object, _passwordManager.Object, _tokenManager.Object);
 }
        [HttpPost] //done
        public HttpResponseMessage Index(LoginUserRequest request)
        {
            var handler = new LoginUserHandler(_connectionString);

            var response = handler.Handle(request);

            var httpSatusCode = ResolveStatusCode(response);

            return(Request.CreateResponse(httpSatusCode, response));
        }
        public LoginUserHandlerTests()
        {
            this.userRepositoryMock = new Mock <IUserRepository>();
            this.encrypterMock      = new Mock <IEncrypter>();
            this.jwtServiceMock     = new Mock <IJwtService>();
            this.mapperMock         = new Mock <IMapper>();

            this.sut = new LoginUserHandler(
                this.userRepositoryMock.Object, this.encrypterMock.Object, this.jwtServiceMock.Object, this.mapperMock.Object);
        }
Exemple #4
0
        public async Task Should_ReturnNotFound_When_PassUnknownUsername(string username, string password)
        {
            var cancellationToken = new CancellationToken();

            var jwtSecurityTokenHandler = Substitute.For <JwtSecurityTokenHandler>();
            var userPasswordUtility     = Substitute.For <IUserPasswordUtility>();

            var configuration = Substitute.For <IConfiguration>();

            configuration["Jwt:Issuer"] = "TestIssuer";
            configuration["Jwt:Secret"] = "TestSecret";


            var databaseContext = Create.MockedDbContextFor <DatabaseContext>();

            databaseContext.Set <SystemUser>().Add(new SystemUser()
            {
                Id       = 1,
                Password = "******",
                Username = "******",
                Salt     = Encoding.ASCII.GetBytes("password1")
            });

            databaseContext.Set <SystemUser>().Add(new SystemUser()
            {
                Id       = 2,
                Password = "******",
                Username = "******",
                Salt     = Encoding.ASCII.GetBytes("password2")
            });

            databaseContext.Set <SystemUser>().Add(new SystemUser()
            {
                Id       = 3,
                Password = "******",
                Username = "******",
                Salt     = Encoding.ASCII.GetBytes("password3")
            });

            databaseContext.SaveChanges();

            var entity = new LoginUserRequest(username, password);

            var handler = new LoginUserHandler(databaseContext, userPasswordUtility, configuration, jwtSecurityTokenHandler);
            var result  = await handler.Handle(entity, cancellationToken);

            Assert.Multiple(() =>
            {
                Assert.IsFalse(result.Success);
                Assert.AreEqual(result.StatusCode, HttpStatusCode.NotFound);
            });
        }
Exemple #5
0
        public async Task Should_ReturnToken_When_PassCorrectParameters(string username, string password)
        {
            var cancellationToken = new CancellationToken();

            var jwtSecurityTokenHandler = Substitute.For <JwtSecurityTokenHandler>();
            var userPasswordUtility     = Substitute.For <IUserPasswordUtility>();
            //userPasswordUtility.When(x => x.IsPasswordCorrect(default, default, default)).DoNotCallBase();
            var salt = Encoding.ASCII.GetBytes("UserPasswordTest");

            userPasswordUtility.IsPasswordCorrect(password, salt, password).Returns(true);

            var configuration = Substitute.For <IConfiguration>();

            configuration["Jwt:Issuer"] = "TestIssuer";
            configuration["Jwt:Secret"] = "TestSecret";


            var databaseContext = Create.MockedDbContextFor <DatabaseContext>();

            databaseContext.Set <SystemUser>().Add(new SystemUser()
            {
                Id       = 1,
                Password = "******",
                Username = "******",
                Salt     = Encoding.ASCII.GetBytes("password1")
            });

            databaseContext.Set <SystemUser>().Add(new SystemUser()
            {
                Id       = 2,
                Password = "******",
                Username = "******",
                Salt     = Encoding.ASCII.GetBytes("password2")
            });

            databaseContext.Set <SystemUser>().Add(new SystemUser()
            {
                Id       = 3,
                Password = "******",
                Username = "******",
                Salt     = Encoding.ASCII.GetBytes("password3")
            });

            databaseContext.Set <SystemUser>().Add(new SystemUser()
            {
                Id       = 4,
                Password = password,
                Username = username,
                Salt     = salt
            });

            databaseContext.SaveChanges();

            var entity = new LoginUserRequest(username, password);

            var handler = new LoginUserHandler(databaseContext, userPasswordUtility, configuration, jwtSecurityTokenHandler);
            var result  = await handler.Handle(entity, cancellationToken);

            Assert.Multiple(() =>
            {
                Assert.IsTrue(result.Success);
                Assert.AreEqual(result.StatusCode, HttpStatusCode.OK);
            });
        }