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 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();
        }