示例#1
0
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
//ORIGINAL LINE: @Test public void shouldHavePredefinedRoles() throws Exception
//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in C#:
        public virtual void ShouldHavePredefinedRoles()
        {
            // Given
            StartServerWithConfiguredUser();

            // When
            string method = "POST";
            string path   = "db/data/transaction/commit";

            HTTP.RawPayload payload  = HTTP.RawPayload.quotedJson("{'statements':[{'statement':'CALL dbms.security.listRoles()'}]}");
            HTTP.Response   response = HTTP.withBasicAuth("neo4j", "secret").request(method, Server.baseUri().resolve(path).ToString(), payload);

            // Then
            assertThat(response.Status(), equalTo(200));
            ArrayNode errors = ( ArrayNode )response.Get("errors");

            assertThat("Should have no errors", errors.size(), equalTo(0));
            ArrayNode results = ( ArrayNode )response.Get("results");
            ArrayNode data    = ( ArrayNode )results.get(0).get("data");

            assertThat("Should have 5 predefined roles", data.size(), equalTo(5));
            Stream <string> values = data.findValues("row").Select(row => row.get(0).asText());

            assertThat("Expected specific roles", values.collect(Collectors.toList()), hasItems("admin", "architect", "publisher", "editor", "reader"));
        }
示例#2
0
//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in C#:
//ORIGINAL LINE: private void assertQueryGetsValue(ServerControls server, String query, long value) throws Throwable
        private void AssertQueryGetsValue(ServerControls server, string query, long value)
        {
            HTTP.Response response = HTTP.POST(server.HttpURI().resolve("db/data/transaction/commit").ToString(), quotedJson("{ 'statements': [ { 'statement': '" + query + "' } ] }"));

            assertEquals("[]", response.Get("errors").ToString());
            JsonNode result = response.Get("results").get(0);

            assertEquals("value", result.get("columns").get(0).asText());
            assertEquals(value, result.get("data").get(0).get("row").get(0).asLong());
        }
示例#3
0
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
//ORIGINAL LINE: @Test public void shouldReportCommunityEdition() throws Exception
//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in C#:
            public virtual void ShouldReportCommunityEdition()
            {
                // Given
                string releaseVersion = Server.Database.Graph.DependencyResolver.resolveDependency(typeof(KernelData)).version().ReleaseVersion;

                // When
                HTTP.Response res = HTTP.GET(FunctionalTestHelper.managementUri() + "/" + VersionAndEditionService.SERVER_PATH);

                // Then
                assertEquals(200, res.Status());
                assertThat(res.Get("edition").asText(), equalTo("community"));
                assertThat(res.Get("version").asText(), equalTo(releaseVersion));
            }
示例#4
0
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
//ORIGINAL LINE: @Test public void shouldWorkWithInjectableFromKernelExtension() throws Throwable
//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in C#:
        public virtual void ShouldWorkWithInjectableFromKernelExtension()
        {
            // When
            using (ServerControls server = CreateServer(typeof(MyFunctionsUsingMyService)).newServer())
            {
                // Then
                HTTP.Response response = HTTP.POST(server.HttpURI().resolve("db/data/transaction/commit").ToString(), quotedJson("{ 'statements': [ { 'statement': 'RETURN my.hello() AS result' } ] }"));

                assertEquals("[]", response.Get("errors").ToString());
                JsonNode result = response.Get("results").get(0);
                assertEquals("result", result.get("columns").get(0).asText());
                assertEquals("world", result.get("data").get(0).get("row").get(0).asText());
            }
        }
示例#5
0
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
//ORIGINAL LINE: @Test public void shouldLaunchWithDeclaredFunctions() throws Exception
//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in C#:
        public virtual void ShouldLaunchWithDeclaredFunctions()
        {
            // When
            using (ServerControls server = CreateServer(typeof(MyFunctions)).newServer())
            {
                // Then
                HTTP.Response response = HTTP.POST(server.HttpURI().resolve("db/data/transaction/commit").ToString(), quotedJson("{ 'statements': [ { 'statement': 'RETURN org.neo4j.harness.myFunc() AS someNumber' } ] " + "}"));

                JsonNode result = response.Get("results").get(0);
                assertEquals("someNumber", result.get("columns").get(0).asText());
                assertEquals(1337, result.get("data").get(0).get("row").get(0).asInt());
                assertEquals("[]", response.Get("errors").ToString());
            }
        }
