public void FilterById_NotNumericId_Throws()
        {
            MvcLookupProxy<NonNumericIdModel> lookup = new MvcLookupProxy<NonNumericIdModel>();

            lookup.CurrentFilter.Id = "9";

            LookupException exception = Assert.Throws<LookupException>(() => lookup.BaseFilterById(lookup.BaseGetModels()));

            String expected = String.Format("'{0}.Id' can not be filtered by using '9' value, because it's not a string nor a number.", typeof(NonNumericIdModel).Name);
            String actual = exception.Message;

            Assert.Equal(expected, actual);
        }
        public void AddId_NoProperty_Throws()
        {
            MvcLookupProxy<NoIdModel> lookup = new MvcLookupProxy<NoIdModel>();

            LookupException exception = Assert.Throws<LookupException>(() => lookup.BaseAddId(row, new NoIdModel()));

            String expected = String.Format("'{0}' type does not have property named 'Id'.", typeof(NoIdModel).Name);
            String actual = exception.Message;

            Assert.Equal(expected, actual);
        }
        public void FilterById_Number()
        {
            List<NumericIdModel> models = new List<NumericIdModel>();
            for (Int32 i = 0; i < 100; i++) models.Add(new NumericIdModel { Id = i });
            MvcLookupProxy<NumericIdModel> lookup = new MvcLookupProxy<NumericIdModel>();

            lookup.CurrentFilter.Id = "9.0";

            IEnumerable<NumericIdModel> actual = lookup.BaseFilterById(models.AsQueryable());
            IEnumerable<NumericIdModel> expected = models.Where(model => model.Id == 9);

            Assert.Equal(expected, actual);
        }