Exemple #1
0
        public void Can_track_aggregate()
        {
            var session = new Session(this, this);
            var aggregate = new SomeDomainEntity();

            session.Track(aggregate);
        }
Exemple #2
0
        public void Can_get_tracked_aggregate()
        {
            var session = new Session(this, this);
            var aggregate = new SomeDomainEntity();

            session.Track(aggregate);

            var loadedAggregate = session.GetAggregateIfTracked<SomeDomainEntity>(aggregate.Id);

            loadedAggregate.ShouldNotBeNull();
            loadedAggregate.ShouldBeSameAs(aggregate);
        }
        public void Loads_aggregate_from_session_if_tracked()
        {
            var trackedAggregate = new SomeDomainEntity();

            var session = new Session(this, this);
            session.Track(trackedAggregate);

            var repository = new Repository<SomeDomainEntity>(this, session);

            var loadedAggregate = repository.GetById(trackedAggregate.Id);

            loadedAggregate.ShouldBeSameAs(trackedAggregate);
        }
Exemple #4
0
        public void Events_are_published_to_bus_on_commit()
        {
            var session = new Session(this, this);
            var aggregate = new SomeDomainEntityWithEvents();

            session.Track(aggregate);

            var domainEvent = new SomeDomainEvent();
            aggregate.Apply(domainEvent);

            session.CommitChanges();

            PublishedEvents.Count().ShouldBeEqualTo(1);
            PublishedEvents.Pop().ShouldBeSameAs(domainEvent);
        }
Exemple #5
0
        public void Can_commit_changes()
        {
            var session = new Session(this, this);
            var aggregate = new SomeDomainEntityWithEvents();

            session.Track(aggregate);

            var domainEvent = new SomeDomainEvent();
            aggregate.Apply(domainEvent);

            session.CommitChanges();

            _savedId.ShouldBeEqualTo(aggregate.Id);
            _savedEvents.Count().ShouldBeEqualTo(1);
            _savedEvents.First().ShouldBeSameAs(domainEvent);
        }