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); }
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); }
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); }
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]); }
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); }
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); }
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]); }
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]); }