示例#6
0
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
//ORIGINAL LINE: @Test public void shouldReturnCorrectStatusCodeOnDeadlock() throws Exception
//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in C#:
        public virtual void ShouldReturnCorrectStatusCodeOnDeadlock()
        {
            // Given
            using (Transaction tx = Graphdb().beginTx())
            {
                Graphdb().createNode(Label.label("First"));
                Graphdb().createNode(Label.label("Second"));
                tx.Success();
            }

            // When I lock node:First
            HTTP.Response begin = _http.POST("db/data/transaction", quotedJson("{ 'statements': [ { 'statement': 'MATCH (n:First) SET n.prop=1' } ] }"));

            // and I lock node:Second, and wait for a lock on node:First in another transaction
            OtherThread.execute(WriteToFirstAndSecond());

            // and I wait for those locks to be pending
            assertTrue(_secondNodeLocked.await(10, TimeUnit.SECONDS));
            Thread.Sleep(1000);

            // and I then try and lock node:Second in the first transaction
            HTTP.Response deadlock = _http.POST(begin.Location(), quotedJson("{ 'statements': [ { 'statement': 'MATCH (n:Second) SET n.prop=1' } ] }"));

            // Then
            assertThat(deadlock.Get("errors").get(0).get("code").TextValue, equalTo(DeadlockDetected.code().serialize()));
        }
示例#7
0
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
//ORIGINAL LINE: @SuppressWarnings("ResultOfMethodCallIgnored") @Test public void begin_and_execute_periodic_commit_that_fails() throws Exception
//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in C#:
        public virtual void BeginAndExecutePeriodicCommitThatFails()
        {
            File file = File.createTempFile("begin_and_execute_periodic_commit_that_fails", ".csv").AbsoluteFile;

            try
            {
                PrintStream @out = new PrintStream(new FileStream(file, FileMode.Create, FileAccess.Write));
                @out.println("1");
                @out.println("2");
                @out.println("0");
                @out.println("3");
                @out.close();

                string url   = file.toURI().toURL().ToString().Replace("\\", "\\\\");
                string query = "USING PERIODIC COMMIT 1 LOAD CSV FROM \\\"" + url + "\\\" AS line CREATE ({name: 1/toInt(line[0])});";

                // begin and execute and commit
                HTTP.RawPayload payload  = quotedJson("{ 'statements': [ { 'statement': '" + query + "' } ] }");
                HTTP.Response   response = POST(TxCommitUri(), payload);

                assertThat(response.Status(), equalTo(200));
                assertThat(response, hasErrors(Org.Neo4j.Kernel.Api.Exceptions.Status_Statement.ArithmeticError));

                JsonNode message = response.Get("errors").get(0).get("message");
                assertTrue("Expected LOAD CSV line number information", message.ToString().Contains("on line 3. Possibly the last row committed during import is line 2. " + "Note that this information might not be accurate."));
            }
            finally
            {
                file.delete();
            }
        }
示例#8
0
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
//ORIGINAL LINE: @Test public void shouldFixturesWork() throws Exception
//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in C#:
        public virtual void ShouldFixturesWork()
        {
            // Given the rule in the beginning of this class

            // When I run this test

            // Then
            HTTP.Response response = HTTP.POST(Neo4j.httpURI().ToString() + "db/data/transaction/commit", quotedJson("{'statements':[{'statement':'MATCH (n:User) RETURN n'}]}"));

            assertThat(response.Get("results").get(0).get("data").size(), equalTo(2));
        }
