public void Should_be_able_to_remove_an_existing_event_stream()
        {
            IEventStore store = new EventStore();
            var aggregate = new Aggregate(Guid.NewGuid());
            var eventStream = store.Get(aggregate.Id);

            for (var i = 0; i < 100000; i++)
            {
                var moveCommand = new MoveCommand
                {
                    Address = string.Format("Address-{0}", i),
                    DateMoved = DateTime.Now
                };

                eventStream.AddEvent(aggregate.Move(moveCommand));

                if (eventStream.ShouldSnapshot(100))
                {
                    eventStream.AddSnapshot(aggregate.State);
                }
            }

            store.SaveEventStream(eventStream);

            eventStream = store.Get(aggregate.Id);

            Assert.IsFalse(eventStream.IsEmpty);

            store.Remove(aggregate.Id);

            eventStream = store.Get(aggregate.Id);

            Assert.IsTrue(eventStream.IsEmpty);
        }