Example #1
0
        public async Task Login_HappyPath_ReturnUserWithToken()
        {
            // Arrange
            var user = UserGenerator.GenerateUser();

            using (var dbContext = new DatingAppDbContext(_options))
            {
                dbContext.Users.Add(user);
                await dbContext.SaveChangesAsync();
            }

            _passwordValidatorMock
            .Setup(v => v.Validate(It.IsAny <string>(), It.IsAny <Password>()))
            .Returns(true);

            _tokenServiceMock
            .Setup(s => s.Generate(It.IsAny <User>()))
            .Returns("token");

            // Arrange
            var result = await _userLoginService.Login(new UserLoginRequest
            {
                Email    = user.Email,
                Password = "******"
            });

            // Assert
            Assert.NotNull(result);
            Assert.NotNull(result.AccessToken);
            Assert.NotNull(result.LoggedInUser);
        }
Example #2
0
        public async Task HandleAsync_HappyPath_MessageIsAdded()
        {
            // Arrange
            var user = UserGenerator.GenerateUser();

            await using (var dbContext = new DatingAppDbContext(_options))
            {
                dbContext.Users.Add(user);
                await dbContext.SaveChangesAsync();
            }

            var userMock = new Mock <IAuthenticatedUser>();

            userMock.SetupGet(u => u.Id).Returns(1);

            _userRepositoryMock
            .Setup(r => r.Single(It.IsAny <Expression <Func <User, bool> > >(), It.IsAny <CancellationToken>()))
            .ReturnsAsync(user);

            var command = new AddMessageCommand(user.Id, "text", userMock.Object);

            var fakeNow = Instant.FromDateTimeUtc(DateTime.UtcNow.AddDays(-1));

            _clockMock.Setup(c => c.GetCurrentInstant()).Returns(fakeNow);

            // Act
            var messageDto = await _requestHandler.Handle(command, default);

            // Assert
            Assert.NotNull(messageDto);
            Assert.Equal(command.Content, messageDto.Content);
            Assert.Equal(messageDto.SendDate, fakeNow);
        }
Example #3
0
        public async Task Login_InvalidPassword_ReturnNull()
        {
            // Arrange
            var user = UserGenerator.GenerateUser();

            using (var dbContext = new DatingAppDbContext(_options))
            {
                dbContext.Users.Add(user);
                await dbContext.SaveChangesAsync();
            }

            _passwordValidatorMock
            .Setup(v => v.Validate(It.IsAny <string>(), It.IsAny <Password>()))
            .Returns(false);

            // Act
            var result = await _userLoginService.Login(new UserLoginRequest
            {
                Email    = user.Email,
                Password = "******"
            });

            // Assert
            Assert.Null(result);
        }
Example #4
0
        public UserLoginServiceTests()
        {
            var dbContext = new DatingAppDbContext(_options);

            dbContext.Users.RemoveRange(dbContext.Users);
            dbContext.SaveChanges();

            _userLoginService = new UserLoginService(dbContext,
                                                     _tokenServiceMock.Object,
                                                     _passwordValidatorMock.Object);
        }
Example #5
0
        public static void SeedUsers(DatingAppDbContext datingAppDbContext)
        {
            if (!datingAppDbContext.User.Any())
            {
                var userData = File.ReadAllText("C:\\EMIAspNetCoreTraining\\EMIAspNetCore\\DatingApp\\DatingApp.DataModel\\Data\\UserSeedData.json");
                var users    = JsonConvert.DeserializeObject <List <User> >(userData);
                foreach (var user in users)
                {
                    byte[] passwordHash, passwordSalt;
                    CreatePasswordHash("password", out passwordHash, out passwordSalt);
                    user.PasswordHash = passwordHash;
                    user.PasswordSalt = passwordSalt;
                    user.Name         = user.Name.ToLower();
                    datingAppDbContext.User.Add(user);
                }

                datingAppDbContext.SaveChanges();
            }
        }
Example #6
0
 public Repository(DatingAppDbContext dbContext)
 {
     _dbContext = dbContext;
 }
 public AuthenticationRepository(DatingAppDbContext dbContext)
 {
     _dbContext = dbContext;
 }
Example #8
0
 public ValueService(DatingAppDbContext db)
 {
     this.db = db;
 }
 public MessageRepository(DatingAppDbContext datingAppDbContext, IMapper mapper)
 {
     _datingAppDbContext = datingAppDbContext;
     _mapper             = mapper;
 }
Example #10
0
 public AccountRepository(DatingAppDbContext datingAppDbContext)
 {
     _datingAppDbContext = datingAppDbContext;
 }
Example #11
0
 public FotosRepo(DatingAppDbContext datingAppDbContext)
 {
     this.datingAppDbContext = datingAppDbContext;
 }
Example #12
0
 public PhotoService(DatingAppDbContext db)
 {
     this.db = db;
 }
Example #13
0
 public AuthService(DatingAppDbContext db)
 {
     this.db = db;
 }
 public UserRepository(DatingAppDbContext datingAppDbContext)
 {
     _datingAppDbcontext = datingAppDbContext;
 }
Example #15
0
 public AuthRepo(DatingAppDbContext datingAppDbContext, IConfiguration configuration)
 {
     this.configuration      = configuration;
     this.datingAppDbContext = datingAppDbContext;
 }
Example #16
0
 public UserRepository(DatingAppDbContext dbContext) : base(dbContext)
 {
 }
Example #17
0
 public ValuesRepo(DatingAppDbContext datingAppDbContext)
 {
     this.datingAppDbContext = datingAppDbContext;
 }
 public LikeRepository(DatingAppDbContext datingAppDbContext)
 {
     _datingAppDbContext = datingAppDbContext;
 }
Example #19
0
 public DatingRepository(DatingAppDbContext context)
 {
     _context = context;
 }
Example #20
0
 public ValuesController(DatingAppDbContext context)
 {
     this.context = context;
 }
Example #21
0
 public Seed(DatingAppDbContext Context)
 {
     _context = Context;
 }
Example #22
0
 public UserService(DatingAppDbContext db)
 {
     this.db = db;
 }
Example #23
0
 public AuthRepository(DatingAppDbContext context)
 {
     this.context = context;
 }