Пример #1
0
        public async Task SaveFavorites_ReturnsUserWithFavorites()
        {
            #region Arrange

            InMemoryUserRepository inMemoryUserRepository = new InMemoryUserRepository(memoryCache);
            UserId    userId    = new UserId(UserIdMother.Id());
            User      user      = new User(userId);
            PokemonId pokemonId = PokemonIdMother.PokemonId();
            user.AddPokemonFavorite(new PokemonFavorite(pokemonId));

            #endregion

            #region Act
            await inMemoryUserRepository.Save(user);

            User userFound = await inMemoryUserRepository.Find(userId);

            await inMemoryUserRepository.SaveFavorites(user);

            #endregion

            #region Assert
            var pokemonFavoritesArray = userFound.PokemonFavorites.Favorites.Select(s => s.PokemonId.Id.ToString()).ToArray();
            Assert.Equal(pokemonFavoritesArray, PokemonFavoritesMother.PokemonFavorites().Favorites.Select(s => s.PokemonId.Id.ToString()).ToArray(), StringComparer.InvariantCultureIgnoreCase);

            #endregion
        }
Пример #2
0
        static void Main(string[] args)
        {
            var userRepository = new InMemoryUserRepository();

            // 객체를 복원할 때 깊은 복사를 하지 않으면
            var user = userRepository.Find(new UserName("John"));

            // 복원된 객체에 대한 조작이 리포지토리에 저장된 객체에도 영향을 미친다
            user.ChangeUserName(new UserName("john"));
        }
Пример #3
0
        static void Main(string[] args)
        {
            var userRepository = new InMemoryUserRepository();

            // オブジェクトを再構築する際にディープコピーを行わないと
            var user = userRepository.Find(new UserName("Naruse"));

            // 次の操作がリポジトリ内部で保管されているインスタンスにまで影響する
            user.ChangeUserName(new UserName("naruse"));
        }
Пример #4
0
        public void TestRegister()
        {
            var repository = new InMemoryUserRepository();
            var app        = new UserApplicationService(repository);

            app.RegisterUser("ttaro", "taro", "tanaka");

            var user = repository.Find(new UserName("ttaro"));

            Assert.IsNotNull(user);
            Assert.IsFalse(user.Id.Value == "1");
        }
Пример #5
0
        public async Task SearchUser_NotFound_ReturnsNull()
        {
            #region Arrange

            InMemoryUserRepository inMemoryUserRepository = new InMemoryUserRepository(memoryCache);
            UserId userId = new UserId(UserIdMother.Id());
            #endregion

            #region Act
            User userFound = await inMemoryUserRepository.Find(userId);

            #endregion

            #region Assert
            Assert.Null(userFound);

            #endregion
        }
Пример #6
0
        public void TestSuccessMaxUserName()
        {
            var userRepository         = new InMemoryUserRepository();
            var userService            = new UserService(userRepository);
            var userApplicationService = new UserApplicationService(userRepository, userService);

            // 最長のユーザ名(20文字)のユーザが正常に生成できるか
            var userName             = "******";
            var maxUserNameInputData = new UserRegisterCommand(userName);

            userApplicationService.Register(maxUserNameInputData);

            // ユーザが正しく保存されているか
            var createdUserName = new UserName(userName);
            var maxUserNameUser = userRepository.Find(createdUserName);

            Assert.IsNotNull(maxUserNameUser);
        }
Пример #7
0
        public void TestSuccessMaxUserName()
        {
            var userRepository         = new InMemoryUserRepository();
            var userService            = new UserService(userRepository);
            var userApplicationService = new UserApplicationService(userRepository, userService);

            // 사용자명의 최장 길이(20글자)를 만족하는 사용자 등록이 정상적으로 완료되는지 확인
            var userName             = "******";
            var maxUserNameInputData = new UserRegisterCommand(userName);

            userApplicationService.Register(maxUserNameInputData);

            // 사용자 정보가 잘 저장됐는지 확인
            var createdUserName = new UserName(userName);
            var maxUserNameUser = userRepository.Find(createdUserName);

            Assert.IsNotNull(maxUserNameUser);
        }
