Ejemplo n.º 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");
        }
Ejemplo n.º 2
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();
        }
Ejemplo n.º 3
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);
        }
Ejemplo n.º 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");
        }
        public void TestToCreateUserViaAggregate()
        {
            var aggregateStore = new MongoDbAggregateStore(MongoConnectionString);
            var aggregates     = new Store.Aggregates(aggregateStore);

            var uid  = Guid.NewGuid();
            var user = aggregates.GetAggregate <User>(uid);

            user.Create(uid, "Rüdiger", "rü[email protected]", "swordfish");
            aggregates.Save(user);
            user.Name.ShouldAllBeEquivalentTo("Rüdiger");
            user.EMail.ShouldBeEquivalentTo("rü[email protected]");
            user.Password.ShouldBeEquivalentTo("swordfish");
        }
        public void TestToCreateUser()
        {
            var userId         = Guid.NewGuid();
            var aggregateStore = new MongoDbAggregateStore(MongoConnectionString);
            var aggregates     = new Store.Aggregates(aggregateStore);

            var user = aggregates.GetAggregate <User>(userId);

            user.Create(userId, "Rüdiger", "rü[email protected]", "swordfish");
            aggregates.Save(user);

            user.Name.Should().BeEquivalentTo("Rüdiger");
            user.EMail.Should().BeEquivalentTo("rü[email protected]");
            user.Password.Should().BeEquivalentTo("swordfish");
            aggregates.GetAggregate <User>(userId)
            .History.OfType <AggregateEventBag <UserCreated> >().Any()
            .Should().BeTrue();
        }
        public void TestToChangeUsername()
        {
            var aggregateStore = new MongoDbAggregateStore(MongoConnectionString);
            var userId         = Guid.NewGuid();
            var aggregates     = new Store.Aggregates(aggregateStore);
            var user           = aggregates.GetAggregate <User>(userId);

            user.Create(userId, "Rüdiger", "rü[email protected]", "swordfish");
            aggregates.Save(user);

            user.Name.Should().BeEquivalentTo("Rüdiger");
            user.EMail.Should().BeEquivalentTo("rü[email protected]");

            user.Change("Rüdiger Horstmann", "*****@*****.**", "abc");
            user.Name.Should().BeEquivalentTo("Rüdiger Horstmann");
            user.EMail.Should().BeEquivalentTo("*****@*****.**");
            aggregates.Save(user);

            user.Changes.Count.ShouldBeEquivalentTo(0);
            user.History.Count().ShouldBeEquivalentTo(2);
        }
 public UserCommands(Store.Aggregates aggregatesRepository) : base(aggregatesRepository)
 {
 }