public void Test_UseHashNest(HashHintType type, string typeString)
        {
            var mockBucket = new Mock <IBucket>();

            mockBucket.SetupGet(e => e.Name).Returns("default");

            var query = from airport in QueryFactory.Queryable <Airport>(mockBucket.Object)
                        join route in QueryFactory.Queryable <Route>(mockBucket.Object).UseHash(type)
                        on airport.Faa equals route.DestinationAirport into routes
                        select new { airport, routes };

            var n1QlQuery = CreateN1QlQuery(mockBucket.Object, query.Expression, FeatureVersions.AnsiJoin);

            var expected = "SELECT `Extent1` as `airport`, `Extent2` as `routes` " +
                           "FROM `default` as `Extent1` " +
                           $"LEFT OUTER NEST `default` as `Extent2` USE HASH ({typeString}) " +
                           "ON (`Extent1`.`faa` = `Extent2`.`destinationairport`)";

            Assert.AreEqual(expected, n1QlQuery);
        }
Example #2
0
        public void Test_UseHash(HashHintType type, string typeString)
        {
            var mockBucket = new Mock <IBucket>();

            mockBucket.SetupGet(e => e.Name).Returns("default");

            var query = from route in QueryFactory.Queryable <Route>(mockBucket.Object)
                        join airport in QueryFactory.Queryable <Airport>(mockBucket.Object).UseHash(type)
                        on route.DestinationAirport equals airport.Faa
                        select new { route, airport };

            var n1QlQuery = CreateN1QlQuery(mockBucket.Object, query.Expression);

            var expected = "SELECT `Extent1` as `route`, `Extent2` as `airport` " +
                           "FROM `default` as `Extent1` " +
                           $"INNER JOIN `default` as `Extent2` USE HASH ({typeString}) " +
                           "ON (`Extent1`.`destinationairport` = `Extent2`.`faa`)";

            Assert.AreEqual(expected, n1QlQuery);
        }
 public UseHashClause(HashHintType hashType)
 {
     HashHintType = hashType;
 }