public void UpdateExistingEntity() { var mockRepository = new MockRepository(MockBehavior.Strict); var entityId = Guid.NewGuid(); var events = new Event[] { new EventTestClass(Guid.NewGuid(), 0) }; var trackedEntity = new TrackedEntityTestClass(entityId); trackedEntity.AddEvent(events[0]); var eventStream = mockRepository.Create <IEventStream <TrackedEntityTestClass> >(); eventStream.Setup(x => x.AppendEvents(entityId, events)); var entityFactory = mockRepository.Create <ITrackedEntityFactory <TrackedEntityTestClass> >(); var repository = new Repository <TrackedEntityTestClass>(eventStream.Object, entityFactory.Object); repository.Update(trackedEntity); mockRepository.Verify(); }
public void FetchNoEvents() { var entity = new TrackedEntityTestClass(); var events = entity.FetchEvents(); events.Should().BeEmpty(); }
public void ApplyUnkownEventType() { var entity = new TrackedEntityTestClass(); var @event = new EventTestClass2(Guid.NewGuid(), 0); Action a = () => entity.ApplyEvents(new Event[] { @event }); a.Should().ThrowExactly <NotSupportedException>(); }
public void FetchSingleEvents() { var entity = new TrackedEntityTestClass(); var @event = new EventTestClass(Guid.NewGuid(), 0); entity.AddEvent(@event); var events = entity.FetchEvents(); events.Should().Equal(new Event[] { @event }); }
public void FetchMultpleEvents() { var entity = new TrackedEntityTestClass(); var @event1 = new EventTestClass(Guid.NewGuid(), 0); entity.AddEvent(@event1); var @event2 = new EventTestClass(Guid.NewGuid(), 0); entity.AddEvent(@event2); var events = entity.FetchEvents(); events.Should().Equal(new Event[] { @event1, @event2 }); }