//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")); }
//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()); }
//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)); }
//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()); } }
//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()); } }
//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())); }
//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(); } }
//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)); }
//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); } }
//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)); }
//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)); } }
//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)); } }
//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)); } }
//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()); }
//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)); }
//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)); }
//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 ); }