Exemplo n.º 1
0
        public void GetSession_EnsureSameDistributedSession()
        {
            List <string> sessions = new List <string>();

            Callback = new Mock <IDummyContract>(MockBehavior.Strict);

            DistributedCache.Setup(c => c.RefreshAsync(It.IsAny <string>(), It.IsAny <CancellationToken>()))
            .Returns(Task.FromResult(true))
            .Callback <string, CancellationToken>(
                (v, t) =>
            {
                sessions.Add(v);
            }).Verifiable();

            Callback.Setup(c => c.OnExecute(It.IsAny <object>())).Callback <object>(
                v =>
            {
                sessions.Add(((DummyContract)v).HttpSessionProvider.SessionId);
            }).Verifiable();

            IDummyContract channel = CreateChannel();

            channel.OnExecute(null);
            channel.OnExecute(null);
            channel.OnExecute(null);

            Assert.True(sessions.Distinct().Count() == 1, "Multiple sessions were created.");
            DistributedCache.Verify();
        }