Improve code coverage for aaf cadi modules
[aaf/cadi.git] / core / src / test / java / org / onap / aaf / cadi / test / JU_Base64.java
index 4d49c92..3596619 100644 (file)
@@ -153,4 +153,216 @@ public class JU_Base64 {
                assertEquals(toEncode,result);\r
                \r
        }\r
+       \r
+       @Test\r
+       public void test1() throws Exception {\r
+               // Test with different Padding\r
+               encode("leas",    "bGVhcw==");\r
+               encode("leasu",   "bGVhc3U=");\r
+               encode("leasur",  "bGVhc3Vy");\r
+               encode("leasure", "bGVhc3VyZQ==");\r
+               encode("leasure.","bGVhc3VyZS4=");\r
+\r
+               // Test with line ends\r
+               encode(encoding, expected);\r
+               \r
+               int ITER = 2000;\r
+               System.out.println("Priming by Encoding Base64 " + ITER + " times");\r
+               long start = System.nanoTime();\r
+               for(int i=0;i<ITER;++i) {\r
+                       Symm.base64.encode(encoding);\r
+               }\r
+               Float ms = (System.nanoTime()-start)/1000000F;\r
+               System.out.println("Total: " + ms + "ms");\r
+               System.out.println("Avg:   " + ms/ITER + "ms");\r
+               \r
+               System.out.println("Priming by Decoding Base64 " + ITER + " times");\r
+               start = System.nanoTime();\r
+               for(int i=0;i<ITER;++i) {\r
+                       Symm.base64.decode(expected);\r
+               }\r
+               ms = (System.nanoTime()-start)/1000000F;\r
+               System.out.println("Total: " + ms + "ms");\r
+               System.out.println("Avg:   " + ms/ITER + "ms");\r
+\r
+               \r
+               ITER=30000;\r
+               System.out.println("Encoding Base64 " + ITER + " times");\r
+               start = System.nanoTime();\r
+               for(int i=0;i<ITER;++i) {\r
+                       Symm.base64.encode(encoding);\r
+               }\r
+               ms = (System.nanoTime()-start)/1000000F;\r
+               System.out.println("Total: " + ms + "ms");\r
+               System.out.println("Avg:   " + ms/ITER + "ms");\r
+               \r
+               System.out.println("Decoding Base64 " + ITER + " times");\r
+               start = System.nanoTime();\r
+               for(int i=0;i<ITER;++i) {\r
+                       Symm.base64.decode(expected);\r
+               }\r
+               ms = (System.nanoTime()-start)/1000000F;\r
+               System.out.println("Total: " + ms + "ms");\r
+               System.out.println("Avg:   " + ms/ITER + "ms");\r
+       }\r
+       \r
+       @Test\r
+       public void symmetric1() throws IOException {\r
+               System.out.println("Validating Generated Key mechanisms works");\r
+               String symmetric = new String(Symm.base64.keygen());\r
+               System.out.println(symmetric);\r
+               Symm bsym = Symm.obtain(symmetric);\r
+               String result = bsym.encode(encoding);\r
+               System.out.println("\nResult:");\r
+               System.out.println(result);\r
+               assertEquals(encoding, bsym.decode(result));\r
+               \r
+               int ITER = 20000;\r
+               System.out.println("Generating keys " + ITER + " times");\r
+               long start = System.nanoTime();\r
+               for(int i=0;i<ITER;++i) {\r
+                       Symm.base64.keygen();\r
+               }\r
+               Float ms = (System.nanoTime()-start)/1000000F;\r
+               System.out.println("Total: " + ms + "ms");\r
+               System.out.println("Avg:   " + ms/ITER + "ms");\r
+\r
+               char[] manipulate = symmetric.toCharArray();\r
+               int spot = new SecureRandom().nextInt(manipulate.length);\r
+               manipulate[spot]|=0xFF;\r
+               String newsymmetric = new String(manipulate);\r
+               assertNotSame(newsymmetric, symmetric);\r
+               try {\r
+                       bsym = Symm.obtain(newsymmetric);\r
+                       result = bsym.decode(result);\r
+                       assertEquals(encoding, result);\r
+               } catch (IOException e) {\r
+                       // this is what we want to see if key wrong\r
+                       System.out.println(e.getMessage() + " (as expected)");\r
+               }\r
+       }\r
+\r
+       private void encode1(String toEncode, String expected) throws IOException {\r
+               System.out.println("-------------------------------------------------");\r
+               System.out.println(toEncode);\r
+               System.out.println();\r
+               System.out.println(expected);\r
+               System.out.println();\r
+               String result = Symm.base64.encode(toEncode);\r
+               System.out.println(result);\r
+               assertEquals(expected,result);\r
+               \r
+               ByteArrayOutputStream baos = new ByteArrayOutputStream();\r
+               Symm.base64.decode(new ByteArrayInputStream(result.getBytes()), baos);\r
+               result = baos.toString(Config.UTF_8);\r
+               System.out.println(result);\r
+               assertEquals(toEncode,result);\r
+               \r
+       }\r
+       \r
+       @Test\r
+       public void test2() throws Exception {\r
+               // Test with different Padding\r
+               encode("leas",    "bGVhcw==");\r
+               encode("leasu",   "bGVhc3U=");\r
+               encode("leasur",  "bGVhc3Vy");\r
+               encode("leasure", "bGVhc3VyZQ==");\r
+               encode("leasure.","bGVhc3VyZS4=");\r
+\r
+               // Test with line ends\r
+               encode(encoding, expected);\r
+               \r
+               int ITER = 2000;\r
+               System.out.println("Priming by Encoding Base64 " + ITER + " times");\r
+               long start = System.nanoTime();\r
+               for(int i=0;i<ITER;++i) {\r
+                       Symm.base64.encode(encoding);\r
+               }\r
+               Float ms = (System.nanoTime()-start)/1000000F;\r
+               System.out.println("Total: " + ms + "ms");\r
+               System.out.println("Avg:   " + ms/ITER + "ms");\r
+               \r
+               System.out.println("Priming by Decoding Base64 " + ITER + " times");\r
+               start = System.nanoTime();\r
+               for(int i=0;i<ITER;++i) {\r
+                       Symm.base64.decode(expected);\r
+               }\r
+               ms = (System.nanoTime()-start)/1000000F;\r
+               System.out.println("Total: " + ms + "ms");\r
+               System.out.println("Avg:   " + ms/ITER + "ms");\r
+\r
+               \r
+               ITER=30000;\r
+               System.out.println("Encoding Base64 " + ITER + " times");\r
+               start = System.nanoTime();\r
+               for(int i=0;i<ITER;++i) {\r
+                       Symm.base64.encode(encoding);\r
+               }\r
+               ms = (System.nanoTime()-start)/1000000F;\r
+               System.out.println("Total: " + ms + "ms");\r
+               System.out.println("Avg:   " + ms/ITER + "ms");\r
+               \r
+               System.out.println("Decoding Base64 " + ITER + " times");\r
+               start = System.nanoTime();\r
+               for(int i=0;i<ITER;++i) {\r
+                       Symm.base64.decode(expected);\r
+               }\r
+               ms = (System.nanoTime()-start)/1000000F;\r
+               System.out.println("Total: " + ms + "ms");\r
+               System.out.println("Avg:   " + ms/ITER + "ms");\r
+       }\r
+       \r
+       @Test\r
+       public void symmetric2() throws IOException {\r
+               System.out.println("Validating Generated Key mechanisms works");\r
+               String symmetric = new String(Symm.base64.keygen());\r
+               System.out.println(symmetric);\r
+               Symm bsym = Symm.obtain(symmetric);\r
+               String result = bsym.encode(encoding);\r
+               System.out.println("\nResult:");\r
+               System.out.println(result);\r
+               assertEquals(encoding, bsym.decode(result));\r
+               \r
+               int ITER = 20000;\r
+               System.out.println("Generating keys " + ITER + " times");\r
+               long start = System.nanoTime();\r
+               for(int i=0;i<ITER;++i) {\r
+                       Symm.base64.keygen();\r
+               }\r
+               Float ms = (System.nanoTime()-start)/1000000F;\r
+               System.out.println("Total: " + ms + "ms");\r
+               System.out.println("Avg:   " + ms/ITER + "ms");\r
+\r
+               char[] manipulate = symmetric.toCharArray();\r
+               int spot = new SecureRandom().nextInt(manipulate.length);\r
+               manipulate[spot]|=0xFF;\r
+               String newsymmetric = new String(manipulate);\r
+               assertNotSame(newsymmetric, symmetric);\r
+               try {\r
+                       bsym = Symm.obtain(newsymmetric);\r
+                       result = bsym.decode(result);\r
+                       assertEquals(encoding, result);\r
+               } catch (IOException e) {\r
+                       // this is what we want to see if key wrong\r
+                       System.out.println(e.getMessage() + " (as expected)");\r
+               }\r
+       }\r
+\r
+       private void encode2(String toEncode, String expected) throws IOException {\r
+               System.out.println("-------------------------------------------------");\r
+               System.out.println(toEncode);\r
+               System.out.println();\r
+               System.out.println(expected);\r
+               System.out.println();\r
+               String result = Symm.base64.encode(toEncode);\r
+               System.out.println(result);\r
+               assertEquals(expected,result);\r
+               \r
+               ByteArrayOutputStream baos = new ByteArrayOutputStream();\r
+               Symm.base64.decode(new ByteArrayInputStream(result.getBytes()), baos);\r
+               result = baos.toString(Config.UTF_8);\r
+               System.out.println(result);\r
+               assertEquals(toEncode,result);\r
+               \r
+       }\r
 }\r