public void TestParseFilterModel() { queryString.Add("s_stringfilter", "StringValue"); queryString.Add("s_intfilter", "10"); queryString.Add("s_datefilter", "2010-09-08"); queryString.Add("s_boolfilter", "true"); queryString.Add("s_stringfilter2", "StringValue1,StringValue2,StringValue3"); queryString.Add("s_intfilter2", "20,30,40"); queryString.Add("s_rangeintfilter", "10,50"); queryString.Add("s_rangedatefilter", "2009-08-07,2010-09-08"); var selectFilterAttribute = new SelectFilterAttribute { FiltersModel = typeof(TestFilterModel) }; selectFilterAttribute.OnActionExecuting(filterContext.Object); var model = controller.Object.ViewBag.FiltersModel as TestFilterModel; Assert.IsNotNull(model); Assert.IsTrue(model.StringFilter.Selected); Assert.AreEqual("StringValue", model.StringFilter.Value); Assert.IsTrue(model.IntFilter.Selected); Assert.AreEqual(10, model.IntFilter.Value); Assert.IsTrue(model.DateFilter.Selected); Assert.AreEqual(new DateTime(2010, 09, 08), model.DateFilter.Value); Assert.IsTrue(model.BoolFilter.Selected); Assert.AreEqual(true, model.BoolFilter.Value); Assert.IsTrue(model.EnumerableStringFilter.Selected); Assert.AreEqual(3, model.EnumerableStringFilter.Value.Count()); Assert.AreEqual("StringValue1", model.EnumerableStringFilter.Value.ElementAt(0)); Assert.AreEqual("StringValue2", model.EnumerableStringFilter.Value.ElementAt(1)); Assert.AreEqual("StringValue3", model.EnumerableStringFilter.Value.ElementAt(2)); Assert.IsTrue(model.EnumerableIntFilter.Selected); Assert.AreEqual(3, model.EnumerableIntFilter.Value.Count()); Assert.AreEqual(20, model.EnumerableIntFilter.Value.ElementAt(0)); Assert.AreEqual(30, model.EnumerableIntFilter.Value.ElementAt(1)); Assert.AreEqual(40, model.EnumerableIntFilter.Value.ElementAt(2)); Assert.IsTrue(model.RangeIntFilter.Selected); Assert.AreEqual(10, model.RangeIntFilter.Value.LowerBound); Assert.AreEqual(50, model.RangeIntFilter.Value.UpperBound); Assert.IsTrue(model.RangeDateFilter.Selected); Assert.AreEqual(new DateTime(2009, 08, 07), model.RangeDateFilter.Value.LowerBound); Assert.AreEqual(new DateTime(2010, 09, 08), model.RangeDateFilter.Value.UpperBound); }
public void TestParseNotSelected() { queryString.Add("s_stringfilter", "abcd"); queryString.Add("s_intfilter", "202"); var selectFilterAttribute = new SelectFilterAttribute { FiltersModel = typeof(TestFilterModel) }; selectFilterAttribute.OnActionExecuting(filterContext.Object); var model = controller.Object.ViewBag.FiltersModel as TestFilterModel; Assert.IsNotNull(model); Assert.AreEqual("I'm not selected", model.StringFilter.NotSelectedValue); Assert.AreEqual("101", model.IntFilter.NotSelectedValue); }
public void TestParseNullableFilterModel() { var selectFilterAttribute = new SelectFilterAttribute { FiltersModel = typeof(TestFilterModel) }; selectFilterAttribute.OnActionExecuting(filterContext.Object); var model = controller.Object.ViewBag.FiltersModel as TestFilterModel; Assert.IsNotNull(model); Assert.IsFalse(model.StringFilter.Selected); Assert.IsFalse(model.IntFilter.Selected); Assert.IsFalse(model.DateFilter.Selected); Assert.IsFalse(model.BoolFilter.Selected); Assert.IsFalse(model.EnumerableStringFilter.Selected); Assert.IsFalse(model.EnumerableIntFilter.Selected); Assert.IsFalse(model.RangeIntFilter.Selected); Assert.IsFalse(model.RangeDateFilter.Selected); }
public void TestParseInvalidFormattedFilterModel() { queryString.Add("s_intfilter", "abcde"); queryString.Add("s_datefilter", "abcde"); queryString.Add("s_boolfilter", "abcde"); var selectFilterAttribute = new SelectFilterAttribute { FiltersModel = typeof(TestFilterModel) }; selectFilterAttribute.OnActionExecuting(filterContext.Object); var model = controller.Object.ViewBag.FiltersModel as TestFilterModel; Assert.IsNotNull(model); Assert.IsFalse(model.IntFilter.Selected); Assert.IsInstanceOfType(model.IntFilter.FormatException, typeof(FormatException)); Assert.IsFalse(model.DateFilter.Selected); Assert.IsInstanceOfType(model.DateFilter.FormatException, typeof(FormatException)); Assert.IsFalse(model.BoolFilter.Selected); Assert.IsInstanceOfType(model.BoolFilter.FormatException, typeof(FormatException)); }