jackrabbit-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From thom...@apache.org
Subject svn commit: r1159568 - in /jackrabbit/sandbox/microkernel/src: main/java/org/apache/jackrabbit/mk/json/ main/java/org/apache/jackrabbit/mk/util/ test/java/org/apache/jackrabbit/mk/ test/java/org/apache/jackrabbit/mk/json/ test/java/org/apache/jackrabbi...
Date Fri, 19 Aug 2011 10:08:08 GMT
Author: thomasm
Date: Fri Aug 19 10:08:07 2011
New Revision: 1159568

URL: http://svn.apache.org/viewvc?rev=1159568&view=rev
Log:
Moved and improved utility tests.

Added:
    jackrabbit/sandbox/microkernel/src/test/java/org/apache/jackrabbit/mk/util/IOUtilsTest.java
      - copied, changed from r1155401, jackrabbit/sandbox/microkernel/src/test/java/org/apache/jackrabbit/mk/util/UtilsTest.java
    jackrabbit/sandbox/microkernel/src/test/java/org/apache/jackrabbit/mk/util/NonDescendingClockTest.java
      - copied, changed from r1153492, jackrabbit/sandbox/microkernel/src/test/java/org/apache/jackrabbit/mk/ClockTest.java
    jackrabbit/sandbox/microkernel/src/test/java/org/apache/jackrabbit/mk/util/StringUtilsTest.java
Removed:
    jackrabbit/sandbox/microkernel/src/test/java/org/apache/jackrabbit/mk/ClockTest.java
    jackrabbit/sandbox/microkernel/src/test/java/org/apache/jackrabbit/mk/util/UtilsTest.java
Modified:
    jackrabbit/sandbox/microkernel/src/main/java/org/apache/jackrabbit/mk/json/JsopBuilder.java
    jackrabbit/sandbox/microkernel/src/main/java/org/apache/jackrabbit/mk/json/JsopTokenizer.java
    jackrabbit/sandbox/microkernel/src/main/java/org/apache/jackrabbit/mk/util/NonDescendingClock.java
    jackrabbit/sandbox/microkernel/src/main/java/org/apache/jackrabbit/mk/util/StringUtils.java
    jackrabbit/sandbox/microkernel/src/test/java/org/apache/jackrabbit/mk/HelloWorld.java
    jackrabbit/sandbox/microkernel/src/test/java/org/apache/jackrabbit/mk/json/JsopTest.java

Modified: jackrabbit/sandbox/microkernel/src/main/java/org/apache/jackrabbit/mk/json/JsopBuilder.java
URL: http://svn.apache.org/viewvc/jackrabbit/sandbox/microkernel/src/main/java/org/apache/jackrabbit/mk/json/JsopBuilder.java?rev=1159568&r1=1159567&r2=1159568&view=diff
==============================================================================
--- jackrabbit/sandbox/microkernel/src/main/java/org/apache/jackrabbit/mk/json/JsopBuilder.java
(original)
+++ jackrabbit/sandbox/microkernel/src/main/java/org/apache/jackrabbit/mk/json/JsopBuilder.java
Fri Aug 19 10:08:07 2011
@@ -261,7 +261,7 @@ public class JsopBuilder {
                         buff.append('0');
                     }
                     buff.append(hex);