Пример #8
0
        public void TestSuccessMaxUserName()
        {
            var userFactory    = new InMemoryUserFactory();
            var userRepository = new InMemoryUserRepository();
            var userService    = new UserService(userRepository);
            var interactor     = new UserRegisterInteractor(userFactory, userRepository, userService);

            // 사용자명의 최장 길이(20글자)를 만족하는 사용자 등록이 정상적으로 완료되는지 확인
            var userName             = "******";
            var maxUserNameInputData = new UserRegisterInputData(userName);

            interactor.Handle(maxUserNameInputData);

            // 사용자 정보가 잘 저장됐는지 확인
            var createdUserName = new UserName(userName);
            var maxUserNameUser = userRepository.Find(createdUserName);

            Assert.IsNotNull(maxUserNameUser);
        }
Пример #9
0
        public void TestSuccessMaxUserName()
        {
            var userFactory    = new InMemoryUserFactory();
            var userRepository = new InMemoryUserRepository();
            var userService    = new UserService(userRepository);
            var interactor     = new UserRegisterInteractor(userFactory, userRepository, userService);

            // 最長のユーザ名(20文字)のユーザが正常に生成できるか
            var userName             = "******";
            var maxUserNameInputData = new UserRegisterInputData(userName);

            interactor.Handle(maxUserNameInputData);

            // ユーザが正しく保存されているか
            var createdUserName = new UserName(userName);
            var maxUserNameUser = userRepository.Find(createdUserName);

            Assert.IsNotNull(maxUserNameUser);
        }
        public void Find_UserId(string id)
        {
            // Arrange
            PrepareUsers();
            var expect = _users.First(_ => _.UserId.Equals(new UserId(id)));

            // Act
            var result = _userRepository.Find(expect.UserId);

            // Assert
            result.UserId.Is(expect.UserId);
            result.UserName.Is(expect.UserName);
            result.FullName.Is(expect.FullName);
        }
Пример #11
0
        public void TestSuccessMinUserName()
        {
            var userFactory    = new InMemoryUserFactory();
            var userRepository = new InMemoryUserRepository();
            var userService    = new UserService(userRepository);
            var interactor     = new UserRegisterInteractor(userFactory, userRepository, userService);

            // 사용자명의 최소 길이(3글자)를 만족하는 사용자 등록이 정상적으로 완료되는지 확인
            var userName             = "******";
            var minUserNameInputData = new UserRegisterInputData(userName);
            var outputData           = interactor.Handle(minUserNameInputData);

            Assert.IsNotNull(outputData.CreatedUserId);

            // 사용자 정보가 잘 저장됐는지 확인
            var createdUserName = new UserName(userName);
            var createdUser     = userRepository.Find(createdUserName);

            Assert.IsNotNull(createdUser);
        }
Пример #12
0
        public void TestSuccessMinUserName()
        {
            var userFactory            = new InMemoryUserFactory();
            var userRepository         = new InMemoryUserRepository();
            var userService            = new UserService(userRepository);
            var userApplicationService = new UserApplicationService(userFactory, userRepository, userService);

            // 最短のユーザ名(3文字)のユーザが正常に生成できるか
            var userName             = "******";
            var minUserNameInputData = new UserRegisterCommand(userName);
            var outputData           = userApplicationService.Register(minUserNameInputData);

            Assert.IsNotNull(outputData.CreatedUserId);

            // ユーザが正しく保存されているか
            var createdUserName = new UserName(userName);
            var createdUser     = userRepository.Find(createdUserName);

            Assert.IsNotNull(createdUser);
        }
Пример #13
0
        public async Task SearchUser_Found_ReturnsUser()
        {
            #region Arrange

            InMemoryUserRepository inMemoryUserRepository = new InMemoryUserRepository(memoryCache);
            UserId userId = new UserId(UserIdMother.Id());
            User   user   = new User(userId);
            #endregion

            #region Act
            await inMemoryUserRepository.Save(user);

            User userFound = await inMemoryUserRepository.Find(userId);

            #endregion

            #region Assert
            Assert.Equal(userFound.UserId.Id, userId.Id);

            #endregion
        }