Beispiel #1
0
        public void EnqueueAndEndSessionTest()
        {
            var sessionId = Guid.NewGuid();
            var queue     = new ChatSessionQueue(new ConsoleLogProvider(), new AgentChatCoordinatorService(new ConsoleLogProvider()));

            Assert.IsTrue(queue.Enqueue(new ChatSession(sessionId)));

            queue.RemoveSession(sessionId);
            Assert.IsNull(queue.GetChatSession(sessionId));
        }
Beispiel #2
0
        public void SessionExpiryTest()
        {
            var agentChatCoordinatorService = new AgentChatCoordinatorService(new ConsoleLogProvider());
            var queue     = new ChatSessionQueue(new ConsoleLogProvider(), agentChatCoordinatorService);
            var sessionId = Guid.NewGuid();

            Assert.IsTrue(queue.Enqueue(new ChatSession(sessionId)));

            Thread.Sleep((ChatSettings.ChatSessionTimeoutSeconds + 2) * 1000);
            Assert.IsNull(queue.GetChatSession(sessionId));
        }
Beispiel #3
0
        public void SessionKeepAliveTest()
        {
            var agentChatCoordinatorService = new AgentChatCoordinatorService(new ConsoleLogProvider());
            var queue     = new ChatSessionQueue(new ConsoleLogProvider(), agentChatCoordinatorService);
            var sessionId = Guid.NewGuid();

            Assert.IsTrue(queue.Enqueue(new ChatSession(sessionId)));

            for (var i = 0; i < 10; i++)
            {
                queue.UpdateHeartbeat(sessionId);
                Assert.IsNotNull(queue.GetChatSession(sessionId));
                if (i < 9)
                {
                    Thread.Sleep(1000);
                }
            }
            Assert.IsNotNull(queue.GetChatSession(sessionId));
            queue.RemoveSession(sessionId);
            Assert.IsNull(queue.GetChatSession(sessionId));
        }
Beispiel #4
0
        public void MaxCapacityTest()
        {
            var agentChatCoordinatorService = new AgentChatCoordinatorService(new ConsoleLogProvider());
            var queue        = new ChatSessionQueue(new ConsoleLogProvider(), agentChatCoordinatorService);
            var teamCapacity = agentChatCoordinatorService.GetTeamCapacity();

            for (var i = 0; i < teamCapacity + 1; i++)
            {
                var sessionId = Guid.NewGuid();

                if (i < teamCapacity)
                {
                    // Ensure that when within the capacity, the enqueue is true
                    Assert.IsTrue(queue.Enqueue(new ChatSession(sessionId)));
                }
                else
                {
                    // Ensure that when we exceed the capacity, the enqueue is false
                    Assert.IsFalse(queue.Enqueue(new ChatSession(sessionId)));
                }
            }
        }