示例#9
0
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
//ORIGINAL LINE: @Test public void shouldGetHelpfulErrorOnProcedureThrowsException() throws Exception
//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in C#:
        public virtual void ShouldGetHelpfulErrorOnProcedureThrowsException()
        {
            // When
            using (ServerControls server = CreateServer(typeof(MyFunctions)).newServer())
            {
                // Then
                HTTP.Response response = HTTP.POST(server.HttpURI().resolve("db/data/transaction/commit").ToString(), quotedJson("{ 'statements': [ { 'statement': 'RETURN org.neo4j.harness.funcThatThrows()' } ] }"));

                string error = response.Get("errors").get(0).get("message").asText();
                assertEquals("Failed to invoke function `org.neo4j.harness.funcThatThrows`: Caused by: java.lang" + ".RuntimeException: This is an exception", error);
            }
        }
示例#10
0
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
//ORIGINAL LINE: @Test public void shouldAllowExecutingEnterpriseBuiltInProceduresWithAuthDisabled() throws Exception
//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in C#:
        public virtual void ShouldAllowExecutingEnterpriseBuiltInProceduresWithAuthDisabled()
        {
            // Given
            StartServerWithAuthDisabled();

            // When
            string method = "POST";
            string path   = "db/data/transaction/commit";

            HTTP.RawPayload payload  = HTTP.RawPayload.quotedJson("{'statements':[{'statement':'CALL dbms.listQueries()'}]}");
            HTTP.Response   response = HTTP.request(method, Server.baseUri().resolve(path).ToString(), payload);

            // Then
            assertThat(response.Status(), equalTo(200));
            ArrayNode errors = ( ArrayNode )response.Get("errors");

            assertThat("Should have no errors", errors.size(), equalTo(0));
            ArrayNode results = ( ArrayNode )response.Get("results");
            ArrayNode data    = ( ArrayNode )results.get(0).get("data");

            assertThat("Should see our own query", data.size(), equalTo(1));
        }
示例#11
0
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
//ORIGINAL LINE: @Test public void shouldHandleStringFixtures() throws Exception
//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in C#:
        public virtual void ShouldHandleStringFixtures()
        {
            // Given two files in the root folder
            File targetFolder = TestDir.directory();

            // When
            using (ServerControls server = GetServerBuilder(targetFolder).withFixture("CREATE (a:User)").newServer())
            {
                // Then
                HTTP.Response response = HTTP.POST(server.HttpURI().ToString() + "db/data/transaction/commit", quotedJson("{'statements':[{'statement':'MATCH (n:User) RETURN n'}]}"));

                assertThat(response.Get("results").get(0).get("data").size(), equalTo(1));
            }
        }
示例#12
0
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
//ORIGINAL LINE: @Test public void shouldIgnoreEmptyFixtureFiles() throws Exception
//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in C#:
        public virtual void ShouldIgnoreEmptyFixtureFiles()
        {
            // Given two files in the root folder
            File targetFolder = TestDir.directory();

            FileUtils.writeToFile(new File(targetFolder, "fixture1.cyp"), "CREATE (u:User)\n" + "CREATE (a:OtherUser)", false);
            FileUtils.writeToFile(new File(targetFolder, "fixture2.cyp"), "", false);

            // When
            using (ServerControls server = GetServerBuilder(targetFolder).withFixture(targetFolder).newServer())
            {
                // Then
                HTTP.Response response = HTTP.POST(server.HttpURI().ToString() + "db/data/transaction/commit", quotedJson("{'statements':[{'statement':'MATCH (n:User) RETURN n'}]}"));

                assertThat(response.Get("results").get(0).get("data").size(), equalTo(1));
            }
        }
