コード例 #1
0
        public void TestToCreateAndChangeUserViaApi()
        {
            var aggregateStore   = new MongoDbAggregateStore(MongoConnectionString);
            var aggregates       = new Store.Aggregates(aggregateStore);
            var readModelStore   = new MongoDbUserReadModelStore(MongoConnectionString);
            var readModelHandler = new UserReadModelHandler(readModelStore);

            var commands = new UserCommands(aggregates);
            var queries  = new UserQueries(readModelStore);

            var context = new UserContext(commands, queries, readModelHandler);
            var uid     = Guid.NewGuid();

            context.Process(new CreateUser {
                Id = uid, Name = "Rüdiger", EMail = "rü[email protected]", Password = "******"
            });
            context.Process(new ChangeUser {
                Id = uid, Name = "Horst Horstmann", EMail = "*****@*****.**", Password = "******"
            });

            var user = context.ExecuteQuery <UserModel>(new GetUser {
                Id = uid
            });

            user.Name.ShouldBeEquivalentTo("Horst Horstmann");
            user.EMail.ShouldBeEquivalentTo("*****@*****.**");
            user.Password.ShouldBeEquivalentTo("abc");
        }
コード例 #2
0
        public void TestToGetAllUsers()
        {
            var aggregateStore   = new MongoDbAggregateStore(MongoConnectionString);
            var aggregates       = new Store.Aggregates(aggregateStore);
            var readModelStore   = new MongoDbUserReadModelStore(MongoConnectionString);
            var readModelHandler = new UserReadModelHandler(readModelStore);

            var commands = new UserCommands(aggregates);
            var queries  = new UserQueries(readModelStore);

            var context = new UserContext(commands, queries, readModelHandler);

            for (var i = 0; i < 500; i++)
            {
                context.Process(new CreateUser {
                    Id       = Guid.NewGuid(),
                    Name     = string.Format("User_{0}", i),
                    EMail    = string.Format("user_{0}@mail.com", i),
                    Password = (i * 123).ToString(CultureInfo.InvariantCulture)
                });
            }

            var users = context.ExecuteQuery <List <UserModel> >(new GetAllUsers());

            users.Count.ShouldBeEquivalentTo(500);
        }
コード例 #3
0
        public void TestToDeleteUser()
        {
            var aggregateStore   = new MongoDbAggregateStore(MongoConnectionString);
            var aggregates       = new Store.Aggregates(aggregateStore);
            var readModelStore   = new MongoDbUserReadModelStore(MongoConnectionString);
            var readModelHandler = new UserReadModelHandler(readModelStore);

            var commands = new UserCommands(aggregates);
            var queries  = new UserQueries(readModelStore);

            var context = new UserContext(commands, queries, readModelHandler);
            var id      = Guid.NewGuid();

            context.Process(new CreateUser {
                Id = id, Name = "Testuser", EMail = "*****@*****.**", Password = "******"
            });
            var user = context.ExecuteQuery <UserModel>(new GetUser {
                Id = id
            });

            user.Should().NotBeNull();

            context.Process(new DeleteUser {
                Id = id
            });
            user = context.ExecuteQuery <UserModel>(new GetUser {
                Id = id
            });
            user.Should().BeNull();
        }
コード例 #4
0
        public void TestToCreateTwoUsersAndChangeOneOfThem()
        {
            var aggregateStore   = new MongoDbAggregateStore(MongoConnectionString);
            var aggregates       = new Store.Aggregates(aggregateStore);
            var readModelStore   = new MongoDbUserReadModelStore(MongoConnectionString);
            var readModelHandler = new UserReadModelHandler(readModelStore);

            var commands = new UserCommands(aggregates);
            var queries  = new UserQueries(readModelStore);

            var context = new UserContext(commands, queries, readModelHandler);
            var uid1    = Guid.NewGuid();
            var uid2    = Guid.NewGuid();

            context.Process(new CreateUser {
                Id = uid1, Name = "Horst", EMail = "*****@*****.**", Password = "******"
            });
            context.Process(new CreateUser {
                Id = uid2, Name = "Egon", EMail = "*****@*****.**", Password = "******"
            });
            context.Process(new ChangeUser {
                Id       = uid2,
                Name     = "Egon Müller",
                EMail    = "*****@*****.**",
                Password = "******"
            });

            var user = context.ExecuteQuery <UserModel>(new GetUser {
                Id = uid2
            });

            user.Name.ShouldBeEquivalentTo("Egon Müller");
            user.EMail.ShouldBeEquivalentTo("*****@*****.**");
            user.Password.ShouldBeEquivalentTo("123abc");
        }