public override void SetUp()
        {
            base.SetUp();

            _transactionEventSinkWithMock = MockRepository.GenerateStrictMock <IClientTransactionEventSink>();

            _manager = new InvalidDomainObjectManager(_transactionEventSinkWithMock);
            _order1  = DomainObjectMother.CreateFakeObject <Order> (DomainObjectIDs.Order1);
        }
        public void Initialization_WithInvalidObjects()
        {
            var manager = new InvalidDomainObjectManager(_transactionEventSinkWithMock, new[] { _order1 });

            Assert.That(manager.InvalidObjectCount, Is.EqualTo(1));
            Assert.That(manager.IsInvalid(_order1.ID), Is.True);
            Assert.That(manager.GetInvalidObjectReference(_order1.ID), Is.SameAs(_order1));

            _transactionEventSinkWithMock.AssertWasNotCalled(mock => mock.RaiseObjectMarkedInvalidEvent(Arg <DomainObject> .Is.Anything));
        }
        public void Serializable()
        {
            var order = DomainObjectMother.CreateFakeObject <Order> (DomainObjectIDs.Order1);

            var transactionEventSink = new SerializableClientTransactionEventSinkFake();
            var manager = new InvalidDomainObjectManager(transactionEventSink);

            manager.MarkInvalid(order);

            var deserializedInstance = Serializer.SerializeAndDeserialize(manager);

            Assert.That(deserializedInstance.TransactionEventSink, Is.Not.Null);
            Assert.That(deserializedInstance.InvalidObjectIDs, Has.Member(order.ID));
        }
        public void Initialization_WithoutInvalidObjects()
        {
            var manager = new InvalidDomainObjectManager(_transactionEventSinkWithMock);

            Assert.That(manager.InvalidObjectCount, Is.EqualTo(0));
        }