From 935e4de1072a33abd7836ae2e62218dc1ea09b7e Mon Sep 17 00:00:00 2001 From: Chitoku Date: Tue, 7 May 2019 15:46:52 +0900 Subject: [PATCH 1/4] Add tests for #133 --- tests/Packages/JavaLangSystemTest.php | 35 ++++++++++++++++++++ tests/Packages/JavaUtilObjectsTest.php | 30 +++++++++++++++++ tests/fixtures/java/JavaLangSystemTest.java | 8 +++++ tests/fixtures/java/JavaUtilObjectsTest.java | 11 ++++++ 4 files changed, 84 insertions(+) create mode 100644 tests/Packages/JavaLangSystemTest.php create mode 100644 tests/Packages/JavaUtilObjectsTest.php create mode 100644 tests/fixtures/java/JavaLangSystemTest.java create mode 100644 tests/fixtures/java/JavaUtilObjectsTest.java diff --git a/tests/Packages/JavaLangSystemTest.php b/tests/Packages/JavaLangSystemTest.php new file mode 100644 index 00000000..8a339ac3 --- /dev/null +++ b/tests/Packages/JavaLangSystemTest.php @@ -0,0 +1,35 @@ +initiatedJavaClasses['JavaLangSystemTest'] + ->getInvoker() + ->getStatic() + ->getMethods() + ->call( + 'identityHashCode' + ); + + $values = array_filter(explode("\n", ob_get_clean())); + $this->assertCount(2, $values); + + $hashCodes = []; + + foreach ($values as $value) { + $this->assertIsNumeric($value); + $this->assertNotContains($value, $hashCodes); + $hashCodes[] = $value; + } + } +} diff --git a/tests/Packages/JavaUtilObjectsTest.php b/tests/Packages/JavaUtilObjectsTest.php new file mode 100644 index 00000000..5b78a13c --- /dev/null +++ b/tests/Packages/JavaUtilObjectsTest.php @@ -0,0 +1,30 @@ +initiatedJavaClasses['JavaUtilObjectsTest'] + ->getInvoker() + ->getStatic() + ->getMethods() + ->call( + 'testHashCode' + ); + + $values = array_filter(explode("\n", ob_get_clean())); + $this->assertCount(3, $values); + $this->assertSame('2728214739616339340', $values[0]); + $this->assertSame('2728214739616339340', $values[1]); + $this->assertSame('2728214739616339340', $values[2]); + } +} diff --git a/tests/fixtures/java/JavaLangSystemTest.java b/tests/fixtures/java/JavaLangSystemTest.java new file mode 100644 index 00000000..360a4780 --- /dev/null +++ b/tests/fixtures/java/JavaLangSystemTest.java @@ -0,0 +1,8 @@ +class JavaLangSystemTest +{ + public static void identityHashCode() + { + System.out.println(System.identityHashCode("Hello, World")); + System.out.println(System.identityHashCode(new String("Hello, World"))); + } +} diff --git a/tests/fixtures/java/JavaUtilObjectsTest.java b/tests/fixtures/java/JavaUtilObjectsTest.java new file mode 100644 index 00000000..a782bb99 --- /dev/null +++ b/tests/fixtures/java/JavaUtilObjectsTest.java @@ -0,0 +1,11 @@ +import java.util.Objects; + +class JavaUtilObjectsTest +{ + public static void testHashCode() + { + System.out.println(Objects.hashCode("hello, world")); + System.out.println(Objects.hashCode("HELLO, WORLD".toLowerCase())); + System.out.println(Objects.hashCode(new String("hello, world"))); + } +} From d151fe70015987c09f4cd8177616d1a1a3c782da Mon Sep 17 00:00:00 2001 From: Chitoku Date: Tue, 7 May 2019 15:51:57 +0900 Subject: [PATCH 2/4] Add a test for java.lang.String#hashCode() --- tests/Packages/JavaLangStringTest.php | 18 ++++++++++++++++++ tests/fixtures/java/JavaLangStringTest.java | 7 +++++++ 2 files changed, 25 insertions(+) diff --git a/tests/Packages/JavaLangStringTest.php b/tests/Packages/JavaLangStringTest.php index 9dee1928..fd374339 100644 --- a/tests/Packages/JavaLangStringTest.php +++ b/tests/Packages/JavaLangStringTest.php @@ -85,6 +85,24 @@ public function testConcat() $this->assertEquals('abcdef', $value); } + public function testHashCode() + { + ob_start(); + $this->initiatedJavaClasses['JavaUtilStringTest'] + ->getInvoker() + ->getStatic() + ->getMethods() + ->call( + 'testHashCode' + ); + + $values = array_filter(explode("\n", ob_get_clean())); + $this->assertCount(3, $values); + $this->assertSame('2728214739616339340', $values[0]); + $this->assertSame('2728214739616339340', $values[1]); + $this->assertSame('2728214739616339340', $values[2]); + } + public function testReplace() { ob_start(); diff --git a/tests/fixtures/java/JavaLangStringTest.java b/tests/fixtures/java/JavaLangStringTest.java index c03c0fd5..505d1c7d 100644 --- a/tests/fixtures/java/JavaLangStringTest.java +++ b/tests/fixtures/java/JavaLangStringTest.java @@ -10,6 +10,13 @@ public static void concat(String a, String b) System.out.print(a.concat(b)); } + public static void testHashCode() + { + System.out.println(Objects.hashCode("hello, world")); + System.out.println(Objects.hashCode("HELLO, WORLD".toLowerCase())); + System.out.println(Objects.hashCode(new String("hello, world"))); + } + public static void replace(String a, String b, String c) { System.out.print(a.replace(b, c)); From 22696ae602998c802da37726edaee556fb398745 Mon Sep 17 00:00:00 2001 From: Chitoku Date: Tue, 7 May 2019 15:55:51 +0900 Subject: [PATCH 3/4] Fix the test for java.lang.String#hashCode() to call by dynamic method --- tests/fixtures/java/JavaLangStringTest.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tests/fixtures/java/JavaLangStringTest.java b/tests/fixtures/java/JavaLangStringTest.java index 505d1c7d..9ae506a6 100644 --- a/tests/fixtures/java/JavaLangStringTest.java +++ b/tests/fixtures/java/JavaLangStringTest.java @@ -12,9 +12,9 @@ public static void concat(String a, String b) public static void testHashCode() { - System.out.println(Objects.hashCode("hello, world")); - System.out.println(Objects.hashCode("HELLO, WORLD".toLowerCase())); - System.out.println(Objects.hashCode(new String("hello, world"))); + System.out.println("hello, world".hashCode()); + System.out.println("HELLO, WORLD".toLowerCase().hashCode()); + System.out.println((new String("hello, world")).hashCode()); } public static void replace(String a, String b, String c) From 4dcd728a4ea21a560a3e0f7c52a73c7bfc80c814 Mon Sep 17 00:00:00 2001 From: Chitoku Date: Tue, 7 May 2019 16:02:38 +0900 Subject: [PATCH 4/4] Fix the name of the test fixture --- tests/Packages/JavaLangStringTest.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/Packages/JavaLangStringTest.php b/tests/Packages/JavaLangStringTest.php index fd374339..95b613db 100644 --- a/tests/Packages/JavaLangStringTest.php +++ b/tests/Packages/JavaLangStringTest.php @@ -88,7 +88,7 @@ public function testConcat() public function testHashCode() { ob_start(); - $this->initiatedJavaClasses['JavaUtilStringTest'] + $this->initiatedJavaClasses['JavaLangStringTest'] ->getInvoker() ->getStatic() ->getMethods()