public void Given_events_When_save_by_events_repository_Then_events_can_be_fetched() { var events = new DomainEvent[] { new Message(Guid.NewGuid()) { Id = 1 }, new Message2(Guid.NewGuid()) { Id = 2 } }; var persistId = "testId"; var saveTime = BusinessDateTime.UtcNow; var repo = CreateRepository(); repo.Save(persistId, events); var eventsLoaded = repo.Load(persistId).Where(e => e.CreatedTime >= saveTime).Cast <Message>(); CollectionAssert.AreEquivalent(events.Cast <Message>().Select(e => e.Id), eventsLoaded.Select(e => e.Id)); }