public void SqlServer_Benchmark_SelectPerformanceTest()
        {
            var ordersList = new List<Orders>
            {
                new Orders
                {
                    OrdersID = 21
                }
            };

            var profile = ProfileSession.StartSession()
                .Task(() =>
                {
                    var provider = new SqlContextProvider("Not a valid connectionstring");
                    provider.Interceptor<Orders>().AsExecute(cq => ordersList);

                    using (var context = provider.Open())
                    {
                        var orders = context.From<Customers>()
                            .Join<Employee>((e, c) => e.EmployeeID == c.EmployeeID)
                            .And<Customers>((e, c) => e.EmployeeID == c.EmployeeID)
                            .Join<Orders>((o, e) => o.EmployeeID == e.EmployeeID)
                            .Select<Orders>();
                    }
                })
                .SetIterations(20)
                .AddCondition(p => p.AverageMilliseconds < 27)
                .RunSession();

            Assert.IsTrue(profile.AverageMilliseconds < 27);
        }
Ejemplo n.º 2
0
        public void Interceptor_AddMultipleSameIntersectorTest()
        {
            string beforeExecute = null;
            var ordersList = new List<Order>
            {
                new Order
                {
                    OrdersID = 21
                }
            };

            var provider = new SqlContextProvider("Not a valid connectionstring");
            provider.Interceptor<Order>().BeforeExecute(cq => beforeExecute = cq.QueryString);
            provider.Interceptor<Order>().AsExecute(cq => ordersList);

            using (var context = provider.Open())
            {
                var orders = context.Select<Order>();

                Assert.AreEqual("SELECT OrdersID \r\nFROM Order", beforeExecute);
                Assert.AreSame(orders.First(), ordersList.First());
            }
        }
Ejemplo n.º 3
0
        public void Interceptor_BeforeCompileTest()
        {
            string beforeExecute = null;
            var ordersList = new List<Order>
            {
                new Order
                {
                    OrdersID = 21
                }
            };

            var provider = new SqlContextProvider("Not a valid connectionstring");
            provider.Interceptor<Order>().BeforeCompile(cq => cq.Parts.FirstOrDefault(p => p.OperationType == OperationType.Select).Add(new DelegateQueryPart(OperationType.Where, () => "TestWhere")))
                .BeforeExecute(cq => beforeExecute = cq.QueryString)
                .AsExecute(cq => ordersList);

            using (var context = provider.Open())
            {
                context.Select<Order>();

                Assert.IsTrue(beforeExecute.Contains("TestWhere"));
            }
        }
        private SqlContextProvider BuildContext()
        {
            var provider = new SqlContextProvider("connectionstring");
            provider.Interceptor<Warrior>().AsExecute(e => _warriors);
            provider.Interceptor<Warrior>().AsExecute(a => { });
            provider.Interceptor(() => new { ID = 0 }).AsExecute(e => _warriors.Select(w => new { ID = w.ID }));

            return provider;
        }
Ejemplo n.º 5
0
        public void Interceptor_BeforeCompile_FromTest()
        {
            var query = string.Empty;
            var where = new DelegateQueryPart(OperationType.Where, () => "ID = 2");

            var provider = new SqlContextProvider("connectionstring");
            provider.Interceptor(() => new
            {
                ID = 0
            }).BeforeExecute(q => query = q.QueryString).AsExecute(e => _warriors.Select(w => new
            {
                ID = w.ID
            }));

            provider.Interceptor<Warrior>().BeforeCompile(c => c.Parts.First(p => p.OperationType == OperationType.From).Add(where));
            using (var context = provider.Open())
            {
                context.From<Warrior>().Select(() => new
                {
                    ID = 0
                });

                Assert.AreEqual(query.Flatten(), "SELECT ID FROM Warrior WHERE ID = 2");
            }
        }
Ejemplo n.º 6
0
        private SqlContextProvider CreateProvider(IEnumerable<Order> orders)
        {
            var provider = new SqlContextProvider("Not a valid connectionstring");
            provider.Interceptor(() => new
            {
                OrdersID = 0
            }).AsExecute(cq => orders.Select(o => new
            {
                o.OrdersID
            }));

            return provider;
        }
Ejemplo n.º 7
0
        public void Interceptor_WithFailingAnonymosObjectTest()
        {
            string beforeExecute = null;
            var ordersList = new List<Order>
            {
                new Order
                {
                    OrdersID = 21
                }
            };

            var provider = new SqlContextProvider("Not a valid connectionstring");
            provider.Interceptor(() => new
            {
                OrdersID = 0,
                Fail = 0
            }).BeforeExecute(cq => beforeExecute = cq.QueryString).AsExecute(cq => ordersList.Select(o => new
            {
                o.OrdersID,
                Fail = 0
            }));

            using (var context = provider.Open())
            {
                Assert.Throws<System.Data.DataException>(() => context.From<Order>()
                    .Select(() => new
                    {
                        OrdersID = 0
                    }));
            }
        }
Ejemplo n.º 8
0
        public void Interceptor_WithExecuteTest()
        {
            string beforeExecute = null;
            var ordersList = new List<Order>
            {
                new Order
                {
                    OrdersID = 21
                }
            };

            var provider = new SqlContextProvider("Not a valid connectionstring");
            provider.Interceptor<Order>().AsExecute(cq => ordersList);

            using (var context = provider.Open())
            {
                var orders = context.Select<Order>();

                Assert.IsNull(beforeExecute);
                Assert.AreSame(orders.First(), ordersList.First());
            }
        }
Ejemplo n.º 9
0
        public void Interceptor_WithAnonymosObjectTest()
        {
            string beforeExecute = null;
            var ordersList = new List<Order>
            {
                new Order
                {
                    OrdersID = 21
                }
            };

            var provider = new SqlContextProvider("Not a valid connectionstring");
            provider.Interceptor(() => new
            {
                OrdersID = 0
            }).BeforeExecute(cq => beforeExecute = cq.QueryString).AsExecute(cq => ordersList.Select(o => new
            {
                o.OrdersID
            }));

            using (var context = provider.Open())
            {
                var orders = context.From<Order>()
                    .Select(() => new
                    {
                        OrdersID = 0
                    });

                Assert.AreEqual("SELECT OrdersID \r\nFROM Order", beforeExecute);
                Assert.AreEqual(orders.First().OrdersID, ordersList.First().OrdersID);
            }
        }