private void CheckDeserialization(byte[] bytes, ISerializationEventReceiver receiver)
        {
            ExpectDeserializationCallbacks(receiver);

            _mockRepository.ReplayAll();

            Serializer.Deserialize(bytes);

            _mockRepository.VerifyAll();
        }
        private void CheckSerialization(ISerializationEventReceiver receiver)
        {
            ExpectSerializationCallbacks(receiver);

            _mockRepository.ReplayAll();

            Serializer.Serialize(_instance);

            _mockRepository.VerifyAll();
        }
        private void ExpectSerializationCallbacks(ISerializationEventReceiver receiver)
        {
            using (_mockRepository.Ordered())
            {
                StreamingContext context = new StreamingContext();
                receiver.OnSerializing(context);
                _mockRepository.LastCall_IgnoreArguments();

                receiver.OnSerialized(context);
                _mockRepository.LastCall_IgnoreArguments();
            }
        }
        public void Test_SerializationCallbacks()
        {
            _receiverSetter(null);
            try
            {
                ISerializationEventReceiver receiver = _mockRepository.StrictMock <ISerializationEventReceiver> ();

                _receiverSetter(receiver);
                CheckSerialization(receiver);
            }
            finally
            {
                _receiverSetter(null);
            }
        }
        public void Test_DeserializationCallbacks()
        {
            _receiverSetter(null);
            try
            {
                byte[] bytes = Serializer.Serialize(_instance);
                ISerializationEventReceiver receiver = _mockRepository.StrictMock <ISerializationEventReceiver> ();
                _receiverSetter(receiver);

                CheckDeserialization(bytes, receiver);
            }
            finally
            {
                _receiverSetter(null);
            }
        }
 public static void SetReceiver(ISerializationEventReceiver receiver)
 {
     s_receiver = receiver;
 }