public void Dispose()
        {
            if (_context == null)
                return;

            _context.Dispose();
            _context = null;
        }
 public void AfterEachTest()
 {
     using (var context = new SagaContext())
     {
         var sagaData = context.SagaData.FirstOrDefault(s => s.Id == saga.Id);
         if (sagaData != null)
             context.SagaData.Remove(sagaData);
         context.SaveChanges();
     }
 }
        public void CanUpdateSaga()
        {
            uow.Begin();
            persister.Save(saga);
            uow.End();

            uow.Begin();
            persister.Update(saga);
            uow.End();

            using (var context = new SagaContext())
            {
                var sagaData = context.SagaData.FirstOrDefault(s => s.Id == saga.Id);

                Assert.IsNotNull(sagaData);
                Assert.AreEqual(2, sagaData.Version);
            }
        }
        public void CanSaveSaga()
        {
            uow.Begin();
            persister.Save(saga);
            uow.End();

            using (var context = new SagaContext())
            {
                var sagaData = context.SagaData.FirstOrDefault(s => s.Id == saga.Id);
                context.SagaData.Remove(sagaData);
                context.SaveChanges();

                Assert.IsNotNull(sagaData);
                Assert.IsNotNull(sagaData.Data);
                Assert.IsNotNull(sagaData.UniqueProperty);
                Assert.AreEqual(1, sagaData.Version);
            }
        }
        public void CanCompleteSaga()
        {
            uow.Begin();
            persister.Save(saga);
            uow.End();

            uow.Begin();
            persister.Complete(saga);
            uow.End();

            using (var context = new SagaContext())
            {
                var sagaData = context.SagaData.FirstOrDefault(s => s.Id == saga.Id);

                Assert.IsNull(sagaData);
            }
        }