Beispiel #1
0
        public void IsMatch_WhenNoConditions_ReturnsTrue()
        {
            // Arrange
            RewriteAction   action  = new RewriteAction("/", RewriteProcessing.RestartProcessing);
            IRewriteContext context = new MockRewriteContext();

            // Act
            bool match = action.IsMatch(context);

            // Assert
            Assert.IsTrue(match);
        }
        public void IsMatch_WhenNoConditions_ReturnsTrue()
        {
            // Arrange
            RedirectAction  action  = new RedirectAction("/", true);
            IRewriteContext context = new MockRewriteContext();

            // Act
            bool match = action.IsMatch(context);

            // Assert
            Assert.IsTrue(match);
        }
        public void Execute_WhenNoActionsOrConditions_ReturnsContinueProcessing()
        {
            // Arrange
            ConditionalAction action  = new ConditionalAction();
            IRewriteContext   context = new MockRewriteContext();

            // Act
            RewriteProcessing result = action.Execute(context);

            // Assert
            Assert.AreEqual(RewriteProcessing.ContinueProcessing, result);
        }
        public void Execute_SetsStatusCode_ReturnsStopProcessing()
        {
            // Arrange
            ForbiddenAction action  = new ForbiddenAction();
            IRewriteContext context = new MockRewriteContext();

            // Act
            RewriteProcessing result = action.Execute(context);

            // Assert
            Assert.AreEqual(HttpStatusCode.Forbidden, context.StatusCode);
            Assert.AreEqual(RewriteProcessing.StopProcessing, result);
        }
        public void IsMatch_WhenSingleConditionMatches_ReturnsTrue()
        {
            // Arrange
            ConditionalAction action  = new ConditionalAction();
            IRewriteContext   context = new MockRewriteContext();

            action.Conditions.Add(new MockRewriteCondition(true));

            // Act
            bool match = action.IsMatch(context);

            // Assert
            Assert.IsTrue(match);
        }
Beispiel #6
0
        public void Execute_WhenStatusCodeAccepted_SetsStatusCode_ReturnsContinueProcessing()
        {
            // Arrange
            HttpStatusCode  code    = HttpStatusCode.Accepted;
            SetStatusAction action  = new SetStatusAction(code);
            IRewriteContext context = new MockRewriteContext();

            // Act
            RewriteProcessing result = action.Execute(context);

            // Assert
            Assert.AreEqual(RewriteProcessing.ContinueProcessing, result);
            Assert.AreEqual(code, context.StatusCode);
        }
        public void IsMatch_WhenSingleConditionDoesNotMatch_ReturnsFalse()
        {
            // Arrange
            RedirectAction  action  = new RedirectAction("/", true);
            IRewriteContext context = new MockRewriteContext();

            action.Conditions.Add(new MockRewriteCondition(false));

            // Act
            bool match = action.IsMatch(context);

            // Assert
            Assert.IsFalse(match);
        }
Beispiel #8
0
        public void Execute_WhenStatusCodeError_SetsStatusCode_ReturnsStopProcessing()
        {
            // Arrange
            HttpStatusCode  code    = HttpStatusCode.InternalServerError;
            SetStatusAction action  = new SetStatusAction(code);
            IRewriteContext context = new MockRewriteContext();

            // Act
            RewriteProcessing result = action.Execute(context);

            // Assert
            Assert.AreEqual(RewriteProcessing.StopProcessing, result);
            Assert.AreEqual(code, context.StatusCode);
        }
        public void Execute_WhenConditionAndAction_ReturnsExpectedResult()
        {
            // Arrange
            ConditionalAction action  = new ConditionalAction();
            IRewriteContext   context = new MockRewriteContext();

            action.Conditions.Add(new MockRewriteCondition(true));
            action.Actions.Add(new MockRewriteAction(RewriteProcessing.ContinueProcessing));

            // Act
            RewriteProcessing result = action.Execute(context);

            // Assert
            Assert.AreEqual(RewriteProcessing.ContinueProcessing, result);
        }
Beispiel #10
0
        public void IsMatch_WhenMixedConditions_ReturnsFalse()
        {
            // Arrange
            RewriteAction   action  = new RewriteAction("/", RewriteProcessing.RestartProcessing);
            IRewriteContext context = new MockRewriteContext();

            action.Conditions.Add(new MockRewriteCondition(true));
            action.Conditions.Add(new MockRewriteCondition(false));

            // Act
            bool match = action.IsMatch(context);

            // Assert
            Assert.IsFalse(match);
        }
        public void Execute_WhenMissingAppSetting_SetsPropertyToEmptyString_ReturnsContinueProcessing()
        {
            // Arrange
            string propertyName  = "PropertyName";
            string appSettingKey = "MissingAppSettingKey";
            SetAppSettingPropertyAction action  = new SetAppSettingPropertyAction(propertyName, appSettingKey);
            IRewriteContext             context = new MockRewriteContext();

            // Act
            RewriteProcessing result = action.Execute(context);

            // Assert
            Assert.AreEqual(RewriteProcessing.ContinueProcessing, result);
            CollectionAssert.Contains(context.Properties.Keys, propertyName);
            Assert.AreEqual(String.Empty, context.Properties[propertyName]);
        }
