public async Task enqueue_locally()
        {
            var item = new ItemCreated
            {
                Name = "Shoe",
                Id   = Guid.NewGuid()
            };

            var waiter = theTracker.WaitFor <ItemCreated>();

            await theReceiver.Messaging.Enqueue(item);

            waiter.Wait(5.Seconds());

            waiter.IsCompleted.ShouldBeTrue();

            using (var session = theReceiver.Get <IDocumentStore>().QuerySession())
            {
                var item2 = session.Load <ItemCreated>(item.Id);
                if (item2 == null)
                {
                    Thread.Sleep(500);
                    item2 = session.Load <ItemCreated>(item.Id);
                }


                item2.Name.ShouldBe("Shoe");

                session.AllIncomingEnvelopes().Any().ShouldBeFalse();
            }
        }
 public static void Handle(ItemCreated created, IDocumentSession session, MessageTracker tracker,
                           Envelope envelope)
 {
     session.Store(created);
     tracker.Record(created, envelope);
 }