From 40b6b0d186a8e85db97fcfab9bd3697fe0116e81 Mon Sep 17 00:00:00 2001
From: Ross Nicoll <ross.nicoll@r3cev.com>
Date: Tue, 24 May 2016 14:20:53 +0100
Subject: [PATCH] Port Base58Test to Kotlin

---
 .../com/r3corda/core/crypto/Base58Test.java   | 79 -------------------
 .../com/r3corda/core/crypto/Base58Test.kt     | 79 +++++++++++++++++++
 2 files changed, 79 insertions(+), 79 deletions(-)
 delete mode 100644 core/src/test/kotlin/com/r3corda/core/crypto/Base58Test.java
 create mode 100644 core/src/test/kotlin/com/r3corda/core/crypto/Base58Test.kt

diff --git a/core/src/test/kotlin/com/r3corda/core/crypto/Base58Test.java b/core/src/test/kotlin/com/r3corda/core/crypto/Base58Test.java
deleted file mode 100644
index 820e605c9d..0000000000
--- a/core/src/test/kotlin/com/r3corda/core/crypto/Base58Test.java
+++ /dev/null
@@ -1,79 +0,0 @@
-package com.r3corda.core.crypto;
-
-import org.junit.*;
-
-import java.math.*;
-import java.util.*;
-
-import static org.junit.Assert.*;
-
-/**
- * From the bitcoinj library
- */
-public class Base58Test {
-    @Test
-    public void testEncode() throws Exception {
-        byte[] testbytes = "Hello World".getBytes();
-        assertEquals("JxF12TrwUP45BMd", Base58.encode(testbytes));
-
-        BigInteger bi = BigInteger.valueOf(3471844090L);
-        assertEquals("16Ho7Hs", Base58.encode(bi.toByteArray()));
-
-        byte[] zeroBytes1 = new byte[1];
-        assertEquals("1", Base58.encode(zeroBytes1));
-
-        byte[] zeroBytes7 = new byte[7];
-        assertEquals("1111111", Base58.encode(zeroBytes7));
-
-        // test empty encode
-        assertEquals("", Base58.encode(new byte[0]));
-    }
-
-    @Test
-    public void testDecode() throws Exception {
-        byte[] testbytes = "Hello World".getBytes();
-        byte[] actualbytes = Base58.decode("JxF12TrwUP45BMd");
-        assertTrue(new String(actualbytes), Arrays.equals(testbytes, actualbytes));
-
-        assertTrue("1", Arrays.equals(Base58.decode("1"), new byte[1]));
-        assertTrue("1111", Arrays.equals(Base58.decode("1111"), new byte[4]));
-
-        try {
-            Base58.decode("This isn't valid base58");
-            fail();
-        } catch (AddressFormatException e) {
-            // expected
-        }
-
-        Base58.decodeChecked("4stwEBjT6FYyVV");
-
-        // Checksum should fail.
-        try {
-            Base58.decodeChecked("4stwEBjT6FYyVW");
-            fail();
-        } catch (AddressFormatException e) {
-            // expected
-        }
-
-        // Input is too short.
-        try {
-            Base58.decodeChecked("4s");
-            fail();
-        } catch (AddressFormatException e) {
-            // expected
-        }
-
-        // Test decode of empty String.
-        assertEquals(0, Base58.decode("").length);
-
-        // Now check we can correctly decode the case where the high bit of the first byte is not zero, so BigInteger
-        // sign extends. Fix for a bug that stopped us parsing keys exported using sipas patch.
-        Base58.decodeChecked("93VYUMzRG9DdbRP72uQXjaWibbQwygnvaCu9DumcqDjGybD864T");
-    }
-
-    @Test
-    public void testDecodeToBigInteger() {
-        byte[] input = Base58.decode("129");
-        assertEquals(new BigInteger(1, input), Base58.decodeToBigInteger("129"));
-    }
-}
diff --git a/core/src/test/kotlin/com/r3corda/core/crypto/Base58Test.kt b/core/src/test/kotlin/com/r3corda/core/crypto/Base58Test.kt
new file mode 100644
index 0000000000..8911790c5a
--- /dev/null
+++ b/core/src/test/kotlin/com/r3corda/core/crypto/Base58Test.kt
@@ -0,0 +1,79 @@
+package com.r3corda.core.crypto
+
+import java.math.BigInteger
+import java.util.Arrays
+import org.junit.Test
+import kotlin.test.assertEquals
+import kotlin.test.assertTrue
+import kotlin.test.fail
+
+/**
+ * Modified from the bitcoinj library
+ */
+class Base58Test {
+    @Test
+    fun testEncode() {
+        val testbytes = "Hello World".toByteArray()
+        assertEquals("JxF12TrwUP45BMd", Base58.encode(testbytes))
+
+        val bi = BigInteger.valueOf(3471844090L)
+        assertEquals("16Ho7Hs", Base58.encode(bi.toByteArray()))
+
+        val zeroBytes1 = ByteArray(1)
+        assertEquals("1", Base58.encode(zeroBytes1))
+
+        val zeroBytes7 = ByteArray(7)
+        assertEquals("1111111", Base58.encode(zeroBytes7))
+
+        // test empty encode
+        assertEquals("", Base58.encode(ByteArray(0)))
+    }
+
+    @Test
+    fun testDecode() {
+        val testbytes = "Hello World".toByteArray()
+        val actualbytes = Base58.decode("JxF12TrwUP45BMd");
+        assertTrue(String(actualbytes)) { Arrays.equals(testbytes, actualbytes) }
+
+        assertTrue("1") { Arrays.equals(ByteArray(1), Base58.decode("1")) }
+        assertTrue("1111") { Arrays.equals(ByteArray(4), Base58.decode("1111")) }
+
+        try {
+            Base58.decode("This isn't valid base58")
+            fail()
+        } catch (e: AddressFormatException) {
+            // expected
+        }
+
+        Base58.decodeChecked("4stwEBjT6FYyVV")
+
+        // Checksum should fail.
+        try {
+            Base58.decodeChecked("4stwEBjT6FYyVW")
+            fail()
+        } catch (e: AddressFormatException) {
+            // expected
+        }
+
+        // Input is too short.
+        try {
+            Base58.decodeChecked("4s")
+            fail()
+        } catch (e: AddressFormatException) {
+            // expected
+        }
+
+        // Test decode of empty String.
+        assertEquals(0, Base58.decode("").size)
+
+        // Now check we can correctly decode the case where the high bit of the first byte is not zero, so BigInteger
+        // sign extends. Fix for a bug that stopped us parsing keys exported using sipas patch.
+        Base58.decodeChecked("93VYUMzRG9DdbRP72uQXjaWibbQwygnvaCu9DumcqDjGybD864T")
+    }
+
+    @Test
+    fun testDecodeToBigInteger() {
+        val input = Base58.decode("129")
+        assertEquals(BigInteger(1, input), Base58.decodeToBigInteger("129"))
+    }
+}