Beispiel #12
0
        public void Execute_SetsResponseHeader_ReturnsContinueProcessing()
        {
            // Arrange
            string          header  = "HeaderName";
            string          value   = "HeaderValue";
            IRewriteContext context = new MockRewriteContext();
            AddHeaderAction action  = new AddHeaderAction(header, value);

            // Act
            RewriteProcessing result = action.Execute(context);

            // Assert
            CollectionAssert.Contains(context.ResponseHeaders.Keys, header);
            Assert.AreEqual(value, context.ResponseHeaders[header]);
            Assert.AreEqual(RewriteProcessing.ContinueProcessing, result);
        }
Beispiel #13
0
        public void Execute_SetsCookie_ReturnsContinueProcessing()
        {
            // Arrange
            string          cookieName  = "CookieName";
            string          cookieValue = "CookieValue";
            SetCookieAction action      = new SetCookieAction(cookieName, cookieValue);
            IRewriteContext context     = new MockRewriteContext();

            // Act
            RewriteProcessing result = action.Execute(context);

            // Assert
            Assert.AreEqual(RewriteProcessing.ContinueProcessing, result);
            CollectionAssert.Contains(context.ResponseCookies.Keys, cookieName);
            Assert.AreEqual(cookieValue, context.ResponseCookies[cookieName].Value);
        }
Beispiel #14
0
        public void Execute_SetsProperty_ReturnsContinueProcessing()
        {
            // Arrange
            string            propertyName  = "PropertyName";
            string            propertyValue = "PropertyValue";
            SetPropertyAction action        = new SetPropertyAction(propertyName, propertyValue);
            IRewriteContext   context       = new MockRewriteContext();

            // Act
            RewriteProcessing result = action.Execute(context);

            // Assert
            Assert.AreEqual(RewriteProcessing.ContinueProcessing, result);
            CollectionAssert.Contains(context.Properties.Keys, propertyName);
            Assert.AreEqual(propertyValue, context.Properties[propertyName]);
        }
Beispiel #15
0
        public void Execute_SetsLocation_ReturnsCorrectValue()
        {
            // Arrange
            string            location   = "/NewLocation";
            RewriteProcessing processing = RewriteProcessing.RestartProcessing;
            RewriteAction     action     = new RewriteAction(location, processing);

            action.Conditions.Add(new MockRewriteCondition(true));
            IRewriteContext context = new MockRewriteContext();

            // Act
            RewriteProcessing result = action.Execute(context);

            // Assert
            Assert.AreEqual(processing, result);
            Assert.AreEqual(location, context.Location);
        }
        public void Execute_WhenTemporary_SetsStatusCodeAndLocation_ReturnsStopProcessing()
        {
            // Arrange
            string         location  = "/NewLocation";
            bool           permanent = false;
            RedirectAction action    = new RedirectAction(location, permanent);

            action.Conditions.Add(new MockRewriteCondition(true));
            IRewriteContext context = new MockRewriteContext();

            // Act
            RewriteProcessing result = action.Execute(context);

            // Assert
            Assert.AreEqual(RewriteProcessing.StopProcessing, result);
            Assert.AreEqual(HttpStatusCode.Found, context.StatusCode);
            Assert.AreEqual(location, context.Location);
        }
        public void Execute_SetsPropertyAppSetting_ReturnsContinueProcessing()
        {
            // Arrange
            string propertyName                 = "PropertyName";
            string appSettingKey                = "AppSettingKey";
            string appSettingValue              = "AppSettingValue";
            SetAppSettingPropertyAction action  = new SetAppSettingPropertyAction(propertyName, appSettingKey);
            IRewriteContext             context = new MockRewriteContext();

            context.ConfigurationManager.AppSettings[appSettingKey] = appSettingValue;

            // Act
            RewriteProcessing result = action.Execute(context);

            // Assert
            Assert.AreEqual(RewriteProcessing.ContinueProcessing, result);
            CollectionAssert.Contains(context.Properties.Keys, propertyName);
            Assert.AreEqual(appSettingValue, context.Properties[propertyName]);
        }