public void ValidateCancelRequest()
        {
            var    cookieProviderMock = Substitute.For <IUserInQueueStateRepository>();
            string queueId            = "queueId";
            var    config             = new CancelEventConfig()
            {
                EventId      = "e1",
                QueueDomain  = "testDomain.com",
                CookieDomain = "testdomain",
                Version      = 10,
                ActionName   = "QueueAction"
            };
            var knownUserVersion = UserInQueueService.SDK_VERSION;
            var expectedMan      = Uri.EscapeDataString(config.ActionName);
            var expectedUrl      = $"https://testDomain.com/cancel/testCustomer/e1/?c=testCustomer&e=e1" +
                                   $"&ver={knownUserVersion}"
                                   + $"&cver=10&man=QueueAction&r=" + "url";

            cookieProviderMock.GetState("", 0, "", false)
            .ReturnsForAnyArgs(new StateInfo(true, true, queueId, 3, "idle"));

            UserInQueueService testObject = new UserInQueueService(cookieProviderMock);

            var result = testObject.ValidateCancelRequest("url", config, "testCustomer", "key");

            cookieProviderMock.Received().GetState("e1", -1, "key", false);
            cookieProviderMock.Received().CancelQueueCookie("e1", "testdomain");
            Assert.True(result.DoRedirect);
            Assert.True(result.QueueId == queueId);
            Assert.True(result.RedirectUrl.ToLower() == expectedUrl.ToLower());
            Assert.True(config.EventId == result.EventId);
            Assert.Equal(config.ActionName, result.ActionName);
        }
示例#2
0
        public void ValidateCancelRequest()
        {
            var    cookieProviderMock = MockRepository.GenerateMock <IUserInQueueStateRepository>();
            string queueId            = "queueId";
            var    config             = new CancelEventConfig()
            {
                EventId      = "e1",
                QueueDomain  = "testDomain.com",
                CookieDomain = "testdomain",
                Version      = 10
            };
            var knownUserVersion = UserInQueueService.SDK_VERSION;
            var expectedUrl      = $"https://testDomain.com/cancel/testCustomer/e1/?c=testCustomer&e=e1" +
                                   $"&ver=v3-aspnet-{knownUserVersion}"
                                   + $"&cver=10&r=" + "url";

            cookieProviderMock.Stub(stub => stub.GetState("", 0, "", false))
            .IgnoreArguments().Return(new StateInfo(true, queueId, 3, "idle"));

            UserInQueueService testObject = new UserInQueueService(cookieProviderMock);

            var result = testObject.ValidateCancelRequest("url", config, "testCustomer", "key");

            cookieProviderMock.AssertWasCalled(stub => stub.GetState("e1", -1, "key", false));
            cookieProviderMock.AssertWasCalled(stub => stub.CancelQueueCookie("e1", "testdomain"));
            Assert.True(result.DoRedirect);
            Assert.True(result.QueueId == queueId);
            Assert.True(result.RedirectUrl.ToLower() == expectedUrl.ToLower());
            Assert.True(config.EventId == result.EventId);
        }