protected override void ExecuteTest()
 {
     callContext = new CacheCallStackContext();
     callContext.Enter(invocations[0]);
 }
        protected override void BeforeExecuteTest()
        {
            var cacheCallStackContext = new CacheCallStackContext();

            // Reinitialize the context
            CallContext.FreeNamedDataSlot(CacheInterceptor.CallStackContextKey);
            CallContext.SetData(CacheInterceptor.CallStackContextKey, cacheCallStackContext);

            // Simulate invocation already entered the cache interceptor
            cacheCallStackContext.Enter(invocation);

            Assert.That(GetCacheCallStackContext().CurrentDepth, Is.GreaterThan(0));
        }
        protected override void ExecuteTest()
        {
            callContext = new CacheCallStackContext();

            // First service call context
            callContext.Enter(invocations[0]); // Outer service ENTER
            callContext.Enter(invocations[1]); // Inner service ENTER
            callContext.Exit();                // Inner service EXIT
            fakeInterceptor.MarkAsProcessed(); // Result modified by upstream interceptor
            callContext.Exit();                // Outer service EXIT

            // Starting a second service call
            callContext.Enter(invocations[2]); // Outer service ENTER
            callContext.Enter(invocations[3]); // Inner service ENTER
            callContext.Exit();                // Inner service EXIT
        }