コード例 #1
0
        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)));
        }
コード例 #2
0
        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);
        }