コード例 #1
0
        public void It_should_filter_Like_and_InsensitiveLike()
        {
            using (var context = ContextFactory.Current.StartNewContext())
            {
                context.Add(new Employee { Name = "Foo" });
                context.Add(new Employee { Name = "FooBar" });

                dynamic query = new NHDynamicQuery<Employee>();
                query.Name.Like("Foo");
                context.Fulfill((NHDynamicQuery<Employee>)query).Count().Should().Be(2);

                query = new NHDynamicQuery<Employee>();
                query.Name.Like("Foo", MatchMode.Start);
                context.Fulfill((NHDynamicQuery<Employee>)query).Count().Should().Be(2);

                query = new NHDynamicQuery<Employee>();
                query.Name.Like("Foo", MatchMode.End);
                context.Fulfill((NHDynamicQuery<Employee>)query).Count().Should().Be(1);

                query = new NHDynamicQuery<Employee>();
                query.Name.InsensitiveLike("foo");
                context.Fulfill((NHDynamicQuery<Employee>)query).Count().Should().Be(2);

                query = new NHDynamicQuery<Employee>();
                query.Name.InsensitiveLike("bar");
                context.Fulfill((NHDynamicQuery<Employee>)query).Count().Should().Be(1);
            }
        }
コード例 #2
0
        public void It_should_filter_Eq()
        {
            using (var context = ContextFactory.Current.StartNewContext())
            {
                context.Add(new Employee { Name = "Foo", Age = 25 });
                context.Add(new Employee { Name = "Bar", Age = 30 });

                dynamic query = new NHDynamicQuery<Employee>();
                query.Name.Eq("Foo");
                context.Fulfill((NHDynamicQuery<Employee>)query).Count().Should().Be(1);

                query = new NHDynamicQuery<Employee>();
                query.Age.Eq(25);
                context.Fulfill((NHDynamicQuery<Employee>)query).Count().Should().Be(1);

                query.Name.Eq("Bar");
                context.Fulfill((NHDynamicQuery<Employee>)query).Count().Should().Be(0);
            }
        }
コード例 #3
0
        public void It_should_handle_joins()
        {
            using (var context = ContextFactory.Current.StartNewContext())
            {
                var now = DateTime.Now;

                var employee = new Employee { Name = "Foo" };
                context.Add(employee);
                context.Add(new Employee { Name = "FooBar" });

                var vacancy = new Vacancy { Employee = employee, StartDate = now, EndDate = now.AddDays(5) };
                context.Add(vacancy);

                dynamic query = new NHDynamicQuery<Employee>();
                query.Vacancies.StartDate.Gt(now.AddDays(-1));
                query.Vacancies.EndDate.Lt(now.AddDays(6));

                context.Fulfill((NHDynamicQuery<Employee>)query).Count().Should().Be(1);
            }
        }
コード例 #4
0
        public void It_should_handle_references()
        {
            using (var context = ContextFactory.Current.StartNewContext())
            {
                var manager = new Employee { Name = "The Boss." };
                context.Add(manager);

                var subordinate = new Employee { Name = "subordinate", Manager = manager };
                context.Add(subordinate);

                context.Add(new Employee { Name = "another one" });

                dynamic query = new NHDynamicQuery<Employee>();
                query.Manager.IsNotNull();

                context.Fulfill((NHDynamicQuery<Employee>)query).Count().Should().Be(1);

                query = new NHDynamicQuery<Employee>();
                query.Manager.Name.Eq("The Boss.");
                query.Manager.Manager.IsNull();

                context.Fulfill((NHDynamicQuery<Employee>)query).Count().Should().Be(1);
            }
        }
コード例 #5
0
        public void It_should_work_with_string_accessor()
        {
            using (var context = ContextFactory.Current.StartNewContext())
            {
                var now = DateTime.Now;

                var manager = new Employee { Name = "The Boss." };
                context.Add(manager);

                var subordinate = new Employee { Name = "subordinate", Manager = manager };
                context.Add(subordinate);

                var vacancy = new Vacancy { Employee = subordinate, StartDate = now, EndDate = now.AddDays(5) };
                context.Add(vacancy);

                context.Add(new Employee { Name = "another one" });

                dynamic query = new NHDynamicQuery<Employee>();
                query["Name.Like"] = "subordinate";
                query["Vacancies.StartDate.Gt"] = now.AddDays(-1);
                query["Manager.Name.Eq"] = "The Boss.";
                query["Manager.Manager.IsNull"] = true;

                context.Fulfill((NHDynamicQuery<Employee>)query).Count().Should().Be(1);
            }
        }
コード例 #6
0
        public void It_should_handle_assignations_and_convenience_setters()
        {
            using (var context = ContextFactory.StartNewContext())
            {
                var now = DateTime.Now;

                var boss = new Employee { Name = "The Boss.", Age = 45 };
                context.Add(boss);

                var subordinate = new Employee { Name = "subordinate", Boss = boss };
                context.Add(subordinate);

                var vacancy = new Vacancy { Employee = boss, StartDate = now, EndDate = now.AddDays(5) };
                context.Add(vacancy);

                context.Add(new Employee { Name = "Foo", Age = 25 });
                context.Add(new Employee { Name = "Bar", Age = 30 });

                dynamic query = new NHDynamicQuery<Employee>();
                query.Age = 25;

                context.Fulfill((NHDynamicQuery<Employee>)query).Count().Should().Be(1);

                query = new NHDynamicQuery<Employee>();
                query.AgeGt = 27;

                context.Fulfill((NHDynamicQuery<Employee>)query).Count().Should().Be(2);

                query = new NHDynamicQuery<Employee>();
                query.NameLike = "Bar";

                context.Fulfill((NHDynamicQuery<Employee>)query).Count().Should().Be(1);

                query = new NHDynamicQuery<Employee>();
                query.AgeBetween = new object[] { 20, 28 };

                context.Fulfill((NHDynamicQuery<Employee>)query).Count().Should().Be(1);

                query = new NHDynamicQuery<Employee>();
                query.AgeIn = new[] { 20, 28, 30 };

                context.Fulfill((NHDynamicQuery<Employee>)query).Count().Should().Be(1);

                query = new NHDynamicQuery<Employee>();
                query.Boss.Name = boss.Name;

                context.Fulfill((NHDynamicQuery<Employee>)query).Count().Should().Be(1);

                query = new NHDynamicQuery<Employee>();
                query.Boss.AgeGt = 40;

                context.Fulfill((NHDynamicQuery<Employee>)query).Count().Should().Be(1);

                query = new NHDynamicQuery<Employee>();
                query.Boss.Vacancies.StartDateGt = now.AddDays(-1);

                context.Fulfill((NHDynamicQuery<Employee>)query).Count().Should().Be(1);

                query = new NHDynamicQuery<Employee>();
                query.Boss.Vacancies.EndDateGt = now.AddDays(10);

                context.Fulfill((NHDynamicQuery<Employee>)query).Count().Should().Be(0);
            }
        }