public void Can_track_aggregate() { var session = new Session(this, this); var aggregate = new SomeDomainEntity(); session.Track(aggregate); }
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); }
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); }
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); }