public virtual void ShouldThrowExceptionIfCreateCalledAfterDispose() { Assert.That( () => { var uow = new UnitOfWork(source); ((IDisposable)uow).Dispose(); uow.MarkAsCreated(new Customer()); }, Throws.Exception.With.Message.EqualTo(string.Format(InteractAfterComplete, false))); Assert.That( () => { var uow = new UnitOfWork(source); ((IDisposable)uow).Dispose(); uow.MarkAsCreated(() => new Customer()); }, Throws.Exception.With.Message.EqualTo(string.Format(InteractAfterComplete, false))); Assert.That( () => { var uow = new UnitOfWork(source); ((IDisposable)uow).Dispose(); uow.MarkAsCreated(new Customer()); }, Throws.Exception.With.Message.EqualTo(string.Format(InteractAfterComplete, false))); Assert.That( () => { var uow = new UnitOfWork(source); ((IDisposable)uow).Dispose(); new Customer().AsCreatedIn(uow); }, Throws.Exception.With.Message.EqualTo(string.Format(InteractAfterComplete, false))); }
public virtual void ShouldDelegateCreateMethodToDataSession() { var options = new { }; var customer = new Customer(SeqGuid.NewGuid(), new FullName("Nikita", "Govorov")); using (var uow = new UnitOfWork(source)) { uow.MarkAsCreated(customer, options); } session.Received(1).MarkAsCreated(customer, options); session.ClearReceivedCalls(); Func<Customer> factory = () => customer; using (var uow = new UnitOfWork(source)) { uow.MarkAsCreated(factory, options); } session.Received(1).MarkAsCreated(factory, options); session.ClearReceivedCalls(); using (var uow = new UnitOfWork(source)) { customer.AsCreatedIn(uow); } session.Received(1).MarkAsCreated(customer as IAggregateRoot); }