Example #1
0
        public void InvokeAttributedMethod_UsesCache()
        {
            ClassWithDeserializationEvents instance = new ClassWithDeserializationEvents();
            StreamingContext context = new StreamingContext();

            var eventRaiserMock = new Mock <SerializationEventRaiser> {
                CallBase = true
            };

            eventRaiserMock.Object.InvokeAttributedMethod(instance, typeof(OnDeserializedAttribute), context);
            eventRaiserMock.Protected().Verify("FindDeserializationMethodsWithCache", Times.Once(), typeof(ClassWithDeserializationEvents), typeof(OnDeserializedAttribute));
            eventRaiserMock.Protected().Verify("FindDeserializationMethodsNoCache", Times.Once(), typeof(ClassWithDeserializationEvents), typeof(OnDeserializedAttribute));
            eventRaiserMock.Invocations.Clear();

            eventRaiserMock.Object.InvokeAttributedMethod(instance, typeof(OnDeserializedAttribute), context);
            eventRaiserMock.Protected().Verify("FindDeserializationMethodsWithCache", Times.Once(), typeof(ClassWithDeserializationEvents), typeof(OnDeserializedAttribute));
            eventRaiserMock.Protected().Verify("FindDeserializationMethodsNoCache", Times.Never(), typeof(ClassWithDeserializationEvents), typeof(OnDeserializedAttribute));
        }
Example #2
0
        public void RaiseOnDeserialization()
        {
            SerializationEventRaiser eventRaiser = new SerializationEventRaiser();

            ClassWithDeserializationEvents instance = new ClassWithDeserializationEvents();

            Assert.That(instance.OnBaseDeserializingCalled, Is.False);
            Assert.That(instance.OnBaseDeserializedCalled, Is.False);
            Assert.That(instance.OnDeserializingCalled, Is.False);
            Assert.That(instance.OnDeserializedCalled, Is.False);
            Assert.That(instance.OnDeserializationCalled, Is.False);

            eventRaiser.RaiseDeserializationEvent(instance, null);

            Assert.That(instance.OnBaseDeserializingCalled, Is.False);
            Assert.That(instance.OnBaseDeserializedCalled, Is.False);
            Assert.That(instance.OnDeserializingCalled, Is.False);
            Assert.That(instance.OnDeserializedCalled, Is.False);
            Assert.That(instance.OnDeserializationCalled, Is.True);
        }
Example #3
0
        public void InvokeAttributedMethod_OnDeserializing()
        {
            SerializationEventRaiser eventRaiser = new SerializationEventRaiser();

            ClassWithDeserializationEvents instance = new ClassWithDeserializationEvents();

            Assert.That(instance.OnBaseDeserializingCalled, Is.False);
            Assert.That(instance.OnBaseDeserializedCalled, Is.False);
            Assert.That(instance.OnDeserializingCalled, Is.False);
            Assert.That(instance.OnDeserializedCalled, Is.False);
            Assert.That(instance.OnDeserializationCalled, Is.False);

            eventRaiser.InvokeAttributedMethod(instance, typeof(OnDeserializingAttribute), new StreamingContext());

            Assert.That(instance.OnBaseDeserializingCalled, Is.True);
            Assert.That(instance.OnBaseDeserializedCalled, Is.False);
            Assert.That(instance.OnDeserializingCalled, Is.True);
            Assert.That(instance.OnDeserializedCalled, Is.False);
            Assert.That(instance.OnDeserializationCalled, Is.False);
        }
        public void InvokeAttributedMethod_UsesCache()
        {
            ClassWithDeserializationEvents instance = new ClassWithDeserializationEvents();
            StreamingContext context = new StreamingContext();

            MockRepository           repository      = new MockRepository();
            SerializationEventRaiser eventRaiserMock = repository.StrictMock <SerializationEventRaiser>();

            eventRaiserMock.InvokeAttributedMethod(instance, typeof(OnDeserializedAttribute), context);
            LastCall.CallOriginalMethod(OriginalCallOptions.CreateExpectation);

            Expect.Call(PrivateInvoke.InvokeNonPublicMethod(eventRaiserMock, "FindDeserializationMethodsWithCache", typeof(ClassWithDeserializationEvents), typeof(OnDeserializedAttribute)))
            .Return(new List <MethodInfo>());

            repository.ReplayAll();

            eventRaiserMock.InvokeAttributedMethod(instance, typeof(OnDeserializedAttribute), context);

            repository.VerifyAll();
        }