public async Task it_should_add_a_refresh_token(DatabaseEngine engine) { // Arrange await using var container = new DatabaseTestContainerBuilder().Build(engine); var configuration = new ConfigurationBuilder().For(container).Build(engine); var manager = new DatabaseManagerBuilder().With(configuration).Build(engine); var runner = new MigratorRunnerBuilder().With(configuration).Build(engine); var sut = new UserRepositoryBuilder().With(configuration).Build(engine); await container.StartAsync(); await manager.EnsureDatabaseCreated(); runner.MigrateUp(); const string username = "******"; var user = new UserBuilder().WithUserName(username).Build(); await sut.CreateAsync(user); // Act var persistedUser = await sut.FindByNameAsync(username); await sut.AssignRefreshToken("some_token", persistedUser !); // Assert var result = await sut.FindByNameAsync(username); result !.RefreshTokens.Should().ContainSingle("some_token"); }
public async Task it_should_create_a_user(DatabaseEngine engine) { // Arrange await using var container = new DatabaseTestContainerBuilder().Build(engine); var configuration = new ConfigurationBuilder().For(container).Build(engine); var manager = new DatabaseManagerBuilder().With(configuration).Build(engine); var runner = new MigratorRunnerBuilder().With(configuration).Build(engine); var sut = new UserRepositoryBuilder().With(configuration).Build(engine); await container.StartAsync(); await manager.EnsureDatabaseCreated(); runner.MigrateUp(); // Act const string username = "******"; var user = new UserBuilder().WithUserName(username).Build(); await sut.CreateAsync(user); // Assert var result = await sut.FindByNameAsync(username); result.Should().BeEquivalentTo(user, opt => opt.Excluding(x => x.Id)); }
public void UseRepositoryWhenUserIsDeleted() { // arrange var email = Email.Parse("*****@*****.**"); var nickName = Nickname.Parse("nickname"); var userId = UserId.Parse("12345"); var mockedUserRepository = UserRepositoryBuilder.Create(); mockedUserRepository.Users.Add((email, nickName, userId)); var userRepository = mockedUserRepository.Build(); var userHandler = new UserHandler(userRepository); // act userHandler.Handle(new UserDeleted(userId)); // assert Assert.AreEqual(0, mockedUserRepository.Users.Count); }
public void UseRepositoryWhenUserIsCreated() { // arrange var email = "*****@*****.**"; var nickName = "nickname"; var userId = "12345"; var accessToken = "accessToken"; var mockedUserRepository = UserRepositoryBuilder.Create(); var userRepository = mockedUserRepository.Build(); var userHandler = new UserHandler(userRepository); // act var identity = Identity.Parse(email, nickName, userId, accessToken); userHandler.Handle(new UserCreated(identity)); // assert var(actualEmail, actualNickname, actualUserId) = mockedUserRepository.Users.First(); Assert.AreEqual(Email.Parse(email), actualEmail); Assert.AreEqual(Nickname.Parse(nickName), actualNickname); Assert.AreEqual(UserId.Parse(userId), actualUserId); }
public async Task it_should_update_a_user(DatabaseEngine engine) { // Arrange await using var container = new DatabaseTestContainerBuilder().Build(engine); var configuration = new ConfigurationBuilder().For(container).Build(engine); var manager = new DatabaseManagerBuilder().With(configuration).Build(engine); var runner = new MigratorRunnerBuilder().With(configuration).Build(engine); var sut = new UserRepositoryBuilder().With(configuration).Build(engine); await container.StartAsync(); await manager.EnsureDatabaseCreated(); runner.MigrateUp(); const string username = "******"; var user = new UserBuilder().WithUserName(username).Build(); await sut.CreateAsync(user); // Act var persistedUser = await sut.FindByNameAsync(username); persistedUser !.FirstName = "NewFirstName"; persistedUser.LastName = "NewLastName"; persistedUser.PhoneNumber = "NewPhoneNumber"; persistedUser.SecurityStamp = Guid.NewGuid().ToString(); persistedUser.PhoneNumberConfirmed = true; persistedUser.EmailConfirmed = true; persistedUser.TwoFactorEnabled = true; persistedUser.LockoutEnd = new DateTimeOffset(DateTime.Today); persistedUser.LockoutEnabled = true; persistedUser.AccessFailedCount = 10; await sut.UpdateAsync(persistedUser); // Assert var result = await sut.FindByNameAsync(username); result.Should().BeEquivalentTo(persistedUser, opt => opt.Excluding(x => x.Id)); }