public void repository_shouldnt_save_users_with_same_id() { var eventStore = Substitute.For<IEventStore>(); var identityGenerator = Substitute.For<IIdentityGenerator>(); var guid = Guid.NewGuid(); identityGenerator.NewId().Returns(i => guid); var cache = new RepositoryCache(); StoreRepository repository = new StoreRepository(eventStore, cache, new AggregateFactory()); var @event = FakeUser.ArrangeCreated(); var user = User.CreateUser(FakeUser.TestLogin, FakeUser.TestPassword, identityGenerator); repository.Save(user, Guid.NewGuid()); user = User.CreateUser(FakeUser.TestLogin, FakeUser.TestPassword, identityGenerator); repository.Invoking(i => i.Save(user, Guid.NewGuid())).ShouldThrow<AggregateVersionException>(); }