diff --git a/tests/Packages/JavaLangStringTest.php b/tests/Packages/JavaLangStringTest.php index 9dee1928..95b613db 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['JavaLangStringTest'] + ->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/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/JavaLangStringTest.java b/tests/fixtures/java/JavaLangStringTest.java index c03c0fd5..9ae506a6 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("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) { System.out.print(a.replace(b, c)); 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"))); + } +}