diff --git a/.gitignore b/.gitignore index 1468717..9e820a8 100644 --- a/.gitignore +++ b/.gitignore @@ -2,6 +2,7 @@ /build/ /bin/ target/ +.idea/ # OS Files # .DS_Store diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 0000000..89e1483 --- /dev/null +++ b/.travis.yml @@ -0,0 +1,4 @@ +language: java +env: + global: + secure: CIrYJdxxXbyfAiaTY7Xyy13xRKiQIyhxYoKvH3oWpSes1SAUoaHER7fHokVcydquYxRtrtke7OgCGQZ6lAsE8qo/XOVc2bpZh0aZSpj5IrTF2foN5BL+AbXDiqT12+HRrIxT6kpIdhJfkX1GQKNu6TaKqUQBvf7ufSKbvkQmi/jtTNr0By6l5azDEWH5Yr3YYdV5q6a3Hf72Ueb4kEDkVNp1xdGYOMFWGKSE6XvPAwE6LjUIso2/zNK1Va/YYhhm839o6ctbFRSKIJdbSIMpLUYIZiSy+mTZn2bqFmjBXTMNzJmXCC1g4J+NLPnM2aLfsAuwyUofkOPhLQpG5N6luKCUETo5DuJlckV+xsuMo4g1jq3O2s0tnx459Yc8vBbrTw+EL+cIqDLMOqP7U1WBxc4swpveZ4E8vPtkI7/i+wtl7Z3nCad6ea9FNvVP2uE7aHhj+i91ORtWZx2D2M/v08jtrfRtGZvCL3E5csn4+RHxKiA3dEtLRH0OJ7yZJD6CGj9voUcFUwnWxJ82pIK0nrv/nyf9VXo9j+rhQ72zGBZvU95ylIQriNJP54iD/nKhj/woTl6Nx6Q91EZ8QSfeAxm6dIkcgyNa6m/v5HmWvmXx7nLE0EHZuiUcxKmdhy+xU5SBLx+ZNXLdlB03NIcgBLZutNbmzVGYyhHO0pHWoPI= diff --git a/.whitesource b/.whitesource new file mode 100644 index 0000000..f056952 --- /dev/null +++ b/.whitesource @@ -0,0 +1,8 @@ +{ + "generalSettings": { + "shouldScanRepo": true + }, + "checkRunSettings": { + "vulnerableCheckRunConclusionLevel": "failure" + } +} \ No newline at end of file diff --git a/RandomJSONRPC/.gitignore b/RandomJSONRPC/.gitignore deleted file mode 100644 index 5e56e04..0000000 --- a/RandomJSONRPC/.gitignore +++ /dev/null @@ -1 +0,0 @@ -/bin diff --git a/pom.xml b/pom.xml new file mode 100644 index 0000000..4f01d79 --- /dev/null +++ b/pom.xml @@ -0,0 +1,42 @@ + + + 4.0.0 + + org.random + json-rpc + 1.0-SNAPSHOT + + + + org.apache.maven.plugins + maven-compiler-plugin + + 6 + 6 + + + + + + + + com.google.code.gson + gson + 2.8.5 + + + commons-codec + commons-codec + 1.6 + + + junit + junit + 4.12 + test + + + + \ No newline at end of file diff --git a/RandomJSONRPC/src/org/random/api/JsonObjectInputCallable.java b/src/main/java/org/random/api/JsonObjectInputCallable.java similarity index 100% rename from RandomJSONRPC/src/org/random/api/JsonObjectInputCallable.java rename to src/main/java/org/random/api/JsonObjectInputCallable.java diff --git a/RandomJSONRPC/src/org/random/api/RandomOrgCache.java b/src/main/java/org/random/api/RandomOrgCache.java similarity index 100% rename from RandomJSONRPC/src/org/random/api/RandomOrgCache.java rename to src/main/java/org/random/api/RandomOrgCache.java diff --git a/RandomJSONRPC/src/org/random/api/RandomOrgClient.java b/src/main/java/org/random/api/RandomOrgClient.java similarity index 100% rename from RandomJSONRPC/src/org/random/api/RandomOrgClient.java rename to src/main/java/org/random/api/RandomOrgClient.java diff --git a/RandomJSONRPC/src/org/random/api/exception/RandomOrgBadHTTPResponseException.java b/src/main/java/org/random/api/exception/RandomOrgBadHTTPResponseException.java similarity index 100% rename from RandomJSONRPC/src/org/random/api/exception/RandomOrgBadHTTPResponseException.java rename to src/main/java/org/random/api/exception/RandomOrgBadHTTPResponseException.java diff --git a/RandomJSONRPC/src/org/random/api/exception/RandomOrgInsufficientBitsError.java b/src/main/java/org/random/api/exception/RandomOrgInsufficientBitsError.java similarity index 100% rename from RandomJSONRPC/src/org/random/api/exception/RandomOrgInsufficientBitsError.java rename to src/main/java/org/random/api/exception/RandomOrgInsufficientBitsError.java diff --git a/RandomJSONRPC/src/org/random/api/exception/RandomOrgInsufficientRequestsError.java b/src/main/java/org/random/api/exception/RandomOrgInsufficientRequestsError.java similarity index 100% rename from RandomJSONRPC/src/org/random/api/exception/RandomOrgInsufficientRequestsError.java rename to src/main/java/org/random/api/exception/RandomOrgInsufficientRequestsError.java diff --git a/RandomJSONRPC/src/org/random/api/exception/RandomOrgJSONRPCError.java b/src/main/java/org/random/api/exception/RandomOrgJSONRPCError.java similarity index 100% rename from RandomJSONRPC/src/org/random/api/exception/RandomOrgJSONRPCError.java rename to src/main/java/org/random/api/exception/RandomOrgJSONRPCError.java diff --git a/RandomJSONRPC/src/org/random/api/exception/RandomOrgKeyNotRunningError.java b/src/main/java/org/random/api/exception/RandomOrgKeyNotRunningError.java similarity index 100% rename from RandomJSONRPC/src/org/random/api/exception/RandomOrgKeyNotRunningError.java rename to src/main/java/org/random/api/exception/RandomOrgKeyNotRunningError.java diff --git a/RandomJSONRPC/src/org/random/api/exception/RandomOrgRANDOMORGError.java b/src/main/java/org/random/api/exception/RandomOrgRANDOMORGError.java similarity index 100% rename from RandomJSONRPC/src/org/random/api/exception/RandomOrgRANDOMORGError.java rename to src/main/java/org/random/api/exception/RandomOrgRANDOMORGError.java diff --git a/RandomJSONRPC/src/org/random/api/exception/RandomOrgSendTimeoutException.java b/src/main/java/org/random/api/exception/RandomOrgSendTimeoutException.java similarity index 100% rename from RandomJSONRPC/src/org/random/api/exception/RandomOrgSendTimeoutException.java rename to src/main/java/org/random/api/exception/RandomOrgSendTimeoutException.java diff --git a/RandomJSONRPC/src/org/random/util/RandomOrgRandom.java b/src/main/java/org/random/util/RandomOrgRandom.java similarity index 100% rename from RandomJSONRPC/src/org/random/util/RandomOrgRandom.java rename to src/main/java/org/random/util/RandomOrgRandom.java diff --git a/src/main/main.iml b/src/main/main.iml new file mode 100644 index 0000000..0d154dd --- /dev/null +++ b/src/main/main.iml @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/RandomJSONRPC/src/org/random/test/RandomOrgClientBasicTest.java b/src/test/java/org/random/test/RandomOrgClientBasicTest.java similarity index 96% rename from RandomJSONRPC/src/org/random/test/RandomOrgClientBasicTest.java rename to src/test/java/org/random/test/RandomOrgClientBasicTest.java index 33027de..1033007 100644 --- a/RandomJSONRPC/src/org/random/test/RandomOrgClientBasicTest.java +++ b/src/test/java/org/random/test/RandomOrgClientBasicTest.java @@ -1,873 +1,873 @@ -package org.random.test; - -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertTrue; - -import java.util.HashMap; -import java.util.NoSuchElementException; -import java.util.UUID; - -import org.junit.Assert; -import org.junit.BeforeClass; -import org.junit.Test; -import org.random.api.RandomOrgCache; -import org.random.api.RandomOrgClient; -import org.random.api.exception.RandomOrgRANDOMORGError; - -import com.google.gson.JsonObject; - -/** A set of tests for RandomOrgClient.java - ** @author Anders Haahr - **/ -public class RandomOrgClientBasicTest { - - private static RandomOrgClient roc, roc2; - - private static final String API_KEY_1 = "YOUR_API_KEY_HERE"; - private static final String API_KEY_2 = "YOUR_API_KEY_HERE"; - - private static final int BIT_QUOTA = 1000000; - - @BeforeClass - public static void testSetup() { - roc = RandomOrgClient.getRandomOrgClient(API_KEY_1, 3000, 120000, false); - roc2 = RandomOrgClient.getRandomOrgClient(API_KEY_2); - } - - @Test - public void testInfo() { - try { - assertTrue(roc.getBitsLeft() >= 0); - assertTrue(roc.getRequestsLeft() >= 0); - - assertTrue(roc2.getBitsLeft() >= 0); - assertTrue(roc2.getRequestsLeft() >= 0); - - } catch (Exception e) { - Assert.fail("Networking error: " + e.getClass().getName() + ":" + e.getMessage()); - } - } - - @Test - public void testAPIKeyDuplication() { - RandomOrgClient dupe = RandomOrgClient.getRandomOrgClient(API_KEY_1); - - assertTrue(!roc.equals(roc2)); - assertTrue(roc.equals(dupe)); - } - - @Test - public void testPositiveGetBitsLeft_1(){ - try { - int bitsLeft = roc.getBitsLeft(); - assertTrue(0 <= bitsLeft && bitsLeft <= BIT_QUOTA); - } catch (Exception e) { - Assert.fail("Networking error: " + e.getClass().getName() + ":" + e.getMessage()); - } - } - - @Test - public void testPositiveGetBitsLeft_2(){ - try { - int bitsLeft = roc2.getBitsLeft(); - assertTrue(0 <= bitsLeft && bitsLeft <= BIT_QUOTA); - } catch (Exception e) { - Assert.fail("Networking error: " + e.getClass().getName() + ":" + e.getMessage()); - } - } - - // Test Errors - - @Test - public void testNegativeErrorMessage202(){ - try{ - roc.generateIntegers(100000, 0, 10); - Assert.fail("should have thrown RandomOrgRANDOMORGError"); - } catch(RandomOrgRANDOMORGError e) { - System.out.println(e.getMessage()); - } catch (Exception e) { - Assert.fail("should have thrown RandomOrgRANDOMORGError, instead threw " + e.getClass().getName()); - } - try{ - roc2.generateIntegers(100000, 0, 10); - Assert.fail("should have thrown RandomOrgRANDOMORGError"); - } catch(RandomOrgRANDOMORGError e) { - System.out.println(e.getMessage()); - } catch (Exception e) { - Assert.fail("should have thrown RandomOrgRANDOMORGError, instead threw " + e.getClass().getName()); - } - } - - @Test - public void testNegativeErrorMessage203(){ - try{ - roc.generateIntegers(10, 0, 1000000001); - Assert.fail("should have thrown RandomOrgRANDOMORGError"); - } catch(RandomOrgRANDOMORGError e) { - System.out.println(e.getMessage()); - } catch (Exception e) { - Assert.fail("should have thrown RandomOrgRANDOMORGError, instead threw " + e.getClass().getName()); - } - try{ - roc2.generateIntegers(10, 0, 1000000001); - Assert.fail("should have thrown RandomOrgRANDOMORGError"); - } catch(RandomOrgRANDOMORGError e) { - System.out.println(e.getMessage()); - } catch (Exception e) { - Assert.fail("should have thrown RandomOrgRANDOMORGError, instead threw " + e.getClass().getName()); - } - } - - @Test - public void testNegativeErrorMessage300(){ - try{ - roc.generateIntegers(10, 10, 0); - Assert.fail("should have thrown RandomOrgRANDOMORGError"); - } catch(RandomOrgRANDOMORGError e) { - System.out.println(e.getMessage()); - } catch (Exception e) { - Assert.fail("should have thrown RandomOrgRANDOMORGError, instead threw " + e.getClass().getName()); - } - try{ - roc2.generateIntegers(10, 10, 0); - Assert.fail("should have thrown RandomOrgRANDOMORGError"); - } catch(RandomOrgRANDOMORGError e) { - System.out.println(e.getMessage()); - } catch (Exception e) { - Assert.fail("should have thrown RandomOrgRANDOMORGError, instead threw " + e.getClass().getName()); - } - } - - @Test - public void testNegativeErrorMessage301(){ - try{ - roc.generateIntegers(20, 0, 10, false); - Assert.fail("should have thrown RandomOrgRANDOMORGError"); - } catch(RandomOrgRANDOMORGError e) { - System.out.println(e.getMessage()); - } catch (Exception e) { - Assert.fail("should have thrown RandomOrgRANDOMORGError, instead threw " + e.getClass().getName()); - } - try{ - roc2.generateIntegers(20, 0, 10, false); - Assert.fail("should have thrown RandomOrgRANDOMORGError"); - } catch(RandomOrgRANDOMORGError e) { - System.out.println(e.getMessage()); - } catch (Exception e) { - Assert.fail("should have thrown RandomOrgRANDOMORGError, instead threw " + e.getClass().getName()); - } - } - - @Test - public void testNegativeErrorMessage400(){ - try{ - RandomOrgClient rpc2 = RandomOrgClient.getRandomOrgClient("ffffffff-ffff-ffff-ffff-ffffffffffff"); - rpc2.generateIntegers(1, 0, 1); - Assert.fail("should have thrown RandomOrgRANDOMORGError"); - } catch(RandomOrgRANDOMORGError e) { - System.out.println(e.getMessage()); - } catch (Exception e) { - Assert.fail("should have thrown RandomOrgRANDOMORGError, instead threw " + e.getClass().getName()); - } - } - - // Test Functions - - @Test - public void testPositiveGenerateInteger_1(){ - try { - assertNotNull(roc.generateIntegers(10, 0, 10)); - } catch (Exception e) { - Assert.fail("Networking error: " + e.getClass().getName() + ":" + e.getMessage()); - } - try { - assertNotNull(roc2.generateIntegers(10, 0, 10)); - } catch (Exception e) { - Assert.fail("Networking error: " + e.getClass().getName() + ":" + e.getMessage()); - } - } - - @Test - public void testPositiveGenerateInteger_2(){ - try { - assertNotNull(roc.generateIntegers(10, 0, 10, false)); - } catch (Exception e) { - Assert.fail("Networking error: " + e.getClass().getName() + ":" + e.getMessage()); - } - try { - assertNotNull(roc2.generateIntegers(10, 0, 10, false)); - } catch (Exception e) { - Assert.fail("Networking error: " + e.getClass().getName() + ":" + e.getMessage()); - } - } - - @Test - public void testPositiveGenerateDecimalFractions_1(){ - try { - assertNotNull(roc.generateDecimalFractions(10, 5)); - } catch (Exception e) { - Assert.fail("Networking error: " + e.getClass().getName() + ":" + e.getMessage()); - } - try { - assertNotNull(roc2.generateDecimalFractions(10, 5)); - } catch (Exception e) { - Assert.fail("Networking error: " + e.getClass().getName() + ":" + e.getMessage()); - } - } - - @Test - public void testPositiveGenerateDecimalFractions_2(){ - try { - assertNotNull(roc.generateDecimalFractions(10, 5, false)); - } catch (Exception e) { - Assert.fail("Networking error: " + e.getClass().getName() + ":" + e.getMessage()); - } - try { - assertNotNull(roc2.generateDecimalFractions(10, 5, false)); - } catch (Exception e) { - Assert.fail("Networking error: " + e.getClass().getName() + ":" + e.getMessage()); - } - } - - @Test - public void testPositiveGenerateGaussians(){ - try { - assertNotNull(roc.generateGaussians(10, 3.41d, 2.1d, 4)); - } catch (Exception e) { - Assert.fail("Networking error: " + e.getClass().getName() + ":" + e.getMessage()); - } - try { - assertNotNull(roc2.generateGaussians(10, 3.41d, 2.1d, 4)); - } catch (Exception e) { - Assert.fail("Networking error: " + e.getClass().getName() + ":" + e.getMessage()); - } - } - - @Test - public void testPositiveGenerateStrings_1(){ - try { - assertNotNull(roc.generateStrings(10, 5, "abcd")); - } catch (Exception e) { - Assert.fail("Networking error: " + e.getClass().getName() + ":" + e.getMessage()); - } - try { - assertNotNull(roc2.generateStrings(10, 5, "abcd")); - } catch (Exception e) { - Assert.fail("Networking error: " + e.getClass().getName() + ":" + e.getMessage()); - } - } - - @Test - public void testPositiveGenerateStrings_2(){ - try { - assertNotNull(roc.generateStrings(10, 5, "abcd", false)); - } catch (Exception e) { - Assert.fail("Networking error: " + e.getClass().getName() + ":" + e.getMessage()); - } - try { - assertNotNull(roc2.generateStrings(10, 5, "abcd", false)); - } catch (Exception e) { - Assert.fail("Networking error: " + e.getClass().getName() + ":" + e.getMessage()); - } - } - - @Test - public void testPositiveGenerateUUIDs(){ - try { - assertNotNull(roc.generateUUIDs(10)); - } catch (Exception e) { - Assert.fail("Networking error: " + e.getClass().getName() + ":" + e.getMessage()); - } - try { - assertNotNull(roc2.generateUUIDs(10)); - } catch (Exception e) { - Assert.fail("Networking error: " + e.getClass().getName() + ":" + e.getMessage()); - } - } - - @Test - public void testPositiveGenerateBlobs_1(){ - try { - assertNotNull(roc.generateBlobs(10, 16)); - } catch (Exception e) { - Assert.fail("Networking error: " + e.getClass().getName() + ":" + e.getMessage()); - } - try { - assertNotNull(roc2.generateBlobs(10, 16)); - } catch (Exception e) { - Assert.fail("Networking error: " + e.getClass().getName() + ":" + e.getMessage()); - } - } - - @Test - public void testPositiveGenerateBlobs_2(){ - try { - assertNotNull(roc.generateBlobs(10, 16, RandomOrgClient.BLOB_FORMAT_HEX)); - } catch (Exception e) { - Assert.fail("Networking error: " + e.getClass().getName() + ":" + e.getMessage()); - } - try { - assertNotNull(roc2.generateBlobs(10, 16, RandomOrgClient.BLOB_FORMAT_HEX)); - } catch (Exception e) { - Assert.fail("Networking error: " + e.getClass().getName() + ":" + e.getMessage()); - } - } - - // Test Functions (Signed) - - @Test - public void testPositiveGenerateSignedInteger_1(){ - try { - HashMap o = roc.generateSignedIntegers(10, 0, 10); - - assertNotNull(o); - - assertTrue(o.containsKey("data")); - assertTrue(o.containsKey("random")); - assertTrue(o.containsKey("signature")); - - assertTrue(o.get("data").getClass().equals(int[].class)); - assertTrue(o.get("random").getClass().equals(JsonObject.class)); - assertTrue(o.get("signature").getClass().equals(String.class)); - - assertTrue(roc.verifySignature((JsonObject)o.get("random"), (String)o.get("signature"))); - } catch (Exception e) { - Assert.fail("Networking error: " + e.getClass().getName() + ":" + e.getMessage()); - } - try { - HashMap o = roc2.generateSignedIntegers(10, 0, 10); - - assertNotNull(o); - - assertTrue(o.containsKey("data")); - assertTrue(o.containsKey("random")); - assertTrue(o.containsKey("signature")); - - assertTrue(o.get("data").getClass().equals(int[].class)); - assertTrue(o.get("random").getClass().equals(JsonObject.class)); - assertTrue(o.get("signature").getClass().equals(String.class)); - - assertTrue(roc.verifySignature((JsonObject)o.get("random"), (String)o.get("signature"))); - } catch (Exception e) { - Assert.fail("Networking error: " + e.getClass().getName() + ":" + e.getMessage()); - } - } - - @Test - public void testPositiveGenerateSignedInteger_2(){ - try { - HashMap o = roc.generateSignedIntegers(10, 0, 10, false); - - assertNotNull(o); - - assertTrue(o.containsKey("data")); - assertTrue(o.containsKey("random")); - assertTrue(o.containsKey("signature")); - - assertTrue(o.get("data").getClass().equals(int[].class)); - assertTrue(o.get("random").getClass().equals(JsonObject.class)); - assertTrue(o.get("signature").getClass().equals(String.class)); - - assertTrue(roc.verifySignature((JsonObject)o.get("random"), (String)o.get("signature"))); - } catch (Exception e) { - Assert.fail("Networking error: " + e.getClass().getName() + ":" + e.getMessage()); - } - try { - HashMap o = roc2.generateSignedIntegers(10, 0, 10, false); - - assertNotNull(o); - - assertTrue(o.containsKey("data")); - assertTrue(o.containsKey("random")); - assertTrue(o.containsKey("signature")); - - assertTrue(o.get("data").getClass().equals(int[].class)); - assertTrue(o.get("random").getClass().equals(JsonObject.class)); - assertTrue(o.get("signature").getClass().equals(String.class)); - - assertTrue(roc.verifySignature((JsonObject)o.get("random"), (String)o.get("signature"))); - } catch (Exception e) { - Assert.fail("Networking error: " + e.getClass().getName() + ":" + e.getMessage()); - } - } - - @Test - public void testPositiveGenerateSignedDecimalFractions_1(){ - try { - HashMap o = roc.generateSignedDecimalFractions(10, 5); - - assertNotNull(o); - - assertTrue(o.containsKey("data")); - assertTrue(o.containsKey("random")); - assertTrue(o.containsKey("signature")); - - assertTrue(o.get("data").getClass().equals(double[].class)); - assertTrue(o.get("random").getClass().equals(JsonObject.class)); - assertTrue(o.get("signature").getClass().equals(String.class)); - - assertTrue(roc.verifySignature((JsonObject)o.get("random"), (String)o.get("signature"))); - } catch (Exception e) { - Assert.fail("Networking error: " + e.getClass().getName() + ":" + e.getMessage()); - } - try { - HashMap o = roc2.generateSignedDecimalFractions(10, 5); - - assertNotNull(o); - - assertTrue(o.containsKey("data")); - assertTrue(o.containsKey("random")); - assertTrue(o.containsKey("signature")); - - assertTrue(o.get("data").getClass().equals(double[].class)); - assertTrue(o.get("random").getClass().equals(JsonObject.class)); - assertTrue(o.get("signature").getClass().equals(String.class)); - - assertTrue(roc.verifySignature((JsonObject)o.get("random"), (String)o.get("signature"))); - } catch (Exception e) { - Assert.fail("Networking error: " + e.getClass().getName() + ":" + e.getMessage()); - } - } - - @Test - public void testPositiveGenerateSignedDecimalFractions_2(){ - try { - HashMap o = roc.generateSignedDecimalFractions(10, 5, false); - - assertNotNull(o); - - assertTrue(o.containsKey("data")); - assertTrue(o.containsKey("random")); - assertTrue(o.containsKey("signature")); - - assertTrue(o.get("data").getClass().equals(double[].class)); - assertTrue(o.get("random").getClass().equals(JsonObject.class)); - assertTrue(o.get("signature").getClass().equals(String.class)); - - assertTrue(roc.verifySignature((JsonObject)o.get("random"), (String)o.get("signature"))); - } catch (Exception e) { - Assert.fail("Networking error: " + e.getClass().getName() + ":" + e.getMessage()); - } - try { - HashMap o = roc2.generateSignedDecimalFractions(10, 5, false); - - assertNotNull(o); - - assertTrue(o.containsKey("data")); - assertTrue(o.containsKey("random")); - assertTrue(o.containsKey("signature")); - - assertTrue(o.get("data").getClass().equals(double[].class)); - assertTrue(o.get("random").getClass().equals(JsonObject.class)); - assertTrue(o.get("signature").getClass().equals(String.class)); - - assertTrue(roc.verifySignature((JsonObject)o.get("random"), (String)o.get("signature"))); - } catch (Exception e) { - Assert.fail("Networking error: " + e.getClass().getName() + ":" + e.getMessage()); - } - } - - @Test - public void testPositiveGenerateSignedGaussians(){ - try { - HashMap o = roc.generateSignedGaussians(10, 3.41d, 2.1d, 4); - - assertNotNull(o); - - assertTrue(o.containsKey("data")); - assertTrue(o.containsKey("random")); - assertTrue(o.containsKey("signature")); - - assertTrue(o.get("data").getClass().equals(double[].class)); - assertTrue(o.get("random").getClass().equals(JsonObject.class)); - assertTrue(o.get("signature").getClass().equals(String.class)); - - assertTrue(roc.verifySignature((JsonObject)o.get("random"), (String)o.get("signature"))); - } catch (Exception e) { - Assert.fail("Networking error: " + e.getClass().getName() + ":" + e.getMessage()); - } - try { - HashMap o = roc2.generateSignedGaussians(10, 3.41d, 2.1d, 4); - - assertNotNull(o); - - assertTrue(o.containsKey("data")); - assertTrue(o.containsKey("random")); - assertTrue(o.containsKey("signature")); - - assertTrue(o.get("data").getClass().equals(double[].class)); - assertTrue(o.get("random").getClass().equals(JsonObject.class)); - assertTrue(o.get("signature").getClass().equals(String.class)); - - assertTrue(roc.verifySignature((JsonObject)o.get("random"), (String)o.get("signature"))); - } catch (Exception e) { - Assert.fail("Networking error: " + e.getClass().getName() + ":" + e.getMessage()); - } - } - - @Test - public void testPositiveGenerateSignedStrings_1(){ - try { - HashMap o = roc.generateSignedStrings(10, 5, "abcd"); - - assertNotNull(o); - - assertTrue(o.containsKey("data")); - assertTrue(o.containsKey("random")); - assertTrue(o.containsKey("signature")); - - assertTrue(o.get("data").getClass().equals(String[].class)); - assertTrue(o.get("random").getClass().equals(JsonObject.class)); - assertTrue(o.get("signature").getClass().equals(String.class)); - - assertTrue(roc.verifySignature((JsonObject)o.get("random"), (String)o.get("signature"))); - } catch (Exception e) { - Assert.fail("Networking error: " + e.getClass().getName() + ":" + e.getMessage()); - } - try { - HashMap o = roc2.generateSignedStrings(10, 5, "abcd"); - - assertNotNull(o); - - assertTrue(o.containsKey("data")); - assertTrue(o.containsKey("random")); - assertTrue(o.containsKey("signature")); - - assertTrue(o.get("data").getClass().equals(String[].class)); - assertTrue(o.get("random").getClass().equals(JsonObject.class)); - assertTrue(o.get("signature").getClass().equals(String.class)); - - assertTrue(roc.verifySignature((JsonObject)o.get("random"), (String)o.get("signature"))); - } catch (Exception e) { - Assert.fail("Networking error: " + e.getClass().getName() + ":" + e.getMessage()); - } - } - - @Test - public void testPositiveGenerateSignedStrings_2(){ - try { - HashMap o = roc.generateSignedStrings(10, 5, "abcd", false); - - assertNotNull(o); - - assertTrue(o.containsKey("data")); - assertTrue(o.containsKey("random")); - assertTrue(o.containsKey("signature")); - - assertTrue(o.get("data").getClass().equals(String[].class)); - assertTrue(o.get("random").getClass().equals(JsonObject.class)); - assertTrue(o.get("signature").getClass().equals(String.class)); - - assertTrue(roc.verifySignature((JsonObject)o.get("random"), (String)o.get("signature"))); - } catch (Exception e) { - Assert.fail("Networking error: " + e.getClass().getName() + ":" + e.getMessage()); - } - try { - HashMap o = roc2.generateSignedStrings(10, 5, "abcd", false); - - assertNotNull(o); - - assertTrue(o.containsKey("data")); - assertTrue(o.containsKey("random")); - assertTrue(o.containsKey("signature")); - - assertTrue(o.get("data").getClass().equals(String[].class)); - assertTrue(o.get("random").getClass().equals(JsonObject.class)); - assertTrue(o.get("signature").getClass().equals(String.class)); - - assertTrue(roc.verifySignature((JsonObject)o.get("random"), (String)o.get("signature"))); - } catch (Exception e) { - Assert.fail("Networking error: " + e.getClass().getName() + ":" + e.getMessage()); - } - } - - @Test - public void testPositiveGenerateSignedUUIDs(){ - try { - HashMap o = roc.generateSignedUUIDs(10); - - assertNotNull(o); - - assertTrue(o.containsKey("data")); - assertTrue(o.containsKey("random")); - assertTrue(o.containsKey("signature")); - - assertTrue(o.get("data").getClass().equals(UUID[].class)); - assertTrue(o.get("random").getClass().equals(JsonObject.class)); - assertTrue(o.get("signature").getClass().equals(String.class)); - - assertTrue(roc.verifySignature((JsonObject)o.get("random"), (String)o.get("signature"))); - } catch (Exception e) { - Assert.fail("Networking error: " + e.getClass().getName() + ":" + e.getMessage()); - } - try { - HashMap o = roc2.generateSignedUUIDs(10); - - assertNotNull(o); - - assertTrue(o.containsKey("data")); - assertTrue(o.containsKey("random")); - assertTrue(o.containsKey("signature")); - - assertTrue(o.get("data").getClass().equals(UUID[].class)); - assertTrue(o.get("random").getClass().equals(JsonObject.class)); - assertTrue(o.get("signature").getClass().equals(String.class)); - - assertTrue(roc.verifySignature((JsonObject)o.get("random"), (String)o.get("signature"))); - } catch (Exception e) { - Assert.fail("Networking error: " + e.getClass().getName() + ":" + e.getMessage()); - } - } - - @Test - public void testPositiveGenerateSignedBlobs_1(){ - try { - HashMap o = roc.generateSignedBlobs(10, 16); - - assertNotNull(o); - - assertTrue(o.containsKey("data")); - assertTrue(o.containsKey("random")); - assertTrue(o.containsKey("signature")); - - assertTrue(o.get("data").getClass().equals(String[].class)); - assertTrue(o.get("random").getClass().equals(JsonObject.class)); - assertTrue(o.get("signature").getClass().equals(String.class)); - - assertTrue(roc.verifySignature((JsonObject)o.get("random"), (String)o.get("signature"))); - } catch (Exception e) { - Assert.fail("Networking error: " + e.getClass().getName() + ":" + e.getMessage()); - } - try { - HashMap o = roc2.generateSignedBlobs(10, 16); - - assertNotNull(o); - - assertTrue(o.containsKey("data")); - assertTrue(o.containsKey("random")); - assertTrue(o.containsKey("signature")); - - assertTrue(o.get("data").getClass().equals(String[].class)); - assertTrue(o.get("random").getClass().equals(JsonObject.class)); - assertTrue(o.get("signature").getClass().equals(String.class)); - - assertTrue(roc.verifySignature((JsonObject)o.get("random"), (String)o.get("signature"))); - } catch (Exception e) { - Assert.fail("Networking error: " + e.getClass().getName() + ":" + e.getMessage()); - } - } - - @Test - public void testPositiveGenerateSignedBlobs_2(){ - try { - HashMap o = roc.generateSignedBlobs(10, 16, RandomOrgClient.BLOB_FORMAT_HEX); - - assertNotNull(o); - - assertTrue(o.containsKey("data")); - assertTrue(o.containsKey("random")); - assertTrue(o.containsKey("signature")); - - assertTrue(o.get("data").getClass().equals(String[].class)); - assertTrue(o.get("random").getClass().equals(JsonObject.class)); - assertTrue(o.get("signature").getClass().equals(String.class)); - - assertTrue(roc.verifySignature((JsonObject)o.get("random"), (String)o.get("signature"))); - } catch (Exception e) { - Assert.fail("Networking error: " + e.getClass().getName() + ":" + e.getMessage()); - } - try { - HashMap o = roc2.generateSignedBlobs(10, 16, RandomOrgClient.BLOB_FORMAT_HEX); - - assertNotNull(o); - - assertTrue(o.containsKey("data")); - assertTrue(o.containsKey("random")); - assertTrue(o.containsKey("signature")); - - assertTrue(o.get("data").getClass().equals(String[].class)); - assertTrue(o.get("random").getClass().equals(JsonObject.class)); - assertTrue(o.get("signature").getClass().equals(String.class)); - - assertTrue(roc.verifySignature((JsonObject)o.get("random"), (String)o.get("signature"))); - } catch (Exception e) { - Assert.fail("Networking error: " + e.getClass().getName() + ":" + e.getMessage()); - } - } - - // Test Functions (Cache) - - @Test - public void testIntegerCache(){ - RandomOrgCache c = roc.createIntegerCache(5, 0, 10); - c.stop(); - - try { - c.get(); - Assert.fail("should have thrown NoSuchElementException"); - } catch (NoSuchElementException e) {} - - c.resume(); - - int[] got = null; - - while (got == null) { - try { - got = c.get(); - } catch (NoSuchElementException e) { - try { - Thread.sleep(50); - } catch (InterruptedException e1) { - Assert.fail("shouldn't have been interrupted!"); - } - } - } - - assertNotNull(got); - } - - @Test - public void testDecimalFractionCache(){ - RandomOrgCache c = roc2.createDecimalFractionCache(1, 5); - c.stop(); - - try { - c.get(); - Assert.fail("should have thrown NoSuchElementException"); - } catch (NoSuchElementException e) {} - - c.resume(); - - double[] got = null; - - while (got == null) { - try { - got = c.get(); - } catch (NoSuchElementException e) { - try { - Thread.sleep(50); - } catch (InterruptedException e1) { - Assert.fail("shouldn't have been interrupted!"); - } - } - } - - assertNotNull(got); - } - - @Test - public void testGaussianCache(){ - RandomOrgCache c = roc.createGaussianCache(10, 3.41d, 2.1d, 4); - c.stop(); - - try { - c.get(); - Assert.fail("should have thrown NoSuchElementException"); - } catch (NoSuchElementException e) {} - - c.resume(); - - double[] got = null; - - while (got == null) { - try { - got = c.get(); - } catch (NoSuchElementException e) { - try { - Thread.sleep(50); - } catch (InterruptedException e1) { - Assert.fail("shouldn't have been interrupted!"); - } - } - } - - assertNotNull(got); - } - - @Test - public void testStringCache(){ - RandomOrgCache c = roc2.createStringCache(5, 5, "abcds"); - c.stop(); - - try { - c.get(); - Assert.fail("should have thrown NoSuchElementException"); - } catch (NoSuchElementException e) {} - - c.resume(); - - String[] got = null; - - while (got == null) { - try { - got = c.get(); - } catch (NoSuchElementException e) { - try { - Thread.sleep(50); - } catch (InterruptedException e1) { - Assert.fail("shouldn't have been interrupted!"); - } - } - } - - assertNotNull(got); - } - - @Test - public void testUUIDCache(){ - RandomOrgCache c = roc.createUUIDCache(5); - c.stop(); - - try { - c.get(); - Assert.fail("should have thrown NoSuchElementException"); - } catch (NoSuchElementException e) {} - - c.resume(); - - UUID[] got = null; - - while (got == null) { - try { - got = c.get(); - } catch (NoSuchElementException e) { - try { - Thread.sleep(50); - } catch (InterruptedException e1) { - Assert.fail("shouldn't have been interrupted!"); - } - } - } - - assertNotNull(got); - } - - @Test - public void testBlobCache(){ - RandomOrgCache c = roc2.createBlobCache(5, 8); - c.stop(); - - try { - c.get(); - Assert.fail("should have thrown NoSuchElementException"); - } catch (NoSuchElementException e) {} - - c.resume(); - - String[] got = null; - - while (got == null) { - try { - got = c.get(); - } catch (NoSuchElementException e) { - try { - Thread.sleep(50); - } catch (InterruptedException e1) { - Assert.fail("shouldn't have been interrupted!"); - } - } - } - - assertNotNull(got); - } -} +package org.random.test; + +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertTrue; + +import java.util.HashMap; +import java.util.NoSuchElementException; +import java.util.UUID; + +import org.junit.Assert; +import org.junit.BeforeClass; +import org.junit.Test; +import org.random.api.RandomOrgCache; +import org.random.api.RandomOrgClient; +import org.random.api.exception.RandomOrgRANDOMORGError; + +import com.google.gson.JsonObject; + +/** A set of tests for RandomOrgClient.java + ** @author Anders Haahr + **/ +public class RandomOrgClientBasicTest { + + private static RandomOrgClient roc, roc2; + + private static final String API_KEY_1 = System.getenv("API_KEY"); + private static final String API_KEY_2 = "00000000-0000-0000-0000-000000000000"; + + private static final int BIT_QUOTA = 5000000; // Must be for the highest tier + + @BeforeClass + public static void testSetup() { + roc = RandomOrgClient.getRandomOrgClient(API_KEY_1, 3000, 120000, false); + roc2 = RandomOrgClient.getRandomOrgClient(API_KEY_2); + } + + @Test + public void testInfo() { + try { + assertTrue(roc.getBitsLeft() >= 0); + assertTrue(roc.getRequestsLeft() >= 0); + + assertTrue(roc2.getBitsLeft() >= 0); + assertTrue(roc2.getRequestsLeft() >= 0); + + } catch (Exception e) { + Assert.fail("Networking error: " + e.getClass().getName() + ":" + e.getMessage()); + } + } + + @Test + public void testAPIKeyDuplication() { + RandomOrgClient dupe = RandomOrgClient.getRandomOrgClient(API_KEY_1); + + assertTrue(!roc.equals(roc2)); + assertTrue(roc.equals(dupe)); + } + + @Test + public void testPositiveGetBitsLeft_1(){ + try { + int bitsLeft = roc.getBitsLeft(); + assertTrue(0 <= bitsLeft && bitsLeft <= BIT_QUOTA); + } catch (Exception e) { + Assert.fail("Networking error: " + e.getClass().getName() + ":" + e.getMessage()); + } + } + + @Test + public void testPositiveGetBitsLeft_2(){ + try { + int bitsLeft = roc2.getBitsLeft(); + assertTrue(0 <= bitsLeft && bitsLeft <= BIT_QUOTA); + } catch (Exception e) { + Assert.fail("Networking error: " + e.getClass().getName() + ":" + e.getMessage()); + } + } + + // Test Errors + + @Test + public void testNegativeErrorMessage202(){ + try{ + roc.generateIntegers(100000, 0, 10); + Assert.fail("should have thrown RandomOrgRANDOMORGError"); + } catch(RandomOrgRANDOMORGError e) { + System.out.println(e.getMessage()); + } catch (Exception e) { + Assert.fail("should have thrown RandomOrgRANDOMORGError, instead threw " + e.getClass().getName()); + } + try{ + roc2.generateIntegers(100000, 0, 10); + Assert.fail("should have thrown RandomOrgRANDOMORGError"); + } catch(RandomOrgRANDOMORGError e) { + System.out.println(e.getMessage()); + } catch (Exception e) { + Assert.fail("should have thrown RandomOrgRANDOMORGError, instead threw " + e.getClass().getName()); + } + } + + @Test + public void testNegativeErrorMessage203(){ + try{ + roc.generateIntegers(10, 0, 1000000001); + Assert.fail("should have thrown RandomOrgRANDOMORGError"); + } catch(RandomOrgRANDOMORGError e) { + System.out.println(e.getMessage()); + } catch (Exception e) { + Assert.fail("should have thrown RandomOrgRANDOMORGError, instead threw " + e.getClass().getName()); + } + try{ + roc2.generateIntegers(10, 0, 1000000001); + Assert.fail("should have thrown RandomOrgRANDOMORGError"); + } catch(RandomOrgRANDOMORGError e) { + System.out.println(e.getMessage()); + } catch (Exception e) { + Assert.fail("should have thrown RandomOrgRANDOMORGError, instead threw " + e.getClass().getName()); + } + } + + @Test + public void testNegativeErrorMessage300(){ + try{ + roc.generateIntegers(10, 10, 0); + Assert.fail("should have thrown RandomOrgRANDOMORGError"); + } catch(RandomOrgRANDOMORGError e) { + System.out.println(e.getMessage()); + } catch (Exception e) { + Assert.fail("should have thrown RandomOrgRANDOMORGError, instead threw " + e.getClass().getName()); + } + try{ + roc2.generateIntegers(10, 10, 0); + Assert.fail("should have thrown RandomOrgRANDOMORGError"); + } catch(RandomOrgRANDOMORGError e) { + System.out.println(e.getMessage()); + } catch (Exception e) { + Assert.fail("should have thrown RandomOrgRANDOMORGError, instead threw " + e.getClass().getName()); + } + } + + @Test + public void testNegativeErrorMessage301(){ + try{ + roc.generateIntegers(20, 0, 10, false); + Assert.fail("should have thrown RandomOrgRANDOMORGError"); + } catch(RandomOrgRANDOMORGError e) { + System.out.println(e.getMessage()); + } catch (Exception e) { + Assert.fail("should have thrown RandomOrgRANDOMORGError, instead threw " + e.getClass().getName()); + } + try{ + roc2.generateIntegers(20, 0, 10, false); + Assert.fail("should have thrown RandomOrgRANDOMORGError"); + } catch(RandomOrgRANDOMORGError e) { + System.out.println(e.getMessage()); + } catch (Exception e) { + Assert.fail("should have thrown RandomOrgRANDOMORGError, instead threw " + e.getClass().getName()); + } + } + + @Test + public void testNegativeErrorMessage400(){ + try{ + RandomOrgClient rpc2 = RandomOrgClient.getRandomOrgClient("ffffffff-ffff-ffff-ffff-ffffffffffff"); + rpc2.generateIntegers(1, 0, 1); + Assert.fail("should have thrown RandomOrgRANDOMORGError"); + } catch(RandomOrgRANDOMORGError e) { + System.out.println(e.getMessage()); + } catch (Exception e) { + Assert.fail("should have thrown RandomOrgRANDOMORGError, instead threw " + e.getClass().getName()); + } + } + + // Test Functions + + @Test + public void testPositiveGenerateInteger_1(){ + try { + assertNotNull(roc.generateIntegers(10, 0, 10)); + } catch (Exception e) { + Assert.fail("Networking error: " + e.getClass().getName() + ":" + e.getMessage()); + } + try { + assertNotNull(roc2.generateIntegers(10, 0, 10)); + } catch (Exception e) { + Assert.fail("Networking error: " + e.getClass().getName() + ":" + e.getMessage()); + } + } + + @Test + public void testPositiveGenerateInteger_2(){ + try { + assertNotNull(roc.generateIntegers(10, 0, 10, false)); + } catch (Exception e) { + Assert.fail("Networking error: " + e.getClass().getName() + ":" + e.getMessage()); + } + try { + assertNotNull(roc2.generateIntegers(10, 0, 10, false)); + } catch (Exception e) { + Assert.fail("Networking error: " + e.getClass().getName() + ":" + e.getMessage()); + } + } + + @Test + public void testPositiveGenerateDecimalFractions_1(){ + try { + assertNotNull(roc.generateDecimalFractions(10, 5)); + } catch (Exception e) { + Assert.fail("Networking error: " + e.getClass().getName() + ":" + e.getMessage()); + } + try { + assertNotNull(roc2.generateDecimalFractions(10, 5)); + } catch (Exception e) { + Assert.fail("Networking error: " + e.getClass().getName() + ":" + e.getMessage()); + } + } + + @Test + public void testPositiveGenerateDecimalFractions_2(){ + try { + assertNotNull(roc.generateDecimalFractions(10, 5, false)); + } catch (Exception e) { + Assert.fail("Networking error: " + e.getClass().getName() + ":" + e.getMessage()); + } + try { + assertNotNull(roc2.generateDecimalFractions(10, 5, false)); + } catch (Exception e) { + Assert.fail("Networking error: " + e.getClass().getName() + ":" + e.getMessage()); + } + } + + @Test + public void testPositiveGenerateGaussians(){ + try { + assertNotNull(roc.generateGaussians(10, 3.41d, 2.1d, 4)); + } catch (Exception e) { + Assert.fail("Networking error: " + e.getClass().getName() + ":" + e.getMessage()); + } + try { + assertNotNull(roc2.generateGaussians(10, 3.41d, 2.1d, 4)); + } catch (Exception e) { + Assert.fail("Networking error: " + e.getClass().getName() + ":" + e.getMessage()); + } + } + + @Test + public void testPositiveGenerateStrings_1(){ + try { + assertNotNull(roc.generateStrings(10, 5, "abcd")); + } catch (Exception e) { + Assert.fail("Networking error: " + e.getClass().getName() + ":" + e.getMessage()); + } + try { + assertNotNull(roc2.generateStrings(10, 5, "abcd")); + } catch (Exception e) { + Assert.fail("Networking error: " + e.getClass().getName() + ":" + e.getMessage()); + } + } + + @Test + public void testPositiveGenerateStrings_2(){ + try { + assertNotNull(roc.generateStrings(10, 5, "abcd", false)); + } catch (Exception e) { + Assert.fail("Networking error: " + e.getClass().getName() + ":" + e.getMessage()); + } + try { + assertNotNull(roc2.generateStrings(10, 5, "abcd", false)); + } catch (Exception e) { + Assert.fail("Networking error: " + e.getClass().getName() + ":" + e.getMessage()); + } + } + + @Test + public void testPositiveGenerateUUIDs(){ + try { + assertNotNull(roc.generateUUIDs(10)); + } catch (Exception e) { + Assert.fail("Networking error: " + e.getClass().getName() + ":" + e.getMessage()); + } + try { + assertNotNull(roc2.generateUUIDs(10)); + } catch (Exception e) { + Assert.fail("Networking error: " + e.getClass().getName() + ":" + e.getMessage()); + } + } + + @Test + public void testPositiveGenerateBlobs_1(){ + try { + assertNotNull(roc.generateBlobs(10, 16)); + } catch (Exception e) { + Assert.fail("Networking error: " + e.getClass().getName() + ":" + e.getMessage()); + } + try { + assertNotNull(roc2.generateBlobs(10, 16)); + } catch (Exception e) { + Assert.fail("Networking error: " + e.getClass().getName() + ":" + e.getMessage()); + } + } + + @Test + public void testPositiveGenerateBlobs_2(){ + try { + assertNotNull(roc.generateBlobs(10, 16, RandomOrgClient.BLOB_FORMAT_HEX)); + } catch (Exception e) { + Assert.fail("Networking error: " + e.getClass().getName() + ":" + e.getMessage()); + } + try { + assertNotNull(roc2.generateBlobs(10, 16, RandomOrgClient.BLOB_FORMAT_HEX)); + } catch (Exception e) { + Assert.fail("Networking error: " + e.getClass().getName() + ":" + e.getMessage()); + } + } + + // Test Functions (Signed) + + @Test + public void testPositiveGenerateSignedInteger_1(){ + try { + HashMap o = roc.generateSignedIntegers(10, 0, 10); + + assertNotNull(o); + + assertTrue(o.containsKey("data")); + assertTrue(o.containsKey("random")); + assertTrue(o.containsKey("signature")); + + assertTrue(o.get("data").getClass().equals(int[].class)); + assertTrue(o.get("random").getClass().equals(JsonObject.class)); + assertTrue(o.get("signature").getClass().equals(String.class)); + + assertTrue(roc.verifySignature((JsonObject)o.get("random"), (String)o.get("signature"))); + } catch (Exception e) { + Assert.fail("Networking error: " + e.getClass().getName() + ":" + e.getMessage()); + } + try { + HashMap o = roc2.generateSignedIntegers(10, 0, 10); + + assertNotNull(o); + + assertTrue(o.containsKey("data")); + assertTrue(o.containsKey("random")); + assertTrue(o.containsKey("signature")); + + assertTrue(o.get("data").getClass().equals(int[].class)); + assertTrue(o.get("random").getClass().equals(JsonObject.class)); + assertTrue(o.get("signature").getClass().equals(String.class)); + + assertTrue(roc.verifySignature((JsonObject)o.get("random"), (String)o.get("signature"))); + } catch (Exception e) { + Assert.fail("Networking error: " + e.getClass().getName() + ":" + e.getMessage()); + } + } + + @Test + public void testPositiveGenerateSignedInteger_2(){ + try { + HashMap o = roc.generateSignedIntegers(10, 0, 10, false); + + assertNotNull(o); + + assertTrue(o.containsKey("data")); + assertTrue(o.containsKey("random")); + assertTrue(o.containsKey("signature")); + + assertTrue(o.get("data").getClass().equals(int[].class)); + assertTrue(o.get("random").getClass().equals(JsonObject.class)); + assertTrue(o.get("signature").getClass().equals(String.class)); + + assertTrue(roc.verifySignature((JsonObject)o.get("random"), (String)o.get("signature"))); + } catch (Exception e) { + Assert.fail("Networking error: " + e.getClass().getName() + ":" + e.getMessage()); + } + try { + HashMap o = roc2.generateSignedIntegers(10, 0, 10, false); + + assertNotNull(o); + + assertTrue(o.containsKey("data")); + assertTrue(o.containsKey("random")); + assertTrue(o.containsKey("signature")); + + assertTrue(o.get("data").getClass().equals(int[].class)); + assertTrue(o.get("random").getClass().equals(JsonObject.class)); + assertTrue(o.get("signature").getClass().equals(String.class)); + + assertTrue(roc.verifySignature((JsonObject)o.get("random"), (String)o.get("signature"))); + } catch (Exception e) { + Assert.fail("Networking error: " + e.getClass().getName() + ":" + e.getMessage()); + } + } + + @Test + public void testPositiveGenerateSignedDecimalFractions_1(){ + try { + HashMap o = roc.generateSignedDecimalFractions(10, 5); + + assertNotNull(o); + + assertTrue(o.containsKey("data")); + assertTrue(o.containsKey("random")); + assertTrue(o.containsKey("signature")); + + assertTrue(o.get("data").getClass().equals(double[].class)); + assertTrue(o.get("random").getClass().equals(JsonObject.class)); + assertTrue(o.get("signature").getClass().equals(String.class)); + + assertTrue(roc.verifySignature((JsonObject)o.get("random"), (String)o.get("signature"))); + } catch (Exception e) { + Assert.fail("Networking error: " + e.getClass().getName() + ":" + e.getMessage()); + } + try { + HashMap o = roc2.generateSignedDecimalFractions(10, 5); + + assertNotNull(o); + + assertTrue(o.containsKey("data")); + assertTrue(o.containsKey("random")); + assertTrue(o.containsKey("signature")); + + assertTrue(o.get("data").getClass().equals(double[].class)); + assertTrue(o.get("random").getClass().equals(JsonObject.class)); + assertTrue(o.get("signature").getClass().equals(String.class)); + + assertTrue(roc.verifySignature((JsonObject)o.get("random"), (String)o.get("signature"))); + } catch (Exception e) { + Assert.fail("Networking error: " + e.getClass().getName() + ":" + e.getMessage()); + } + } + + @Test + public void testPositiveGenerateSignedDecimalFractions_2(){ + try { + HashMap o = roc.generateSignedDecimalFractions(10, 5, false); + + assertNotNull(o); + + assertTrue(o.containsKey("data")); + assertTrue(o.containsKey("random")); + assertTrue(o.containsKey("signature")); + + assertTrue(o.get("data").getClass().equals(double[].class)); + assertTrue(o.get("random").getClass().equals(JsonObject.class)); + assertTrue(o.get("signature").getClass().equals(String.class)); + + assertTrue(roc.verifySignature((JsonObject)o.get("random"), (String)o.get("signature"))); + } catch (Exception e) { + Assert.fail("Networking error: " + e.getClass().getName() + ":" + e.getMessage()); + } + try { + HashMap o = roc2.generateSignedDecimalFractions(10, 5, false); + + assertNotNull(o); + + assertTrue(o.containsKey("data")); + assertTrue(o.containsKey("random")); + assertTrue(o.containsKey("signature")); + + assertTrue(o.get("data").getClass().equals(double[].class)); + assertTrue(o.get("random").getClass().equals(JsonObject.class)); + assertTrue(o.get("signature").getClass().equals(String.class)); + + assertTrue(roc.verifySignature((JsonObject)o.get("random"), (String)o.get("signature"))); + } catch (Exception e) { + Assert.fail("Networking error: " + e.getClass().getName() + ":" + e.getMessage()); + } + } + + @Test + public void testPositiveGenerateSignedGaussians(){ + try { + HashMap o = roc.generateSignedGaussians(10, 3.41d, 2.1d, 4); + + assertNotNull(o); + + assertTrue(o.containsKey("data")); + assertTrue(o.containsKey("random")); + assertTrue(o.containsKey("signature")); + + assertTrue(o.get("data").getClass().equals(double[].class)); + assertTrue(o.get("random").getClass().equals(JsonObject.class)); + assertTrue(o.get("signature").getClass().equals(String.class)); + + assertTrue(roc.verifySignature((JsonObject)o.get("random"), (String)o.get("signature"))); + } catch (Exception e) { + Assert.fail("Networking error: " + e.getClass().getName() + ":" + e.getMessage()); + } + try { + HashMap o = roc2.generateSignedGaussians(10, 3.41d, 2.1d, 4); + + assertNotNull(o); + + assertTrue(o.containsKey("data")); + assertTrue(o.containsKey("random")); + assertTrue(o.containsKey("signature")); + + assertTrue(o.get("data").getClass().equals(double[].class)); + assertTrue(o.get("random").getClass().equals(JsonObject.class)); + assertTrue(o.get("signature").getClass().equals(String.class)); + + assertTrue(roc.verifySignature((JsonObject)o.get("random"), (String)o.get("signature"))); + } catch (Exception e) { + Assert.fail("Networking error: " + e.getClass().getName() + ":" + e.getMessage()); + } + } + + @Test + public void testPositiveGenerateSignedStrings_1(){ + try { + HashMap o = roc.generateSignedStrings(10, 5, "abcd"); + + assertNotNull(o); + + assertTrue(o.containsKey("data")); + assertTrue(o.containsKey("random")); + assertTrue(o.containsKey("signature")); + + assertTrue(o.get("data").getClass().equals(String[].class)); + assertTrue(o.get("random").getClass().equals(JsonObject.class)); + assertTrue(o.get("signature").getClass().equals(String.class)); + + assertTrue(roc.verifySignature((JsonObject)o.get("random"), (String)o.get("signature"))); + } catch (Exception e) { + Assert.fail("Networking error: " + e.getClass().getName() + ":" + e.getMessage()); + } + try { + HashMap o = roc2.generateSignedStrings(10, 5, "abcd"); + + assertNotNull(o); + + assertTrue(o.containsKey("data")); + assertTrue(o.containsKey("random")); + assertTrue(o.containsKey("signature")); + + assertTrue(o.get("data").getClass().equals(String[].class)); + assertTrue(o.get("random").getClass().equals(JsonObject.class)); + assertTrue(o.get("signature").getClass().equals(String.class)); + + assertTrue(roc.verifySignature((JsonObject)o.get("random"), (String)o.get("signature"))); + } catch (Exception e) { + Assert.fail("Networking error: " + e.getClass().getName() + ":" + e.getMessage()); + } + } + + @Test + public void testPositiveGenerateSignedStrings_2(){ + try { + HashMap o = roc.generateSignedStrings(10, 5, "abcd", false); + + assertNotNull(o); + + assertTrue(o.containsKey("data")); + assertTrue(o.containsKey("random")); + assertTrue(o.containsKey("signature")); + + assertTrue(o.get("data").getClass().equals(String[].class)); + assertTrue(o.get("random").getClass().equals(JsonObject.class)); + assertTrue(o.get("signature").getClass().equals(String.class)); + + assertTrue(roc.verifySignature((JsonObject)o.get("random"), (String)o.get("signature"))); + } catch (Exception e) { + Assert.fail("Networking error: " + e.getClass().getName() + ":" + e.getMessage()); + } + try { + HashMap o = roc2.generateSignedStrings(10, 5, "abcd", false); + + assertNotNull(o); + + assertTrue(o.containsKey("data")); + assertTrue(o.containsKey("random")); + assertTrue(o.containsKey("signature")); + + assertTrue(o.get("data").getClass().equals(String[].class)); + assertTrue(o.get("random").getClass().equals(JsonObject.class)); + assertTrue(o.get("signature").getClass().equals(String.class)); + + assertTrue(roc.verifySignature((JsonObject)o.get("random"), (String)o.get("signature"))); + } catch (Exception e) { + Assert.fail("Networking error: " + e.getClass().getName() + ":" + e.getMessage()); + } + } + + @Test + public void testPositiveGenerateSignedUUIDs(){ + try { + HashMap o = roc.generateSignedUUIDs(10); + + assertNotNull(o); + + assertTrue(o.containsKey("data")); + assertTrue(o.containsKey("random")); + assertTrue(o.containsKey("signature")); + + assertTrue(o.get("data").getClass().equals(UUID[].class)); + assertTrue(o.get("random").getClass().equals(JsonObject.class)); + assertTrue(o.get("signature").getClass().equals(String.class)); + + assertTrue(roc.verifySignature((JsonObject)o.get("random"), (String)o.get("signature"))); + } catch (Exception e) { + Assert.fail("Networking error: " + e.getClass().getName() + ":" + e.getMessage()); + } + try { + HashMap o = roc2.generateSignedUUIDs(10); + + assertNotNull(o); + + assertTrue(o.containsKey("data")); + assertTrue(o.containsKey("random")); + assertTrue(o.containsKey("signature")); + + assertTrue(o.get("data").getClass().equals(UUID[].class)); + assertTrue(o.get("random").getClass().equals(JsonObject.class)); + assertTrue(o.get("signature").getClass().equals(String.class)); + + assertTrue(roc.verifySignature((JsonObject)o.get("random"), (String)o.get("signature"))); + } catch (Exception e) { + Assert.fail("Networking error: " + e.getClass().getName() + ":" + e.getMessage()); + } + } + + @Test + public void testPositiveGenerateSignedBlobs_1(){ + try { + HashMap o = roc.generateSignedBlobs(10, 16); + + assertNotNull(o); + + assertTrue(o.containsKey("data")); + assertTrue(o.containsKey("random")); + assertTrue(o.containsKey("signature")); + + assertTrue(o.get("data").getClass().equals(String[].class)); + assertTrue(o.get("random").getClass().equals(JsonObject.class)); + assertTrue(o.get("signature").getClass().equals(String.class)); + + assertTrue(roc.verifySignature((JsonObject)o.get("random"), (String)o.get("signature"))); + } catch (Exception e) { + Assert.fail("Networking error: " + e.getClass().getName() + ":" + e.getMessage()); + } + try { + HashMap o = roc2.generateSignedBlobs(10, 16); + + assertNotNull(o); + + assertTrue(o.containsKey("data")); + assertTrue(o.containsKey("random")); + assertTrue(o.containsKey("signature")); + + assertTrue(o.get("data").getClass().equals(String[].class)); + assertTrue(o.get("random").getClass().equals(JsonObject.class)); + assertTrue(o.get("signature").getClass().equals(String.class)); + + assertTrue(roc.verifySignature((JsonObject)o.get("random"), (String)o.get("signature"))); + } catch (Exception e) { + Assert.fail("Networking error: " + e.getClass().getName() + ":" + e.getMessage()); + } + } + + @Test + public void testPositiveGenerateSignedBlobs_2(){ + try { + HashMap o = roc.generateSignedBlobs(10, 16, RandomOrgClient.BLOB_FORMAT_HEX); + + assertNotNull(o); + + assertTrue(o.containsKey("data")); + assertTrue(o.containsKey("random")); + assertTrue(o.containsKey("signature")); + + assertTrue(o.get("data").getClass().equals(String[].class)); + assertTrue(o.get("random").getClass().equals(JsonObject.class)); + assertTrue(o.get("signature").getClass().equals(String.class)); + + assertTrue(roc.verifySignature((JsonObject)o.get("random"), (String)o.get("signature"))); + } catch (Exception e) { + Assert.fail("Networking error: " + e.getClass().getName() + ":" + e.getMessage()); + } + try { + HashMap o = roc2.generateSignedBlobs(10, 16, RandomOrgClient.BLOB_FORMAT_HEX); + + assertNotNull(o); + + assertTrue(o.containsKey("data")); + assertTrue(o.containsKey("random")); + assertTrue(o.containsKey("signature")); + + assertTrue(o.get("data").getClass().equals(String[].class)); + assertTrue(o.get("random").getClass().equals(JsonObject.class)); + assertTrue(o.get("signature").getClass().equals(String.class)); + + assertTrue(roc.verifySignature((JsonObject)o.get("random"), (String)o.get("signature"))); + } catch (Exception e) { + Assert.fail("Networking error: " + e.getClass().getName() + ":" + e.getMessage()); + } + } + + // Test Functions (Cache) + + @Test + public void testIntegerCache(){ + RandomOrgCache c = roc.createIntegerCache(5, 0, 10); + c.stop(); + + try { + c.get(); + Assert.fail("should have thrown NoSuchElementException"); + } catch (NoSuchElementException e) {} + + c.resume(); + + int[] got = null; + + while (got == null) { + try { + got = c.get(); + } catch (NoSuchElementException e) { + try { + Thread.sleep(50); + } catch (InterruptedException e1) { + Assert.fail("shouldn't have been interrupted!"); + } + } + } + + assertNotNull(got); + } + + @Test + public void testDecimalFractionCache(){ + RandomOrgCache c = roc2.createDecimalFractionCache(1, 5); + c.stop(); + + try { + c.get(); + Assert.fail("should have thrown NoSuchElementException"); + } catch (NoSuchElementException e) {} + + c.resume(); + + double[] got = null; + + while (got == null) { + try { + got = c.get(); + } catch (NoSuchElementException e) { + try { + Thread.sleep(50); + } catch (InterruptedException e1) { + Assert.fail("shouldn't have been interrupted!"); + } + } + } + + assertNotNull(got); + } + + @Test + public void testGaussianCache(){ + RandomOrgCache c = roc.createGaussianCache(10, 3.41d, 2.1d, 4); + c.stop(); + + try { + c.get(); + Assert.fail("should have thrown NoSuchElementException"); + } catch (NoSuchElementException e) {} + + c.resume(); + + double[] got = null; + + while (got == null) { + try { + got = c.get(); + } catch (NoSuchElementException e) { + try { + Thread.sleep(50); + } catch (InterruptedException e1) { + Assert.fail("shouldn't have been interrupted!"); + } + } + } + + assertNotNull(got); + } + + @Test + public void testStringCache(){ + RandomOrgCache c = roc2.createStringCache(5, 5, "abcds"); + c.stop(); + + try { + c.get(); + Assert.fail("should have thrown NoSuchElementException"); + } catch (NoSuchElementException e) {} + + c.resume(); + + String[] got = null; + + while (got == null) { + try { + got = c.get(); + } catch (NoSuchElementException e) { + try { + Thread.sleep(50); + } catch (InterruptedException e1) { + Assert.fail("shouldn't have been interrupted!"); + } + } + } + + assertNotNull(got); + } + + @Test + public void testUUIDCache(){ + RandomOrgCache c = roc.createUUIDCache(5); + c.stop(); + + try { + c.get(); + Assert.fail("should have thrown NoSuchElementException"); + } catch (NoSuchElementException e) {} + + c.resume(); + + UUID[] got = null; + + while (got == null) { + try { + got = c.get(); + } catch (NoSuchElementException e) { + try { + Thread.sleep(50); + } catch (InterruptedException e1) { + Assert.fail("shouldn't have been interrupted!"); + } + } + } + + assertNotNull(got); + } + + @Test + public void testBlobCache(){ + RandomOrgCache c = roc2.createBlobCache(5, 8); + c.stop(); + + try { + c.get(); + Assert.fail("should have thrown NoSuchElementException"); + } catch (NoSuchElementException e) {} + + c.resume(); + + String[] got = null; + + while (got == null) { + try { + got = c.get(); + } catch (NoSuchElementException e) { + try { + Thread.sleep(50); + } catch (InterruptedException e1) { + Assert.fail("shouldn't have been interrupted!"); + } + } + } + + assertNotNull(got); + } +} diff --git a/RandomJSONRPC/src/org/random/test/RandomOrgRandomBasicTest.java b/src/test/java/org/random/test/RandomOrgRandomBasicTest.java similarity index 91% rename from RandomJSONRPC/src/org/random/test/RandomOrgRandomBasicTest.java rename to src/test/java/org/random/test/RandomOrgRandomBasicTest.java index fe393f1..b0477ca 100644 --- a/RandomJSONRPC/src/org/random/test/RandomOrgRandomBasicTest.java +++ b/src/test/java/org/random/test/RandomOrgRandomBasicTest.java @@ -14,7 +14,7 @@ public class RandomOrgRandomBasicTest { private static RandomOrgRandom random; - private static final String API_KEY_1 = "YOUR_API_KEY_HERE"; + private static final String API_KEY_1 = System.getenv("API_KEY"); @BeforeClass public static void testSetup() {