public void ValidateRequestByIntegrationConfig_Test()
        {
            // Arrange
            UserInQueueServiceMock mock = new UserInQueueServiceMock();

            KnownUser._UserInQueueService = (mock);

            TriggerPart triggerPart = new TriggerPart();

            triggerPart.Operator       = "Contains";
            triggerPart.ValueToCompare = "event1";
            triggerPart.UrlPart        = "PageUrl";
            triggerPart.ValidatorType  = "UrlValidator";
            triggerPart.IsNegative     = false;
            triggerPart.IsIgnoreCase   = true;

            TriggerModel trigger = new TriggerModel();

            trigger.LogicalOperator = "And";
            trigger.TriggerParts    = new TriggerPart[] { triggerPart };

            IntegrationConfigModel config = new IntegrationConfigModel();

            config.Name = "event1action";
            //config.ActionType = "Queue";
            config.EventId              = "event1";
            config.CookieDomain         = ".test.com";
            config.LayoutName           = "Christmas Layout by Queue-it";
            config.Culture              = "da-DK";
            config.ExtendCookieValidity = true;
            config.CookieValidityMinute = 20;
            config.Triggers             = new TriggerModel[] { trigger };
            config.QueueDomain          = "knownusertest.queue-it.net";
            config.RedirectLogic        = "AllowTParameter";
            config.ForcedTargetUrl      = "";

            CustomerIntegration customerIntegration = new CustomerIntegration();

            customerIntegration.Integrations = new IntegrationConfigModel[] { config };
            customerIntegration.Version      = 3;

            // Act
            KnownUser.ValidateRequestByIntegrationConfig("http://test.com?event1=true", "queueitToken", customerIntegration, "customerId", "secretKey");

            // Assert
            Assert.True(mock.validateRequestCalls.Count == 1);
            Assert.Equal("http://test.com?event1=true", mock.validateRequestCalls[0][0]);
            Assert.Equal("queueitToken", mock.validateRequestCalls[0][1]);
            Assert.Equal(".test.com:Christmas Layout by Queue-it:da-DK:event1:knownusertest.queue-it.net:true:20:3", mock.validateRequestCalls[0][2]);
            Assert.Equal("customerId", mock.validateRequestCalls[0][3]);
            Assert.Equal("secretKey", mock.validateRequestCalls[0][4]);
        }
Пример #2
0
        private static RequestValidationResult HandleCancelAction(
            string currentUrlWithoutQueueITToken, string queueitToken,
            CustomerIntegration customerIntegrationInfo, string customerId,
            string secretKey, Dictionary <string, string> debugEntries,
            IntegrationConfigModel matchedConfig)
        {
            var cancelEventConfig = new CancelEventConfig()
            {
                QueueDomain  = matchedConfig.QueueDomain,
                EventId      = matchedConfig.EventId,
                Version      = customerIntegrationInfo.Version,
                CookieDomain = matchedConfig.CookieDomain
            };
            var targetUrl = GenerateTargetUrl(currentUrlWithoutQueueITToken);

            return(CancelRequestByLocalConfig(targetUrl, queueitToken, cancelEventConfig, customerId, secretKey, debugEntries));
        }
Пример #3
0
        private static RequestValidationResult HandleQueueAction(
            string currentUrlWithoutQueueITToken,
            string queueitToken,
            CustomerIntegration customerIntegrationInfo,
            string customerId,
            string secretKey,
            Dictionary <string, string> debugEntries,
            IntegrationConfigModel matchedConfig,
            bool isDebug)
        {
            var targetUrl = "";

            switch (matchedConfig.RedirectLogic)
            {
            case "ForcedTargetUrl":
            case "ForecedTargetUrl":
                targetUrl = matchedConfig.ForcedTargetUrl;
                break;

            case "EventTargetUrl":
                targetUrl = "";
                break;

            default:
                targetUrl = GenerateTargetUrl(currentUrlWithoutQueueITToken);
                break;
            }

            var queueEventConfig = new QueueEventConfig
            {
                QueueDomain          = matchedConfig.QueueDomain,
                Culture              = matchedConfig.Culture,
                EventId              = matchedConfig.EventId,
                ExtendCookieValidity = matchedConfig.ExtendCookieValidity.Value,
                LayoutName           = matchedConfig.LayoutName,
                CookieValidityMinute = matchedConfig.CookieValidityMinute.Value,
                CookieDomain         = matchedConfig.CookieDomain,
                IsCookieHttpOnly     = matchedConfig.IsCookieHttpOnly ?? false,
                IsCookieSecure       = matchedConfig.IsCookieSecure ?? false,
                Version              = customerIntegrationInfo.Version,
                ActionName           = matchedConfig.Name
            };

            return(ResolveQueueRequestByLocalConfig(targetUrl, queueitToken, queueEventConfig, customerId, secretKey, debugEntries, isDebug));
        }
Пример #4
0
        private static RequestValidationResult HandleCancelAction(
            string currentUrlWithoutQueueITToken, string queueitToken,
            CustomerIntegration customerIntegrationInfo, string customerId,
            string secretKey, Dictionary <string, string> debugEntries,
            IntegrationConfigModel matchedConfig, bool isDebug)
        {
            var cancelEventConfig = new CancelEventConfig
            {
                QueueDomain      = matchedConfig.QueueDomain,
                EventId          = matchedConfig.EventId,
                Version          = customerIntegrationInfo.Version,
                CookieDomain     = matchedConfig.CookieDomain,
                IsCookieHttpOnly = matchedConfig.IsCookieHttpOnly ?? false,
                IsCookieSecure   = matchedConfig.IsCookieSecure ?? false,
                ActionName       = matchedConfig.Name
            };

            return(CancelRequestByLocalConfig(currentUrlWithoutQueueITToken, queueitToken, cancelEventConfig, customerId, secretKey, debugEntries, isDebug));
        }