示例#13
0
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
//ORIGINAL LINE: @Test public void shouldHandleFunctionFixtures() throws Exception
//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in C#:
        public virtual void ShouldHandleFunctionFixtures()
        {
            // Given two files in the root folder
            File targetFolder = TestDir.directory();

            // When
            try (ServerControls server = GetServerBuilder(targetFolder).withFixture(graphDatabaseService =>
                {
                    using (Transaction tx = graphDatabaseService.beginTx())
                    {
                        graphDatabaseService.createNode(Label.label("User"));
                        tx.success();
                    }
                    return(null);
                }
                                                                                    ).newServer())
                {
                    // Then
                    HTTP.Response response = HTTP.POST(server.httpURI().ToString() + "db/data/transaction/commit", quotedJson("{'statements':[{'statement':'MATCH (n:User) RETURN n'}]}"));

                    assertThat(response.Get("results").get(0).get("data").size(), equalTo(1));
                }
        }
示例#14
0
//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in C#:
//ORIGINAL LINE: public static void assertNoErrors(org.neo4j.test.server.HTTP.Response response) throws org.neo4j.server.rest.domain.JsonParseException
        public static void AssertNoErrors(HTTP.Response response)
        {
            assertEquals("[]", response.Get("errors").ToString());
            assertEquals(0, response.Get("errors").size());
        }
示例#15
0
//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in C#:
//ORIGINAL LINE: static org.codehaus.jackson.JsonNode getJsonNodeWithName(org.neo4j.test.server.HTTP.Response response, String name) throws org.neo4j.server.rest.domain.JsonParseException
        internal static JsonNode GetJsonNodeWithName(HTTP.Response response, string name)
        {
            return(response.Get("results").get(0).get("data").get(0).get(name));
        }
示例#16
0
//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in C#:
//ORIGINAL LINE: private void assertQueryGetsError(ServerControls server, String query, String error) throws Throwable
        private void AssertQueryGetsError(ServerControls server, string query, string error)
        {
            HTTP.Response response = HTTP.POST(server.HttpURI().resolve("db/data/transaction/commit").ToString(), quotedJson("{ 'statements': [ { 'statement': '" + query + "' } ] }"));

            assertThat(response.Get("errors").ToString(), containsString(error));
        }
示例#17
0
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
//ORIGINAL LINE: @Test public void terminateLongRunningRestTransactionalEndpointWithCustomTimeoutQuery() throws Exception
//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in C#:
		 public virtual void TerminateLongRunningRestTransactionalEndpointWithCustomTimeoutQuery()
		 {
			  GraphDatabaseAPI database = StartDatabaseWithTimeout();
			  KernelTransactionMonitor timeoutMonitor = database.DependencyResolver.resolveDependency( typeof( KernelTransactionMonitor ) );
			  OpenEnterpriseNeoServer neoServer = StartNeoServer( ( GraphDatabaseFacade ) database );
			  long customTimeout = TimeUnit.SECONDS.toMillis( 10 );
			  HTTP.Response beginResponse = HTTP.withHeaders( HttpHeaderUtils.MAX_EXECUTION_TIME_HEADER, customTimeout.ToString() ).POST(TransactionUri(neoServer), quotedJson("{ 'statements': [ { 'statement': 'CREATE (n)' } ] }"));
			  assertEquals( "Response should be successful.", 201, beginResponse.Status() );

			  string transactionEndPoint = beginResponse.Location();
			  _fakeClock.forward( 3, TimeUnit.SECONDS );

			  HTTP.Response response = HTTP.POST( transactionEndPoint, quotedJson( "{ 'statements': [ { 'statement': 'CREATE (n)' } ] }" ) );
			  assertEquals( "Response should be successful.", 200, response.Status() );

			  _fakeClock.forward( 11, TimeUnit.SECONDS );
			  timeoutMonitor.Run();

			  response = HTTP.POST( transactionEndPoint, quotedJson( "{ 'statements': [ { 'statement': 'CREATE (n)' } ] }" ) );
			  assertEquals( "Response should be successful.", 200, response.Status() );

			  HTTP.Response commitResponse = HTTP.POST( transactionEndPoint + "/commit" );
			  assertEquals( "Transaction should be already closed and not found.", 404, commitResponse.Status() );

			  assertEquals( "Transaction should be forcefully closed.", TransactionNotFound.code().serialize(), commitResponse.Get("errors").findValue("code").asText() );
			  AssertDatabaseDoesNotHaveNodes( database );
		 }