From af2a5b89ebf748d46164c5edfa8f4af603173479 Mon Sep 17 00:00:00 2001 From: Mackiovello Date: Tue, 13 Nov 2018 14:43:12 +0800 Subject: [PATCH 1/5] Update Bluestar version --- .../Starcounter.Linq.QueryTests.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/Starcounter.Linq.QueryTests/Starcounter.Linq.QueryTests.csproj b/test/Starcounter.Linq.QueryTests/Starcounter.Linq.QueryTests.csproj index 4b8804d..515f231 100644 --- a/test/Starcounter.Linq.QueryTests/Starcounter.Linq.QueryTests.csproj +++ b/test/Starcounter.Linq.QueryTests/Starcounter.Linq.QueryTests.csproj @@ -26,7 +26,7 @@ - + From c3af84a985db43485abcaae48a56b7e87e9c3d8d Mon Sep 17 00:00:00 2001 From: Mackiovello Date: Tue, 13 Nov 2018 14:45:04 +0800 Subject: [PATCH 2/5] Remove unnecessary references --- .../Starcounter.Linq.QueryTests.csproj | 3 --- 1 file changed, 3 deletions(-) diff --git a/test/Starcounter.Linq.QueryTests/Starcounter.Linq.QueryTests.csproj b/test/Starcounter.Linq.QueryTests/Starcounter.Linq.QueryTests.csproj index 515f231..ea80584 100644 --- a/test/Starcounter.Linq.QueryTests/Starcounter.Linq.QueryTests.csproj +++ b/test/Starcounter.Linq.QueryTests/Starcounter.Linq.QueryTests.csproj @@ -8,9 +8,6 @@ - - - From 194e428b50f50a889abf4cfe474c4e5dda7132d0 Mon Sep 17 00:00:00 2001 From: Mackiovello Date: Tue, 13 Nov 2018 14:47:20 +0800 Subject: [PATCH 3/5] Upgrade Nova to 0.11.0 --- src/Starcounter.Linq/Starcounter.Linq.csproj | 2 +- .../Starcounter.Linq.QueryTests.csproj | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Starcounter.Linq/Starcounter.Linq.csproj b/src/Starcounter.Linq/Starcounter.Linq.csproj index 38ca56e..18f0224 100644 --- a/src/Starcounter.Linq/Starcounter.Linq.csproj +++ b/src/Starcounter.Linq/Starcounter.Linq.csproj @@ -18,7 +18,7 @@ - + diff --git a/test/Starcounter.Linq.QueryTests/Starcounter.Linq.QueryTests.csproj b/test/Starcounter.Linq.QueryTests/Starcounter.Linq.QueryTests.csproj index ea80584..593d74a 100644 --- a/test/Starcounter.Linq.QueryTests/Starcounter.Linq.QueryTests.csproj +++ b/test/Starcounter.Linq.QueryTests/Starcounter.Linq.QueryTests.csproj @@ -8,7 +8,7 @@ - + From 63a6f581508746f58acf39c255212b3558bf36be Mon Sep 17 00:00:00 2001 From: Mackiovello Date: Tue, 13 Nov 2018 14:57:30 +0800 Subject: [PATCH 4/5] Replace GetObjectNo with GetOid --- README.md | 2 +- src/Starcounter.Linq/KnownMethods.cs | 2 +- .../Visitors/OrderByVisitor.cs | 2 +- src/Starcounter.Linq/Visitors/WhereVisitor.cs | 4 +- .../Tests/FilteringTests.cs | 40 ++++++++++--------- .../Tests/PagingTests.cs | 10 ++--- 6 files changed, 31 insertions(+), 29 deletions(-) diff --git a/README.md b/README.md index c8969b9..cb1bc26 100644 --- a/README.md +++ b/README.md @@ -206,7 +206,7 @@ Objects().DeleteAll(); - `String.StartsWith` - `String.EndsWith` - `IEnumerable.Contains` method in LINQ queries -- `DbHelper.GetObjectNo` method in LINQ queries +- `Db.GetOid` method in LINQ queries - `IS` operator by using `is` operator in LINQ queries - `OFFSET` clause by using `IQueryable.Skip` method - `FETCH` clause by using methods: diff --git a/src/Starcounter.Linq/KnownMethods.cs b/src/Starcounter.Linq/KnownMethods.cs index ad095f4..cbc5ece 100644 --- a/src/Starcounter.Linq/KnownMethods.cs +++ b/src/Starcounter.Linq/KnownMethods.cs @@ -76,7 +76,7 @@ internal static class KnownMethods private static readonly IQueryable IQueryable = null; private static readonly object obj = new object(); - public static readonly MethodInfo GetObjectNo = MethodFromExample(() => obj.GetObjectNo()); + public static readonly MethodInfo GetOid = MethodFromExample(() => Db.GetOid(obj)); public static readonly MethodInfo ObjectEquals = MethodFromExample(() => obj.Equals(null)); public static readonly MethodInfo EnumerableContains = MethodFromExample(() => Enumerable.Contains(0)); public static readonly MethodInfo StringContains = MethodFromExample(() => "".Contains("")); diff --git a/src/Starcounter.Linq/Visitors/OrderByVisitor.cs b/src/Starcounter.Linq/Visitors/OrderByVisitor.cs index 661bf3f..e037281 100644 --- a/src/Starcounter.Linq/Visitors/OrderByVisitor.cs +++ b/src/Starcounter.Linq/Visitors/OrderByVisitor.cs @@ -18,7 +18,7 @@ public override void VisitMember(MemberExpression node, QueryBuilder st public override void VisitMethodCall(MethodCallExpression node, QueryBuilder state) { - if (node.Method == KnownMethods.GetObjectNo) + if (node.Method == KnownMethods.GetOid) { state.WriteOrderByObjectNo(); } diff --git a/src/Starcounter.Linq/Visitors/WhereVisitor.cs b/src/Starcounter.Linq/Visitors/WhereVisitor.cs index 52a7254..ae0ff1e 100644 --- a/src/Starcounter.Linq/Visitors/WhereVisitor.cs +++ b/src/Starcounter.Linq/Visitors/WhereVisitor.cs @@ -299,7 +299,7 @@ public override void VisitMethodCall(MethodCallExpression node, QueryBuilder stat else { Visit(node.Operand, state); - } + } } public override void VisitTypeBinary(TypeBinaryExpression node, QueryBuilder state) diff --git a/test/Starcounter.Linq.QueryTests/Tests/FilteringTests.cs b/test/Starcounter.Linq.QueryTests/Tests/FilteringTests.cs index 203a1d9..4a4ac22 100644 --- a/test/Starcounter.Linq.QueryTests/Tests/FilteringTests.cs +++ b/test/Starcounter.Linq.QueryTests/Tests/FilteringTests.cs @@ -381,15 +381,16 @@ public void FirstOrDefault_IntegerNotInArray__AdHoc() [Theory] [InlineData(Mode.AdHoc)] [InlineData(Mode.CompiledQuery)] - public void WhereObjectNoEqual(Mode mode) + public void WhereOidEqual(Mode mode) { Db.Transact(() => { - ulong testPersonId = Db.SQL($"SELECT p FROM {typeof(Person)} p WHERE p.Name = ?", "Roger").First().GetObjectNo(); + var testPerson = Db.SQL($"SELECT p FROM {typeof(Person)} p WHERE p.Name = ?", "Roger").First(); + ulong testPersonId = Db.GetOid(testPerson); var persons = mode == Mode.CompiledQuery - ? CompileQuery((ulong id) => Objects().Where(p => p.GetObjectNo() == id))(testPersonId).ToList() - : Objects().Where(p => p.GetObjectNo() == testPersonId).ToList(); - + ? CompileQuery((ulong id) => Objects().Where(p => Db.GetOid(p) == id))(testPersonId).ToList() + : Objects().Where(p => Db.GetOid(p) == testPersonId).ToList(); + Assert.Equal(1, persons.Count); Assert.Equal("Roger", persons.First().Name); }); @@ -398,14 +399,15 @@ public void WhereObjectNoEqual(Mode mode) [Theory] [InlineData(Mode.AdHoc)] [InlineData(Mode.CompiledQuery)] - public void WhereObjectNoNotEqualWithOtherPredicate(Mode mode) + public void WhereOidNotEqualWithOtherPredicate(Mode mode) { Db.Transact(() => { - ulong testPersonId = Db.SQL($"SELECT p FROM {typeof(Person)} p WHERE p.Name = ?", "Roger").First().GetObjectNo(); + var testPerson = Db.SQL($"SELECT p FROM {typeof(Person)} p WHERE p.Name = ?", "Roger").First(); + ulong testPersonOid = Db.GetOid(testPerson); var persons = mode == Mode.CompiledQuery - ? CompileQuery((ulong id, string name) => Objects().Where(p => p.GetObjectNo() != id && p.Name == name))(testPersonId, "Anton").ToList() - : Objects().Where(p => p.GetObjectNo() != testPersonId && p.Name == "Anton").ToList(); + ? CompileQuery((ulong id, string name) => Objects().Where(p => Db.GetOid(p) != id && p.Name == name))(testPersonOid, "Anton").ToList() + : Objects().Where(p => Db.GetOid(p) != testPersonOid && p.Name == "Anton").ToList(); Assert.Equal(1, persons.Count); Assert.NotEqual("Roger", persons.First().Name); @@ -434,8 +436,8 @@ public void WhereEnumToString() { Db.Transact(() => { - var persons = Objects().Where(p => p.Name == Names.Anton.ToString()).ToList(); - + var persons = Objects().Where(p => p.Name == Names.Anton.ToString()).ToList(); + Assert.Equal(1, persons.Count); Assert.Equal("Anton", persons.First().Name); }); @@ -446,10 +448,10 @@ public void WhereObjectMethodParameterless() { Db.Transact(() => { - var nameInstance = new NameClass(); - - var persons = Objects().Where(p => p.Name == nameInstance.GetName()).ToList(); - + var nameInstance = new NameClass(); + + var persons = Objects().Where(p => p.Name == nameInstance.GetName()).ToList(); + Assert.Equal(1, persons.Count); Assert.Equal("Anton", persons.First().Name); }); @@ -463,8 +465,8 @@ public void WhereObjectMethodParameters1() var nameInstance = new NameClass(); int param1 = 999; - var persons = Objects().Where(p => p.Name == nameInstance.GetName(param1)).ToList(); - + var persons = Objects().Where(p => p.Name == nameInstance.GetName(param1)).ToList(); + Assert.Equal(1, persons.Count); Assert.Equal("Anton", persons.First().Name); }); @@ -491,8 +493,8 @@ private enum Names { Anton, Roger } private class NameClass { - private const string Name = "Anton"; - + private const string Name = "Anton"; + public NameClass() { } public NameClass(int arg1) diff --git a/test/Starcounter.Linq.QueryTests/Tests/PagingTests.cs b/test/Starcounter.Linq.QueryTests/Tests/PagingTests.cs index 30eee29..0ee04d7 100644 --- a/test/Starcounter.Linq.QueryTests/Tests/PagingTests.cs +++ b/test/Starcounter.Linq.QueryTests/Tests/PagingTests.cs @@ -55,22 +55,22 @@ public void OrderBy(Mode mode) ? CompileQuery(() => Objects().OrderBy(x => x.Age))().ToList() : Objects().OrderBy(x => x.Age).ToList(); Assert.Equal(2, people.Count); - Assert.True(people[0].GetObjectNo() < people[1].GetObjectNo()); + Assert.True(Db.GetOid(people[0]) < Db.GetOid(people[1])); }); } [Theory] [InlineData(Mode.AdHoc)] [InlineData(Mode.CompiledQuery)] - public void OrderBy_ObjectNo(Mode mode) + public void OrderBy_Oid(Mode mode) { Db.Transact(() => { List people = mode == Mode.CompiledQuery - ? CompileQuery(() => Objects().OrderByDescending(x => x.GetObjectNo()))().ToList() - : Objects().OrderByDescending(x => x.GetObjectNo()).ToList(); + ? CompileQuery(() => Objects().OrderByDescending(x => Db.GetOid(x)))().ToList() + : Objects().OrderByDescending(x => Db.GetOid(x)).ToList(); Assert.Equal(2, people.Count); - Assert.True(people[0].GetObjectNo() > people[1].GetObjectNo()); + Assert.True(Db.GetOid(people[0]) > Db.GetOid(people[1])); }); } } From 3a259236466eb23441c2caeb13109c8f6ddc7ee1 Mon Sep 17 00:00:00 2001 From: Mackiovello Date: Wed, 14 Nov 2018 08:02:13 +0800 Subject: [PATCH 5/5] Use latest Bluestar2 version --- .../Starcounter.Linq.QueryTests.csproj | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/test/Starcounter.Linq.QueryTests/Starcounter.Linq.QueryTests.csproj b/test/Starcounter.Linq.QueryTests/Starcounter.Linq.QueryTests.csproj index 593d74a..25ea596 100644 --- a/test/Starcounter.Linq.QueryTests/Starcounter.Linq.QueryTests.csproj +++ b/test/Starcounter.Linq.QueryTests/Starcounter.Linq.QueryTests.csproj @@ -11,6 +11,7 @@ + @@ -22,8 +23,4 @@ - - - -