-                } else if (ch > 127) {
+                } else if (ch >= 127) {
                     // ascii only mode
                     buff.append("\\u");
                     String hex = Integer.toHexString(c);

Modified: jackrabbit/sandbox/microkernel/src/main/java/org/apache/jackrabbit/mk/json/JsopTokenizer.java
URL: http://svn.apache.org/viewvc/jackrabbit/sandbox/microkernel/src/main/java/org/apache/jackrabbit/mk/json/JsopTokenizer.java?rev=1159568&r1=1159567&r2=1159568&view=diff
==============================================================================
--- jackrabbit/sandbox/microkernel/src/main/java/org/apache/jackrabbit/mk/json/JsopTokenizer.java
(original)
+++ jackrabbit/sandbox/microkernel/src/main/java/org/apache/jackrabbit/mk/json/JsopTokenizer.java
Fri Aug 19 10:08:07 2011
@@ -82,6 +82,7 @@ public class JsopTokenizer {
      * Read a token which must match a given token type.
      *
      * @param type the token type
+     * @return the token (a null object when reading a null value)
      * @throws IllegalStateException if the token type doesn't match
      */
     public String read(int type) {
@@ -94,6 +95,7 @@ public class JsopTokenizer {
     /**
      * Read a string.
      *
+     * @return the de-escaped string
      * @throws IllegalStateException if the token type doesn't match
      */
     public String readString() {

Modified: jackrabbit/sandbox/microkernel/src/main/java/org/apache/jackrabbit/mk/util/NonDescendingClock.java
URL: http://svn.apache.org/viewvc/jackrabbit/sandbox/microkernel/src/main/java/org/apache/jackrabbit/mk/util/NonDescendingClock.java?rev=1159568&r1=1159567&r2=1159568&view=diff
==============================================================================
--- jackrabbit/sandbox/microkernel/src/main/java/org/apache/jackrabbit/mk/util/NonDescendingClock.java
(original)
+++ jackrabbit/sandbox/microkernel/src/main/java/org/apache/jackrabbit/mk/util/NonDescendingClock.java
Fri Aug 19 10:08:07 2011
@@ -51,7 +51,7 @@ public class NonDescendingClock {
         long now = System.currentTimeMillis();
         if (now > last) {
             last = now;
-            count = 0;
+            count = MAX_REPEAT;
         } else {
             if (count-- <= 0) {
                 last++;
@@ -61,4 +61,13 @@ public class NonDescendingClock {
         return last;
     }
 
+    /**
+     * Get the maximum number of times the same time is returned.
+     *
+     * @return the count
+     */
+    int getRemainingCount() {
+        return count;
+    }
+
 }

Modified: jackrabbit/sandbox/microkernel/src/main/java/org/apache/jackrabbit/mk/util/StringUtils.java
URL: http://svn.apache.org/viewvc/jackrabbit/sandbox/microkernel/src/main/java/org/apache/jackrabbit/mk/util/StringUtils.java?rev=1159568&r1=1159567&r2=1159568&view=diff
==============================================================================
--- jackrabbit/sandbox/microkernel/src/main/java/org/apache/jackrabbit/mk/util/StringUtils.java
(original)
+++ jackrabbit/sandbox/microkernel/src/main/java/org/apache/jackrabbit/mk/util/StringUtils.java
Fri Aug 19 10:08:07 2011
@@ -43,16 +43,6 @@ public class StringUtils {
     }
 
     /**
-     * Append a number as two hex digits to the string builder.
-     *
-     * @param buff the string builder
-     * @param x the number to append
-     */
-    public static void appendHex(StringBuilder buff, int x) {
-        buff.append(HEX[x >> 4]).append(HEX[x & 0xf]);
-    }
-
-    /**
      * Convert a hex encoded string to a byte array.
      *
      * @param s the hex encoded string
@@ -78,7 +68,7 @@ public class StringUtils {
      * @param i the index
      * @return the number
      */
-    public static int getHexDigit(String s, int i) {
+    private static int getHexDigit(String s, int i) {
         char c = s.charAt(i);
         if (c >= '0' && c <= '9') {
             return c - '0';

Modified: jackrabbit/sandbox/microkernel/src/test/java/org/apache/jackrabbit/mk/HelloWorld.java
URL: http://svn.apache.org/viewvc/jackrabbit/sandbox/microkernel/src/test/java/org/apache/jackrabbit/mk/HelloWorld.java?rev=1159568&r1=1159567&r2=1159568&view=diff
==============================================================================
--- jackrabbit/sandbox/microkernel/src/test/java/org/apache/jackrabbit/mk/HelloWorld.java
(original)
+++ jackrabbit/sandbox/microkernel/src/test/java/org/apache/jackrabbit/mk/HelloWorld.java
Fri Aug 19 10:08:07 2011
@@ -16,19 +16,24 @@
  */
 package org.apache.jackrabbit.mk;
 
+import java.util.ArrayList;
 import org.apache.jackrabbit.mk.api.MicroKernel;
+import org.json.simple.JSONArray;
+import org.json.simple.JSONObject;
+import org.json.simple.parser.JSONParser;
+import org.json.simple.parser.ParseException;
 
 /**
  * A simple hello world app.
  */
 public class HelloWorld {
 
-    public static void main(String... args) {
-        test("mem:");
-        test("fs:{homeDir};clean");
+    public static void main(String... args) throws ParseException {
+       // test("mem:");
+       test("fs:{homeDir};clean");
     }
 
-    private static void test(String url) {
+    private static void test(String url) throws ParseException {
 
         MicroKernel mk = MicroKernelFactory.getInstance(url);
 
@@ -42,26 +47,30 @@ public class HelloWorld {
             head = mk.commit("/", "-\"test\"", head, null);
         }
 
-        head = mk.commit("/", "+\"foo\" : {\"bar\":{\"x\":\"100\"}}", head, null);
-        String s = mk.getNodes("/foo/bar", head);
-        System.out.println(s);
-
-        // head = mk.commit(null, "+\"/test\" : {\"name\":\"hello\"}", head);
-        head = mk.commit("/", "+\"test\" : {\"y\":\"true\", \"text\":[\"hello\", \"world\",
true]}", head, null);
-
-        // head = mk.commit(null, "+\"/test\" : {\"name\":\"hello\"}", head);
-        head = mk.commit("/", "^\"test/x\" : false", head, null);
-        head = mk.commit("/", "^\"test/x\" : null", head, null);
-
-        // head = mk.getHeadRevision();
-        s = mk.getNodes("/test", head);
-        // {":name":"test","name":"hello",":childNodeCount":0}
+        head = mk.commit("/", "+\"test\" : {\"x\":\"1\"}", head, null);
+        head = mk.commit("/", "-\"test\"", head, null);
+        head = mk.commit("/", "+\"test\" : {\"x\":\"1\"}", head, null);
+        head = mk.commit("/", "-\"test\" +\"test\" : {\"x\":\"2\"}", head, null);
 
-        System.out.println(s);
+        String revs = mk.getRevisions(0, 100);
 
-        head = mk.commit("/", "-\"test\"", head, null);
-        s = mk.getNodes("/", head);
-        System.out.println(s);
+        ArrayList<String> revList = new ArrayList<String>();
+        JSONParser p = new JSONParser();
+        JSONArray a = (JSONArray) p.parse(revs);
+        for (int i=0; i<a.size(); i++) {
+            JSONObject o = (JSONObject) a.get(i);
+            revList.add(o.get("id").toString());
+        }
+
+        String j;
+        j = mk.getJournal(revList.get(0), revList.get(revList.size() - 1));
+        System.out.println(j);
+        j = mk.getJournal(revList.get(0), revList.get(1));
+        System.out.println(j);
+        j = mk.getJournal(revList.get(1), revList.get(revList.size() - 1));
+        System.out.println(j);
+        j = mk.getJournal(revList.get(2), revList.get(revList.size() - 1));
+        System.out.println(j);
 
         mk.dispose();
 

Modified: jackrabbit/sandbox/microkernel/src/test/java/org/apache/jackrabbit/mk/json/JsopTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/sandbox/microkernel/src/test/java/org/apache/jackrabbit/mk/json/JsopTest.java?rev=1159568&r1=1159567&r2=1159568&view=diff
==============================================================================
--- jackrabbit/sandbox/microkernel/src/test/java/org/apache/jackrabbit/mk/json/JsopTest.java
(original)
+++ jackrabbit/sandbox/microkernel/src/test/java/org/apache/jackrabbit/mk/json/JsopTest.java
Fri Aug 19 10:08:07 2011
@@ -45,6 +45,26 @@ public class JsopTest extends TestCase {
         assertEquals("\\/Date(0)\\/", t.getEscapedToken());
     }
 
+    public void testNull() {
+        JsopTokenizer t = new JsopTokenizer("null");
+        assertEquals(null, t.read(JsopTokenizer.NULL));
+    }
+
+    public void testNumber() {
+        JsopTokenizer t = new JsopTokenizer("9/3:-3-:-/- 3");
+        assertEquals("9", t.read(JsopTokenizer.NUMBER));
+        t.read('/');
+        assertEquals("3", t.read(JsopTokenizer.NUMBER));
+        t.read(':');
+        assertEquals("-3", t.read(JsopTokenizer.NUMBER));
+        t.read('-');
+        t.read(':');
+        t.read('-');
+        t.read('/');
+        t.read('-');
+        t.read(JsopTokenizer.NUMBER);
+    }
+
     public void testRawValue() {
         JsopTokenizer t = new JsopTokenizer("{\"x\": [1], null, true, {\"y\": 1}, error}");
         t.read('{');
@@ -109,6 +129,8 @@ public class JsopTest extends TestCase {
         test(" {\n\n}\n", "{}");
         test(" {\n\"a\": /* test */ 10\n}\n", "{ \"a\": /* test */ 10}");
         test("+ - / ^ ", "+ - / ^");
+        test("/*/ comment /*/ ", "/*/ comment /*/");
+        test("/**/ /error//**/ ", "/**/ comment /**/");
 
         JsopTokenizer t = new JsopTokenizer("{}123");
         assertFalse(t.matches('+'));
@@ -228,8 +250,13 @@ public class JsopTest extends TestCase {
                 key("boolean").value(true).
                 key("null").value(null).
                 key("arr").array().
-                    value(1).
-                    value("42").
+                    array().
+                        value(1).
+                        value("\u001f ~ \u007f \u0080").
+                        value("42").
+                    endArray().
+                    array().
+                    endArray().
                 endArray().
             endObject().
             key("some").value("more").
@@ -238,9 +265,9 @@ public class JsopTest extends TestCase {
         String json = buff.toString();
         assertEquals("+ {\"foo\":\"bar\",\"int\":3,\"decimal\":3.0," +
                 "\"obj\":{\"boolean\":true,\"null\":null," +
-                "\"arr\":[1,\"42\"]},\"some\":\"more\"}", json);
+                "\"arr\":[[1,\"\\u001f ~ \\u007f \\u0080\",\"42\"],[]]},\"some\":\"more\"}",
json);
 
-        buff = new JsopBuilder();
+        buff.reset();
         buff.array().
             object().key("x").value("1").endObject().appendWhitespace("\n").
             object().key("y").value("2").endObject().appendWhitespace("\n").

Copied: jackrabbit/sandbox/microkernel/src/test/java/org/apache/jackrabbit/mk/util/IOUtilsTest.java
(from r1155401, jackrabbit/sandbox/microkernel/src/test/java/org/apache/jackrabbit/mk/util/UtilsTest.java)
URL: http://svn.apache.org/viewvc/jackrabbit/sandbox/microkernel/src/test/java/org/apache/jackrabbit/mk/util/IOUtilsTest.java?p2=jackrabbit/sandbox/microkernel/src/test/java/org/apache/jackrabbit/mk/util/IOUtilsTest.java&p1=jackrabbit/sandbox/microkernel/src/test/java/org/apache/jackrabbit/mk/util/UtilsTest.java&r1=1155401&r2=1159568&rev=1159568&view=diff
==============================================================================
--- jackrabbit/sandbox/microkernel/src/test/java/org/apache/jackrabbit/mk/util/UtilsTest.java
(original)
+++ jackrabbit/sandbox/microkernel/src/test/java/org/apache/jackrabbit/mk/util/IOUtilsTest.java
Fri Aug 19 10:08:07 2011
@@ -18,14 +18,69 @@ package org.apache.jackrabbit.mk.util;
 
 import java.io.ByteArrayInputStream;
 import java.io.ByteArrayOutputStream;
+import java.io.EOFException;
+import java.io.FilterInputStream;
 import java.io.IOException;
+import java.io.InputStream;
 import java.util.Random;
+import java.util.concurrent.atomic.AtomicInteger;
 import junit.framework.TestCase;
 
 /**
  * Test the utility classes.
  */
-public class UtilsTest extends TestCase {
+public class IOUtilsTest extends TestCase {
+
+    public void testReadFully() throws IOException {
+        final Random r = new Random(1);
+        byte[] data = new byte[1000];
+        final AtomicInteger readCount = new AtomicInteger();
+        r.nextBytes(data);
+        FilterInputStream in = new FilterInputStream(new ByteArrayInputStream(data)) {
+            public int read(byte[] buffer, int off, int max) throws IOException {
+                readCount.incrementAndGet();
+                if (r.nextInt(10) == 0) {
+                    return 0;
+                }
+                return in.read(buffer, off, Math.min(10, max));
+            }
+        };
+        in.mark(10000);
+        byte[] test = new byte[1000];
+
+        // readFully is not supposed to call read when reading 0 bytes
+        assertEquals(0, IOUtils.readFully(in, test, 0, 0));
+        assertEquals(0, readCount.get());
+
+        assertEquals(1000, IOUtils.readFully(in, test, 0, 1000));
+        StringUtilsTest.assertEquals(data, test);
+        test = new byte[1001];
+        in.reset();
+        in.mark(10000);
+        assertEquals(1000, IOUtils.readFully(in, test, 0, 1001));
+        assertEquals(0, IOUtils.readFully(in, test, 0, 0));
+    }
+
+    public void testSkipFully() throws IOException {
+        final Random r = new Random(1);
+        byte[] data = new byte[1000];
+        r.nextBytes(data);
+        FilterInputStream in = new FilterInputStream(new ByteArrayInputStream(data)) {
+            public int read(byte[] buffer, int off, int max) throws IOException {
+                return in.read(buffer, off, Math.min(10, max));
+            }
+        };
+        in.mark(10000);
+        IOUtils.skipFully(in, 1000);
+        assertEquals(-1, in.read());
+        in.reset();
+        try {
+            IOUtils.skipFully(in, 1001);
+            fail();
+        } catch (EOFException e) {
+            // expected
+        }
+    }
 
     public void testStringReadWrite() throws IOException {
         final Random r = new Random(1);
@@ -50,6 +105,13 @@ public class UtilsTest extends TestCase 
             assertEquals(s, t);
             assertEquals(-1, in.read());
         }
+        try {
+            InputStream in = new ByteArrayInputStream(new byte[]{1});
+            IOUtils.readString(in);
+            fail();
+        } catch (EOFException e) {
+            // expected
+        }
     }
 
     public void testVarInt() throws IOException {
@@ -71,10 +133,15 @@ public class UtilsTest extends TestCase 
             testVarInt(0x10000000 + x - 100, 0);
         }
         Random r = new Random(1);
-        for (int i=0; i < 100000; i++) {
+        for (int i = 0; i < 100000; i++) {
             testVarInt(r.nextInt(), 0);
             testVarInt(r.nextInt(10000000), 0);
         }
+
+        // trailing 0s are never written, but are an alternative way to encode a value
+        InputStream in = new ByteArrayInputStream(new byte[]{(byte) 0x80, 0});
+        assertEquals(0, IOUtils.readVarInt(in));
+        assertEquals(-1, in.read());
     }
 
     public void testVarLong() throws IOException {
@@ -108,6 +175,11 @@ public class UtilsTest extends TestCase 
             testVarLong(r.nextLong(), 0);
             testVarLong(r.nextInt(Integer.MAX_VALUE), 0);
         }
+
+        // trailing 0s are never written, but are an alternative way to encode a value
+        InputStream in = new ByteArrayInputStream(new byte[]{(byte) 0x80, 0});
+        assertEquals(0, IOUtils.readVarLong(in));
+        assertEquals(-1, in.read());
     }
 
 

Copied: jackrabbit/sandbox/microkernel/src/test/java/org/apache/jackrabbit/mk/util/NonDescendingClockTest.java
(from r1153492, jackrabbit/sandbox/microkernel/src/test/java/org/apache/jackrabbit/mk/ClockTest.java)
URL: http://svn.apache.org/viewvc/jackrabbit/sandbox/microkernel/src/test/java/org/apache/jackrabbit/mk/util/NonDescendingClockTest.java?p2=jackrabbit/sandbox/microkernel/src/test/java/org/apache/jackrabbit/mk/util/NonDescendingClockTest.java&p1=jackrabbit/sandbox/microkernel/src/test/java/org/apache/jackrabbit/mk/ClockTest.java&r1=1153492&r2=1159568&rev=1159568&view=diff
==============================================================================
--- jackrabbit/sandbox/microkernel/src/test/java/org/apache/jackrabbit/mk/ClockTest.java (original)
+++ jackrabbit/sandbox/microkernel/src/test/java/org/apache/jackrabbit/mk/util/NonDescendingClockTest.java
Fri Aug 19 10:08:07 2011
@@ -14,30 +14,35 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.jackrabbit.mk;
+package org.apache.jackrabbit.mk.util;
 
 import org.apache.jackrabbit.mk.util.NonDescendingClock;
 import junit.framework.TestCase;
 
-public class ClockTest extends TestCase {
+public class NonDescendingClockTest extends TestCase {
 
     public void test() throws InterruptedException {
         long last = System.currentTimeMillis() + 10000;
         NonDescendingClock c = new NonDescendingClock(last);
         for (int i = 0; i < 1000; i++) {
+            assertEquals(1000 - i, c.getRemainingCount());
             long n = c.time();
             assertEquals(last + 1, n);
         }
+        assertEquals(0, c.getRemainingCount());
         for (int i = 0; i < 1000; i++) {
             long n = c.time();
             assertEquals(last + 2, n);
+            assertEquals(1000 - i, c.getRemainingCount());
         }
+        assertEquals(1, c.getRemainingCount());
         long now = System.currentTimeMillis();
         c = new NonDescendingClock(now);
         for (int i = 0; i < 10; i++) {
             Thread.sleep(10);
             long x = c.time();
             assertTrue(x > now);
+            assertEquals(1000, c.getRemainingCount());
             now = x;
         }
     }

Added: jackrabbit/sandbox/microkernel/src/test/java/org/apache/jackrabbit/mk/util/StringUtilsTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/sandbox/microkernel/src/test/java/org/apache/jackrabbit/mk/util/StringUtilsTest.java?rev=1159568&view=auto
==============================================================================
--- jackrabbit/sandbox/microkernel/src/test/java/org/apache/jackrabbit/mk/util/StringUtilsTest.java
(added)
+++ jackrabbit/sandbox/microkernel/src/test/java/org/apache/jackrabbit/mk/util/StringUtilsTest.java
Fri Aug 19 10:08:07 2011
@@ -0,0 +1,51 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.jackrabbit.mk.util;
+
+import junit.framework.TestCase;
+
+/**
+ * Test the string utilities.
+ */
+public class StringUtilsTest extends TestCase {
+
+    public void testHex() {
+        assertEquals("0123", StringUtils.convertBytesToHex(new byte[] { (byte) 0x01, (byte)
0x23 }));
+        assertEquals("89bd", StringUtils.convertBytesToHex(new byte[] { (byte) 0x89, (byte)
0xbd }));
+        assertEquals("face", StringUtils.convertBytesToHex(new byte[] { (byte) 0xfa, (byte)
0xce }));
+        assertEquals(new byte[] { (byte) 0xfa, (byte) 0xce }, StringUtils.convertHexToBytes("face"));
+        assertEquals(new byte[] { (byte) 0xfa, (byte) 0xce }, StringUtils.convertHexToBytes("fAcE"));
+        assertEquals(new byte[] { (byte) 0xfa, (byte) 0xce }, StringUtils.convertHexToBytes("FaCe"));
+        assertEquals(new byte[] { (byte) 0x09, (byte) 0xaf }, StringUtils.convertHexToBytes("09af"));
+        for (String s : new String[]{"120", "1/", "9:", "fast", "a`", "ag", "0@", "aG"})
{
+            try {
+                StringUtils.convertHexToBytes(s);
+                fail();
+            } catch (IllegalArgumentException e) {
+                // expected
+            }
+        }
+    }
+
+    public static void assertEquals(byte[] expected, byte[] got) {
+        assertEquals(expected.length, got.length);
+        for (int i = 0; i < got.length; i++) {
+            assertEquals(expected[i], got[i]);
+        }
+    }
+
+}



Mime
View raw message