示例#1
0
        public void Should_Execute_Batch_Of_Traversals(string graphName, GraphProtocol protocol)
        {
            if (graphName == BaseIntegrationTest.DefaultCoreGraphName &&
                !TestDseVersion.VersionMatch(
                    new Version(6, 8), TestClusterManager.DseVersion, Comparison.GreaterThanOrEqualsTo))
            {
                Assert.Ignore("Test requires DSE 6.8");
            }

            var g = DseGraph.Traversal(Session, new GraphOptions().SetName(graphName));

            if (graphName == BaseIntegrationTest.DefaultCoreGraphName)
            {
                g = g.With("allow-filtering");
            }
            var batch = DseGraph.Batch(new GraphOptions().SetName(graphName).SetWriteConsistencyLevel(ConsistencyLevel.LocalQuorum));

            batch
            .Add(g.AddV("character").Property("name", "Matias").Property("age", 12).Property("tag", "batch1"))
            .Add(g.AddV("character").Property("name", "Olivia").Property("age", 8).Property("tag", "batch1"));

            var rs = Session.ExecuteGraph(batch);

            Assert.AreEqual(protocol, rs.GraphProtocol);

            var list = g.V().Has("character", "tag", "batch1").Values <string>("name").ToList();

            CollectionAssert.AreEquivalent(new [] { "Matias", "Olivia" }, list);
        }
示例#2
0
        public static bool CheckDseVersion(Version version, Comparison comparison)
        {
            if (!TestClusterManager.IsDse)
            {
                return(false);
            }

            return(TestDseVersion.VersionMatch(version, TestClusterManager.DseVersion, comparison));
        }
示例#3
0
        public static bool CheckCassandraVersion(bool requiresOss, Version version, Comparison comparison)
        {
            if (requiresOss && TestClusterManager.IsDse)
            {
                return(false);
            }

            var runningVersion  = TestClusterManager.IsDse ? TestClusterManager.DseVersion : TestClusterManager.CassandraVersion;
            var expectedVersion = TestClusterManager.IsDse ? TestClusterManager.GetDseVersion(version) : version;

            return(TestDseVersion.VersionMatch(expectedVersion, runningVersion, comparison));
        }
        public static bool VersionMatch(TestDseVersion versionAttr, Version executingVersion)
        {
            //Compare them as integers
            var expectedVersion = new Version(versionAttr.Major, versionAttr.Minor, versionAttr.Build);
            var comparison      = (Comparison)executingVersion.CompareTo(expectedVersion);

            if (comparison >= Comparison.Equal && versionAttr.Comparison == Comparison.GreaterThanOrEqualsTo)
            {
                return(true);
            }
            return(comparison == versionAttr.Comparison);
        }
示例#5
0
        public async Task Should_Execute_Batch_Of_Traversals_Asynchronously_With_Edges(string graphName, GraphProtocol protocol)
        {
            if (graphName == BaseIntegrationTest.DefaultCoreGraphName &&
                !TestDseVersion.VersionMatch(
                    new Version(6, 8), TestClusterManager.DseVersion, Comparison.GreaterThanOrEqualsTo))
            {
                Assert.Ignore("Test requires DSE 6.8");
            }

            var g = DseGraph.Traversal(Session, new GraphOptions().SetName(graphName));

            if (graphName == BaseIntegrationTest.DefaultCoreGraphName)
            {
                g = g.With("allow-filtering");
            }
            var batch = DseGraph.Batch(new GraphOptions().SetName(graphName).SetWriteConsistencyLevel(ConsistencyLevel.LocalQuorum));

            batch
            .Add(g.AddV("character").Property("name", "Matias").Property("age", 12).Property("tag", "batch2"))
            .Add(g.AddV("character").Property("name", "Olivia").Property("age", 8).Property("tag", "batch2"))
            .Add(g.V().Has("name", "Matias").Has("tag", "batch2").AddE("knows").To(
                     __.V().Has("name", "Olivia").Has("tag", "batch2")));

            var rs = await Session.ExecuteGraphAsync(batch).ConfigureAwait(false);

            Assert.AreEqual(protocol, rs.GraphProtocol);

            var characters = g.V().Has("character", "tag", "batch2").Values <string>("name").ToList();

            CollectionAssert.AreEquivalent(new [] { "Matias", "Olivia" }, characters);

            var knowsOut = g.V().Has("name", "Matias").Has("tag", "batch2")
                           .Out("knows").Values <string>("name").ToList();

            Assert.AreEqual(new [] { "Olivia" }, knowsOut);
        }