コード例 #1
0
ファイル: FetchFixture.cs プロジェクト: juanplopes/simple
 public void CanFetchTwoColumns()
 {
     var spec = Customer.Query.Fetch(x => x.Address).Fetch(x => x.ContactName);
     var queryable = new EmptyQueryable<Customer>("q").ApplySpecs(spec);
     Assert.AreEqual("q.Fetch(x => x.Address).Fetch(x => x.ContactName)",
         queryable.Expression.ToString());
 }
コード例 #2
0
        public void CanRecordTwoLevelLinqExpressionsWithProjection()
        {
            var queryable = new EmptyQueryable <DateTime>(Parameter <DateTime>("q"));
            var newQuery  = queryable.Where(x => x > DateTime.Now).Distinct().Select(x => x.Day);

            newQuery.Expression.ToString().Should().Be("q.Where(x => (x > DateTime.Now)).Distinct().Select(x => x.Day)");
        }
コード例 #3
0
ファイル: FetchFixture.cs プロジェクト: juanplopes/simple
 public void CanFetchThenTwoColumns()
 {
     var spec = Product.Query.Fetch(x => x.Category).ThenFetch(x => x.Name);
     var queryable = new EmptyQueryable<Product>("q").ApplySpecs(spec);
     Assert.AreEqual("q.Fetch(x => x.Category).ThenFetch(x => x.Name)",
         queryable.Expression.ToString());
 }
コード例 #4
0
        public void CanRecordTwoLevelLinqExpressions()
        {
            var queryable = new EmptyQueryable <int>(Parameter <int>("q"));
            var newQuery  = queryable.Where(x => x > 2).Distinct();

            newQuery.Expression.ToString().Should().Be("q.Where(x => (x > 2)).Distinct()");
        }
コード例 #5
0
ファイル: FilterFixture.cs プロジェクト: juanplopes/simple
 public void CanFilterWithStackReference()
 {
     string value = "asd";
     var spec = Customer.Query.Filter(x => x.CompanyName == value);
     var queryable = new EmptyQueryable<Customer>("q").ApplySpecs(spec);
     queryable.Expression.ToString().Should().Be("q.Where(x => (x.CompanyName == \"asd\"))");
 }
コード例 #6
0
ファイル: OrderByFixture.cs プロジェクト: Trovarius/simple
 public void CanOrderByTwoColumnsWithSecondDescending()
 {
     var spec = Customer.Do.OrderBy(x => x.Address).ThenByDesc(x => x.ContactName);
     var queryable = new EmptyQueryable<Customer>("q").ApplySpecs(spec);
     Assert.AreEqual("q.OrderBy(x => x.Address).ThenByDescending(x => x.ContactName)",
         queryable.Expression.ToString());
 }
コード例 #7
0
 public void CanFilterWithStackReference()
 {
     string value = "asd";
     int a = 2, b = 10;
     var spec = Customer.Query.Expr(q => q.Where(x => x.CompanyName == value).Skip(a).Take(b));
     var queryable = new EmptyQueryable<Customer>("q").ApplySpecs(spec);
     queryable.Expression.ToString().Should().Be("q.Where(x => (x.CompanyName == \"asd\")).Skip(2).Take(10)");
 }
コード例 #8
0
        public void CanRecordLinqExpressionsWithOrderBy()
        {
            var queryable = new EmptyQueryable <DateTime>(Parameter <DateTime>("q"));
            var newQuery  = queryable.OrderBy(x => x.Day);

            Assert.AreEqual("q.OrderBy(x => x.Day)",
                            newQuery.Expression.ToString());
        }
コード例 #9
0
        public void CanRecordTwoLevelLinqExpressionsWithAggregate()
        {
            var queryable = new EmptyQueryable <DateTime>(Parameter <DateTime>("q"));
            var newQuery  = queryable.Where(x => x > DateTime.Now).Distinct().GroupBy(x => x.Day).Select(x => x.Max());

            Assert.AreEqual("q.Where(x => (x > DateTime.Now)).Distinct().GroupBy(x => x.Day).Select(x => x.Max())",
                            newQuery.Expression.ToString());
        }
コード例 #10
0
        public void CanSerializeFilter()
        {
            var spec = Customer.Query.Expr(q => q.Where(x => x.CompanyName == "asd"));
            var spec2 = SimpleSerializer.Binary().RoundTrip(spec);

            Assert.AreNotSame(spec, spec2);

            var queryable1 = new EmptyQueryable<Customer>("q").ApplySpecs(spec);
            var queryable2 = new EmptyQueryable<Customer>("q").ApplySpecs(spec2);

            queryable2.Expression.ToString().Should().Be(queryable1.Expression.ToString());
        }
コード例 #11
0
        public void CanImplicitConvertExpressionToSpecBuilder()
        {
            Expression<Func<IQueryable<int>, IQueryable<int>>> expr =
                q => q.Where(x => x % 2 == 0).Reverse();

            SpecBuilder<int> spec = expr;

            IQueryable<int> queryable = new EmptyQueryable<int>("h");
            queryable = queryable.ApplySpecs(spec);

            queryable.Expression.ToString().Should().Be(
                "h.Where(x => ((x % 2) == 0)).Reverse()");
        }
コード例 #12
0
ファイル: FetchFixture.cs プロジェクト: juanplopes/simple
 public void CanFetchManyByFirstColumn()
 {
     var spec = Category.Query.FetchMany(x => x.Products);
     var queryable = new EmptyQueryable<Category>("q").ApplySpecs(spec);
     queryable.Expression.ToString().Should().Be("q.FetchMany(x => x.Products)");
 }
コード例 #13
0
ファイル: FetchFixture.cs プロジェクト: juanplopes/simple
 public void CanFetchByFirstColumn()
 {
     var spec = Customer.Query.Fetch(x => x.Address);
     var queryable = new EmptyQueryable<Customer>("q").ApplySpecs(spec);
     queryable.Expression.ToString().Should().Be("q.Fetch(x => x.Address)");
 }
コード例 #14
0
 public void CanSimpleFilter()
 {
     var spec = Customer.Query.Expr(q => q.Where(x => x.CompanyName == "asd").Skip(2).Take(10));
     var queryable = new EmptyQueryable<Customer>("q").ApplySpecs(spec);
     queryable.Expression.ToString().Should().Be("q.Where(x => (x.CompanyName == \"asd\")).Skip(2).Take(10)");
 }
コード例 #15
0
ファイル: LimitsFixture.cs プロジェクト: Trovarius/simple
 public void CanTakeAndSkip()
 {
     var spec = Customer.Do.Take(10).Skip(11);
     var queryable = new EmptyQueryable<Customer>("q").ApplySpecs(spec);
     queryable.Expression.ToString().Should().Be("q.Take(10).Skip(11)");
 }
コード例 #16
0
ファイル: OrderByFixture.cs プロジェクト: Trovarius/simple
 public void CanOrderByFirstColumnDesc()
 {
     var spec = Customer.Do.OrderByDesc(x => x.Address);
     var queryable = new EmptyQueryable<Customer>("q").ApplySpecs(spec);
     queryable.Expression.ToString().Should().Be("q.OrderByDescending(x => x.Address)");
 }