public void SelectExpressionReturnsItems() { _testName = MethodInfo.GetCurrentMethod().Name.GetHashCode().ToString(); Cleanup(); var objs = TestResourceFactory.GetMockClassAObjects(100).ToList(); var first = objs.FirstOrDefault() as MockClassC; var select = new WhereExpression( new CompareToken("ReferenceCode", CompareEnum.Like, first.ReferenceCode), new CompareToken("Location.X", CompareEnum.Equals, first.Location.X), new CompareToken("Name", CompareEnum.Like, first.Name.Substring(1, first.Name.Length - 2))); using (var db = new Database<int, MockClassA>(_testName + ".database", "Id")) { var eval = new ExpressionResolver<int, MockClassA>(db); db.Load(); using (var t = db.BeginTransaction()) { objs.ToList().ForEach(o => o.Id = db.Add(o)); t.Commit(); var results = eval.ExecuteSelect(select); Assert.AreEqual(1, results.Count); MockClassC.Validate(results[0].ToObject<MockClassC>(), objs.FirstOrDefault() as MockClassC); } } }
public void SelectExpressionReturnsFirstItems() { _testName = MethodInfo.GetCurrentMethod().Name.GetHashCode().ToString(); Cleanup(); var objs = TestResourceFactory.GetMockClassAObjects(100).ToList(); var max = objs.Cast<MockClassC>().Max(o => o.Location.X); var min = objs.Cast<MockClassC>().Min(o => o.Location.X); var first = objs.FirstOrDefault() as MockClassC; var select = new WhereExpression(10, true, new CompareToken("Location.X", CompareEnum.Greater, max - min)); using (var db = new Database<int, MockClassA>(_testName + ".database", "Id")) { var eval = new ExpressionResolver<int, MockClassA>(db); db.Load(); using (var t = db.BeginTransaction()) { objs.ToList().ForEach(o => o.Id = db.Add(o)); t.Commit(); var results = eval.ExecuteSelect(select); Assert.LessOrEqual(results.Count, 10); foreach (var result in results) MockClassC.Validate(result.ToObject<MockClassC>(), objs.FirstOrDefault(o => o.Id == result.Value<int>("Id")) as MockClassC); } } }
public void SelectExpressionEvaluatesBytes() { _testName = MethodInfo.GetCurrentMethod().Name.GetHashCode().ToString(); Cleanup(); var objs = TestResourceFactory.GetMockClassAObjects(100).ToList(); var first = objs.FirstOrDefault() as MockClassC; var select = new WhereExpression( 1, true, new CompareToken("Id", CompareEnum.Equals, (byte)1), new CompareToken("Id", CompareEnum.NotEquals, (byte)(1 + 3)), new CompareToken("Id", CompareEnum.NotEquals, null), new CompareToken("Id", CompareEnum.Greater, (byte)(1 + 3)), new CompareToken("Id", CompareEnum.GreaterOrEqual, (byte)1), new CompareToken("Id", CompareEnum.Lesser, (byte)0), new CompareToken("Id", CompareEnum.LesserOrEqual, (byte)1)); using (var db = new Database<int, MockClassA>(_testName + ".database", "Id")) { var eval = new ExpressionResolver<int, MockClassA>(db); db.Load(); using (var t = db.BeginTransaction()) { objs.ToList().ForEach(o => o.Id = db.Add(o)); t.Commit(); var results = eval.ExecuteSelect(select); Assert.AreEqual(1, results.Count); MockClassC.Validate(results[0].ToObject<MockClassC>(), objs.FirstOrDefault() as MockClassC); } } }
public void SelectExpressionEvaluatesUNInts() { _testName = MethodInfo.GetCurrentMethod().Name.GetHashCode().ToString(); Cleanup(); var objs = TestResourceFactory.GetMockClassAObjects(100).ToList(); var first = objs.FirstOrDefault() as MockClassC; var select = new WhereExpression( new CompareToken("Unsigned32", CompareEnum.Equals, new uint?(first.Unsigned32)), new CompareToken("Unsigned32", CompareEnum.NotEquals, new uint?(first.Unsigned32 + 3)), new CompareToken("Unsigned32", CompareEnum.Equals, new uint?()), new CompareToken("Unsigned32", CompareEnum.Greater, new uint?(first.Unsigned32 + 3)), new CompareToken("Unsigned32", CompareEnum.GreaterOrEqual, new uint?(first.Unsigned32)), new CompareToken("Unsigned32", CompareEnum.Lesser, new uint?(first.Unsigned32 - 1)), new CompareToken("Unsigned32", CompareEnum.LesserOrEqual, new uint?(first.Unsigned32))); using (var db = new Database<int, MockClassA>(_testName + ".database", "Id")) { var eval = new ExpressionResolver<int, MockClassA>(db); db.Load(); using (var t = db.BeginTransaction()) { objs.ToList().ForEach(o => o.Id = db.Add(o)); t.Commit(); var results = eval.ExecuteSelect(select); Assert.AreEqual(0, results.Count); } } }
public UpdateExpression(string typeName, WhereExpression selector, params UpdateToken[] updateTokens) { TypeName = typeName; Selector = selector; UpdateTokens = updateTokens; }