Revision: 15942
Initial Code
Initial URL
Initial Description
Initial Title
Initial Tags
Initial Language
at July 21, 2009 09:55 by RockinForGod
Initial Code
[TestClass]
public class ValidateAntiSpamAttributeTest
{
/// <summary>
///Gets or sets the test context which provides
///information about and functionality for the current test run.
///</summary>
public TestContext TestContext { get; set; }
#region Additional test attributes
//
// You can use the following additional attributes as you write your tests:
//
// Use ClassInitialize to run code before running the first test in the class
// [ClassInitialize()]
// public static void MyClassInitialize(TestContext testContext) { }
//
// Use ClassCleanup to run code after all tests in a class have run
// [ClassCleanup()]
// public static void MyClassCleanup() { }
//
// Use TestInitialize to run code before running each test
// [TestInitialize()]
// public void MyTestInitialize() { }
//
// Use TestCleanup to run code after each test has run
// [TestCleanup()]
// public void MyTestCleanup() { }
//
#endregion
private ActionExecutingContext GetFilterContext(string sixtimesnine, string fourtytwo)
{
var formCollection = new NameValueCollection();
formCollection.Add("sixtimesnine", sixtimesnine);
formCollection.Add("fourtytwo", fourtytwo);
var httpRequest = new Mock<HttpRequestBase>();
httpRequest.Expect(r => r.Form).Returns(formCollection);
var httpContext = new Mock<HttpContextBase>();
httpContext.Expect(hc => hc.Request).Returns(httpRequest.Object);
var actionDescriptor = new Mock<ActionDescriptor>().Object;
var controller = new FakeController();
var controllerContext =
new ControllerContext(httpContext.Object, new RouteData(), controller);
return
new ActionExecutingContext(controllerContext, actionDescriptor, new RouteValueDictionary());
}
[TestMethod]
public void OnActionExecuting_FormValuesEqual_NoErrorsAdded()
{
// Arrange
var attribute = new ValidateAntiSpamAttribute();
var filterContext = this.GetFilterContext("nej", "nej");
// Act
attribute.OnActionExecuting(filterContext);
// Assert
var modelState = filterContext.Controller.ViewData.ModelState;
Assert.AreEqual(0, modelState.Count);
Assert.AreEqual("passed", (string)filterContext.Controller.ViewData["filter"]);
}
[TestMethod]
public void OnActionExecuting_FormValuesNotEqual_ErrorAddedToModelState()
{
// Arrange
var attribute = new ValidateAntiSpamAttribute("test message");
var filtercontext = this.GetFilterContext("nej", "ja");
// Act
attribute.OnActionExecuting(filtercontext);
// Assert
var modelState = filtercontext.Controller.ViewData.ModelState;
Assert.IsTrue(modelState.Count > 0);
Assert.AreEqual(modelState["Spam"].Errors[0].ErrorMessage, "test message");
}
[TestMethod]
public void OnActionExecuting_NoFormValues_ErrorAddedToModelState()
{
// Arrange
var attribute = new ValidateAntiSpamAttribute("test message");
var filtercontext = this.GetFilterContext(string.Empty, string.Empty);
// Act
attribute.OnActionExecuting(filtercontext);
// Assert
var modelState = filtercontext.Controller.ViewData.ModelState;
Assert.IsTrue(modelState.Count > 0);
Assert.AreEqual(modelState["Spam"].Errors[0].ErrorMessage, "test message");
}
}
Initial URL
Initial Description
Initial Title
ASP.NET MVC - ValidateAntiSpamAtrribute Test Class
Initial Tags
Initial Language
C#