Ejemplo n.º 1
0
        public void Result_can_be_mutated(bool useObsoleteState)
        {
            var interceptionContext = new DbCommandInterceptionContext <string>();

            Assert.Null(interceptionContext.Result);
            Assert.Null(interceptionContext.OriginalResult);
            Assert.Null(interceptionContext.Exception);
            Assert.Null(interceptionContext.OriginalException);
            if (useObsoleteState)
            {
#pragma warning disable 618
                Assert.Null(interceptionContext.UserState);
#pragma warning restore 618
            }
            else
            {
                Assert.Null(interceptionContext.FindUserState("A"));
                Assert.Null(interceptionContext.FindUserState("B"));
            }
            Assert.False(interceptionContext.IsExecutionSuppressed);

            ((IDbMutableInterceptionContext <string>)interceptionContext).MutableData.SetExecuted("Wensleydale");

            Assert.Equal("Wensleydale", interceptionContext.Result);
            Assert.Equal("Wensleydale", interceptionContext.OriginalResult);
            Assert.Null(interceptionContext.Exception);
            Assert.Null(interceptionContext.OriginalException);
            if (useObsoleteState)
            {
#pragma warning disable 618
                Assert.Null(interceptionContext.UserState);
#pragma warning restore 618
            }
            else
            {
                Assert.Null(interceptionContext.FindUserState("A"));
                Assert.Null(interceptionContext.FindUserState("B"));
            }
            Assert.False(interceptionContext.IsExecutionSuppressed);

            interceptionContext.Result = "Double Gloucester";
            if (useObsoleteState)
            {
#pragma warning disable 618
                interceptionContext.UserState = "Cheddar";
#pragma warning restore 618
            }
            else
            {
                interceptionContext.SetUserState("A", "AState");
                interceptionContext.SetUserState("B", "BState");
            }
            Assert.Equal("Double Gloucester", interceptionContext.Result);
            Assert.Equal("Wensleydale", interceptionContext.OriginalResult);
            if (useObsoleteState)
            {
#pragma warning disable 618
                Assert.Equal("Cheddar", interceptionContext.UserState);
#pragma warning restore 618
            }
            else
            {
                Assert.Equal("AState", interceptionContext.FindUserState("A"));
                Assert.Equal("BState", interceptionContext.FindUserState("B"));
                Assert.Null(interceptionContext.FindUserState("C"));
            }
            Assert.False(interceptionContext.IsExecutionSuppressed);
            Assert.False(interceptionContext.IsExecutionSuppressed);

            interceptionContext.Result = null;
            if (useObsoleteState)
            {
#pragma warning disable 618
                interceptionContext.UserState = null;
#pragma warning restore 618
            }
            else
            {
                interceptionContext.SetUserState("A", null);
                interceptionContext.SetUserState("B", null);
            }
            Assert.Null(interceptionContext.Result);
            if (useObsoleteState)
            {
#pragma warning disable 618
                Assert.Null(interceptionContext.UserState);
#pragma warning restore 618
            }
            else
            {
                Assert.Null(interceptionContext.FindUserState("A"));
                Assert.Null(interceptionContext.FindUserState("B"));
            }
            Assert.Equal("Wensleydale", interceptionContext.OriginalResult);
            Assert.False(interceptionContext.IsExecutionSuppressed);
        }