diff --git a/src/test/java/tools/jackson/core/JUnit5TestBase.java b/src/test/java/tools/jackson/core/JUnit5TestBase.java index a93fe86cc8..c3a6a564f9 100644 --- a/src/test/java/tools/jackson/core/JUnit5TestBase.java +++ b/src/test/java/tools/jackson/core/JUnit5TestBase.java @@ -2,23 +2,21 @@ import java.io.*; import java.nio.charset.StandardCharsets; -import java.util.Arrays; -import tools.jackson.core.io.IOContext; import tools.jackson.core.json.JsonFactory; import tools.jackson.core.json.JsonFactoryBuilder; -import tools.jackson.core.testsupport.MockDataInput; -import tools.jackson.core.testsupport.TestSupport; -import tools.jackson.core.testsupport.ThrottledInputStream; -import tools.jackson.core.testsupport.ThrottledReader; - -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.fail; +import tools.jackson.core.testutil.MockDataInput; +import tools.jackson.core.testutil.JacksonTestUtilBase; +import tools.jackson.core.testutil.ThrottledInputStream; +import tools.jackson.core.testutil.ThrottledReader; /** - * Replacement of JUnit4-based {@code BaseTest} + * Base class for Jackson-core unit tests, using JUnit 5. + *

+ * NOTE: replacement of Jackson 2.x JUnit4-based {@code BaseTest} */ public class JUnit5TestBase + extends JacksonTestUtilBase { protected final static String FIELD_BASENAME = "f"; @@ -96,9 +94,6 @@ public class JUnit5TestBase protected final static JsonFactory JSON_FACTORY = new JsonFactory(); - - - /* /********************************************************************** /* Factory methods @@ -246,10 +241,6 @@ public static JsonGenerator createGenerator(TokenStreamFactory f, Writer w) thro /********************************************************************** */ - public static IOContext testIOContext() { - return TestSupport.testIOContext(); - } - protected void writeJsonDoc(JsonFactory f, String doc, JsonGenerator g) throws IOException { try (JsonParser p = f.createParser(ObjectReadContext.empty(), a2q(doc))) { @@ -260,109 +251,12 @@ protected void writeJsonDoc(JsonFactory f, String doc, JsonGenerator g) throws I } } - /* - /********************************************************************** - /* Assertions - /********************************************************************** - */ - - protected void assertToken(JsonToken expToken, JsonToken actToken) - { - if (actToken != expToken) { - fail("Expected token "+expToken+", current token "+actToken); - } - } - - protected void assertToken(JsonToken expToken, JsonParser p) - { - assertToken(expToken, p.currentToken()); - } - - /** - * @param e Exception to check - * @param anyMatches Array of Strings of which AT LEAST ONE ("any") has to be included - * in {@code e.getMessage()} -- using case-INSENSITIVE comparison - */ - public static void verifyException(Throwable e, String... anyMatches) - { - String msg = e.getMessage(); - String lmsg = (msg == null) ? "" : msg.toLowerCase(); - for (String match : anyMatches) { - String lmatch = match.toLowerCase(); - if (lmsg.indexOf(lmatch) >= 0) { - return; - } - } - fail("Expected an exception with one of substrings ("+Arrays.asList(anyMatches)+"): got one with message \""+msg+"\""); - } - - /** - * Method that gets textual contents of the current token using - * available methods, and ensures results are consistent, before - * returning them - */ - public static String getAndVerifyText(JsonParser p) - { - // Ok, let's verify other accessors - int actLen = p.getStringLength(); - char[] ch = p.getStringCharacters(); - String str2 = new String(ch, p.getStringOffset(), actLen); - String str = p.getString(); - - if (str.length() != actLen) { - fail("Internal problem (p.token == "+p.currentToken()+"): p.getText().length() ['"+str+"'] == "+str.length()+"; p.getTextLength() == "+actLen); - } - assertEquals(str, str2, "String access via getText(), getTextXxx() must be the same"); - - return str; - } - - /* - /********************************************************************** - /* Escaping/quoting - /********************************************************************** - */ - - protected String q(String str) { - return '"'+str+'"'; - } - - public static String a2q(String json) { - return json.replace('\'', '"'); - } - - public static byte[] encodeInUTF32BE(String input) - { - int len = input.length(); - byte[] result = new byte[len * 4]; - int ptr = 0; - for (int i = 0; i < len; ++i, ptr += 4) { - char c = input.charAt(i); - result[ptr] = result[ptr+1] = (byte) 0; - result[ptr+2] = (byte) (c >> 8); - result[ptr+3] = (byte) c; - } - return result; - } - /* /********************************************************************** /* Misc other /********************************************************************** */ - protected ObjectReadContext testObjectReadContext() { - return ObjectReadContext.empty(); - } - - protected static byte[] utf8Bytes(String str) { - return str.getBytes(StandardCharsets.UTF_8); - } - - protected String utf8String(ByteArrayOutputStream bytes) { - return new String(bytes.toByteArray(), StandardCharsets.UTF_8); - } - public static String fieldNameFor(int index) { StringBuilder sb = new StringBuilder(16); @@ -414,57 +308,4 @@ protected int[] calcQuads(byte[] wordBytes) { } return result; } - - /* - /********************************************************************** - /* Content reading, serialization - /********************************************************************** - */ - - public static byte[] readResource(String ref) - { - ByteArrayOutputStream bytes = new ByteArrayOutputStream(); - final byte[] buf = new byte[4000]; - - InputStream in = JUnit5TestBase.class.getResourceAsStream(ref); - if (in != null) { - try { - int len; - while ((len = in.read(buf)) > 0) { - bytes.write(buf, 0, len); - } - in.close(); - } catch (IOException e) { - throw new RuntimeException("Failed to read resource '"+ref+"': "+e); - } - } - if (bytes.size() == 0) { - throw new IllegalArgumentException("Failed to read resource '"+ref+"': empty resource?"); - } - return bytes.toByteArray(); - } - - public static byte[] jdkSerialize(Object o) throws IOException - { - ByteArrayOutputStream bytes = new ByteArrayOutputStream(1000); - ObjectOutputStream obOut = new ObjectOutputStream(bytes); - obOut.writeObject(o); - obOut.close(); - return bytes.toByteArray(); - } - - @SuppressWarnings("unchecked") - public static T jdkDeserialize(byte[] raw) throws IOException - { - ObjectInputStream objIn = new ObjectInputStream(new ByteArrayInputStream(raw)); - try { - return (T) objIn.readObject(); - } catch (ClassNotFoundException e) { - fail("Missing class: "+e.getMessage()); - return null; - } finally { - objIn.close(); - } - } - } diff --git a/src/test/java/tools/jackson/core/async/AsyncTestBase.java b/src/test/java/tools/jackson/core/async/AsyncTestBase.java index b2fb545411..719059a68f 100644 --- a/src/test/java/tools/jackson/core/async/AsyncTestBase.java +++ b/src/test/java/tools/jackson/core/async/AsyncTestBase.java @@ -2,9 +2,9 @@ import tools.jackson.core.*; import tools.jackson.core.json.JsonFactory; -import tools.jackson.core.testsupport.AsyncReaderWrapper; -import tools.jackson.core.testsupport.AsyncReaderWrapperForByteArray; -import tools.jackson.core.testsupport.AsyncReaderWrapperForByteBuffer; +import tools.jackson.core.testutil.AsyncReaderWrapper; +import tools.jackson.core.testutil.AsyncReaderWrapperForByteArray; +import tools.jackson.core.testutil.AsyncReaderWrapperForByteBuffer; public abstract class AsyncTestBase extends JUnit5TestBase { diff --git a/src/test/java/tools/jackson/core/base64/Base64GenerationTest.java b/src/test/java/tools/jackson/core/base64/Base64GenerationTest.java index f5298c049a..5d9179fa60 100644 --- a/src/test/java/tools/jackson/core/base64/Base64GenerationTest.java +++ b/src/test/java/tools/jackson/core/base64/Base64GenerationTest.java @@ -6,7 +6,7 @@ import tools.jackson.core.*; import tools.jackson.core.json.JsonFactory; -import tools.jackson.core.testsupport.ThrottledInputStream; +import tools.jackson.core.testutil.ThrottledInputStream; import static org.junit.jupiter.api.Assertions.assertEquals; diff --git a/src/test/java/tools/jackson/core/constraints/LargeDocReadTest.java b/src/test/java/tools/jackson/core/constraints/LargeDocReadTest.java index 544912b769..486ca632df 100644 --- a/src/test/java/tools/jackson/core/constraints/LargeDocReadTest.java +++ b/src/test/java/tools/jackson/core/constraints/LargeDocReadTest.java @@ -8,7 +8,7 @@ import tools.jackson.core.async.AsyncTestBase; import tools.jackson.core.exc.StreamConstraintsException; import tools.jackson.core.json.JsonFactory; -import tools.jackson.core.testsupport.AsyncReaderWrapper; +import tools.jackson.core.testutil.AsyncReaderWrapper; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.fail; diff --git a/src/test/java/tools/jackson/core/fuzz/Fuzz32208UTF32ParseTest.java b/src/test/java/tools/jackson/core/fuzz/Fuzz32208UTF32ParseTest.java index 1d847c34f3..09757a9cda 100644 --- a/src/test/java/tools/jackson/core/fuzz/Fuzz32208UTF32ParseTest.java +++ b/src/test/java/tools/jackson/core/fuzz/Fuzz32208UTF32ParseTest.java @@ -10,7 +10,7 @@ import tools.jackson.core.exc.JacksonIOException; import tools.jackson.core.io.UTF32Reader; import tools.jackson.core.json.JsonFactory; -import tools.jackson.core.testsupport.ThrottledInputStream; +import tools.jackson.core.testutil.ThrottledInputStream; import static org.junit.jupiter.api.Assertions.fail; diff --git a/src/test/java/tools/jackson/core/fuzz/Fuzz52688ParseTest.java b/src/test/java/tools/jackson/core/fuzz/Fuzz52688ParseTest.java index f6c48d1c43..7be61255b6 100644 --- a/src/test/java/tools/jackson/core/fuzz/Fuzz52688ParseTest.java +++ b/src/test/java/tools/jackson/core/fuzz/Fuzz52688ParseTest.java @@ -8,7 +8,7 @@ import tools.jackson.core.*; import tools.jackson.core.exc.StreamReadException; import tools.jackson.core.json.JsonFactory; -import tools.jackson.core.testsupport.ThrottledInputStream; +import tools.jackson.core.testutil.ThrottledInputStream; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.fail; diff --git a/src/test/java/tools/jackson/core/json/JsonParserClosedCaseTest.java b/src/test/java/tools/jackson/core/json/JsonParserClosedCaseTest.java index 77bf227f9a..0f8648ebf1 100644 --- a/src/test/java/tools/jackson/core/json/JsonParserClosedCaseTest.java +++ b/src/test/java/tools/jackson/core/json/JsonParserClosedCaseTest.java @@ -11,7 +11,7 @@ import tools.jackson.core.JsonParser; import tools.jackson.core.ObjectReadContext; import tools.jackson.core.io.SerializedString; -import tools.jackson.core.testsupport.MockDataInput; +import tools.jackson.core.testutil.MockDataInput; import static org.junit.jupiter.api.Assertions.assertFalse; import static org.junit.jupiter.api.Assertions.assertNull; diff --git a/src/test/java/tools/jackson/core/json/async/AsyncBinaryParseTest.java b/src/test/java/tools/jackson/core/json/async/AsyncBinaryParseTest.java index 9deabf75c4..3dd6de956a 100644 --- a/src/test/java/tools/jackson/core/json/async/AsyncBinaryParseTest.java +++ b/src/test/java/tools/jackson/core/json/async/AsyncBinaryParseTest.java @@ -7,7 +7,7 @@ import tools.jackson.core.*; import tools.jackson.core.async.AsyncTestBase; import tools.jackson.core.json.JsonFactory; -import tools.jackson.core.testsupport.AsyncReaderWrapper; +import tools.jackson.core.testutil.AsyncReaderWrapper; import static org.junit.jupiter.api.Assertions.*; diff --git a/src/test/java/tools/jackson/core/json/async/AsyncCharEscapingTest.java b/src/test/java/tools/jackson/core/json/async/AsyncCharEscapingTest.java index ed83b61af8..4c45fe2501 100644 --- a/src/test/java/tools/jackson/core/json/async/AsyncCharEscapingTest.java +++ b/src/test/java/tools/jackson/core/json/async/AsyncCharEscapingTest.java @@ -6,7 +6,7 @@ import tools.jackson.core.async.AsyncTestBase; import tools.jackson.core.exc.StreamReadException; import tools.jackson.core.json.JsonFactory; -import tools.jackson.core.testsupport.AsyncReaderWrapper; +import tools.jackson.core.testutil.AsyncReaderWrapper; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.fail; diff --git a/src/test/java/tools/jackson/core/json/async/AsyncCommentParsingTest.java b/src/test/java/tools/jackson/core/json/async/AsyncCommentParsingTest.java index f462304ba9..0b728a0f0e 100644 --- a/src/test/java/tools/jackson/core/json/async/AsyncCommentParsingTest.java +++ b/src/test/java/tools/jackson/core/json/async/AsyncCommentParsingTest.java @@ -9,7 +9,7 @@ import tools.jackson.core.exc.StreamReadException; import tools.jackson.core.json.JsonFactory; import tools.jackson.core.json.JsonReadFeature; -import tools.jackson.core.testsupport.AsyncReaderWrapper; +import tools.jackson.core.testutil.AsyncReaderWrapper; import static org.junit.jupiter.api.Assertions.*; diff --git a/src/test/java/tools/jackson/core/json/async/AsyncConcurrencyByteBufferTest.java b/src/test/java/tools/jackson/core/json/async/AsyncConcurrencyByteBufferTest.java index ec76788b07..c06f50c444 100644 --- a/src/test/java/tools/jackson/core/json/async/AsyncConcurrencyByteBufferTest.java +++ b/src/test/java/tools/jackson/core/json/async/AsyncConcurrencyByteBufferTest.java @@ -2,7 +2,7 @@ import java.io.IOException; -import tools.jackson.core.testsupport.AsyncReaderWrapper; +import tools.jackson.core.testutil.AsyncReaderWrapper; public class AsyncConcurrencyByteBufferTest extends AsyncConcurrencyTest { diff --git a/src/test/java/tools/jackson/core/json/async/AsyncConcurrencyTest.java b/src/test/java/tools/jackson/core/json/async/AsyncConcurrencyTest.java index c642088a56..378a664743 100644 --- a/src/test/java/tools/jackson/core/json/async/AsyncConcurrencyTest.java +++ b/src/test/java/tools/jackson/core/json/async/AsyncConcurrencyTest.java @@ -11,7 +11,7 @@ import tools.jackson.core.*; import tools.jackson.core.async.AsyncTestBase; import tools.jackson.core.json.JsonFactory; -import tools.jackson.core.testsupport.AsyncReaderWrapper; +import tools.jackson.core.testutil.AsyncReaderWrapper; import static org.junit.jupiter.api.Assertions.fail; diff --git a/src/test/java/tools/jackson/core/json/async/AsyncInvalidCharsTest.java b/src/test/java/tools/jackson/core/json/async/AsyncInvalidCharsTest.java index e9207edbba..ad106e5e73 100644 --- a/src/test/java/tools/jackson/core/json/async/AsyncInvalidCharsTest.java +++ b/src/test/java/tools/jackson/core/json/async/AsyncInvalidCharsTest.java @@ -8,7 +8,7 @@ import tools.jackson.core.async.AsyncTestBase; import tools.jackson.core.exc.StreamReadException; import tools.jackson.core.json.JsonFactory; -import tools.jackson.core.testsupport.AsyncReaderWrapper; +import tools.jackson.core.testutil.AsyncReaderWrapper; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.fail; diff --git a/src/test/java/tools/jackson/core/json/async/AsyncMissingValuesInArrayTest.java b/src/test/java/tools/jackson/core/json/async/AsyncMissingValuesInArrayTest.java index ca2fc3f1a1..43374e9a42 100644 --- a/src/test/java/tools/jackson/core/json/async/AsyncMissingValuesInArrayTest.java +++ b/src/test/java/tools/jackson/core/json/async/AsyncMissingValuesInArrayTest.java @@ -11,7 +11,7 @@ import tools.jackson.core.json.JsonFactory; import tools.jackson.core.json.JsonFactoryBuilder; import tools.jackson.core.json.JsonReadFeature; -import tools.jackson.core.testsupport.AsyncReaderWrapper; +import tools.jackson.core.testutil.AsyncReaderWrapper; import static org.junit.jupiter.api.Assertions.*; diff --git a/src/test/java/tools/jackson/core/json/async/AsyncMissingValuesInObjectTest.java b/src/test/java/tools/jackson/core/json/async/AsyncMissingValuesInObjectTest.java index 19afe225b4..c063e0374c 100644 --- a/src/test/java/tools/jackson/core/json/async/AsyncMissingValuesInObjectTest.java +++ b/src/test/java/tools/jackson/core/json/async/AsyncMissingValuesInObjectTest.java @@ -11,7 +11,7 @@ import tools.jackson.core.json.JsonFactory; import tools.jackson.core.json.JsonFactoryBuilder; import tools.jackson.core.json.JsonReadFeature; -import tools.jackson.core.testsupport.AsyncReaderWrapper; +import tools.jackson.core.testutil.AsyncReaderWrapper; import static org.junit.jupiter.api.Assertions.*; diff --git a/src/test/java/tools/jackson/core/json/async/AsyncNaNHandlingTest.java b/src/test/java/tools/jackson/core/json/async/AsyncNaNHandlingTest.java index 015886000d..ab6da52f1c 100644 --- a/src/test/java/tools/jackson/core/json/async/AsyncNaNHandlingTest.java +++ b/src/test/java/tools/jackson/core/json/async/AsyncNaNHandlingTest.java @@ -8,7 +8,7 @@ import tools.jackson.core.async.AsyncTestBase; import tools.jackson.core.json.JsonFactory; import tools.jackson.core.json.JsonReadFeature; -import tools.jackson.core.testsupport.AsyncReaderWrapper; +import tools.jackson.core.testutil.AsyncReaderWrapper; import static org.junit.jupiter.api.Assertions.*; diff --git a/src/test/java/tools/jackson/core/json/async/AsyncNonStandardNumberParsingTest.java b/src/test/java/tools/jackson/core/json/async/AsyncNonStandardNumberParsingTest.java index 2bd01030ce..f6fd3f8f5c 100644 --- a/src/test/java/tools/jackson/core/json/async/AsyncNonStandardNumberParsingTest.java +++ b/src/test/java/tools/jackson/core/json/async/AsyncNonStandardNumberParsingTest.java @@ -9,7 +9,7 @@ import tools.jackson.core.exc.StreamReadException; import tools.jackson.core.json.JsonFactory; import tools.jackson.core.json.JsonReadFeature; -import tools.jackson.core.testsupport.AsyncReaderWrapper; +import tools.jackson.core.testutil.AsyncReaderWrapper; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.fail; diff --git a/src/test/java/tools/jackson/core/json/async/AsyncNonStdNumberHandlingTest.java b/src/test/java/tools/jackson/core/json/async/AsyncNonStdNumberHandlingTest.java index 631accf41c..f8d1171990 100644 --- a/src/test/java/tools/jackson/core/json/async/AsyncNonStdNumberHandlingTest.java +++ b/src/test/java/tools/jackson/core/json/async/AsyncNonStdNumberHandlingTest.java @@ -7,7 +7,7 @@ import tools.jackson.core.exc.StreamReadException; import tools.jackson.core.json.JsonFactory; import tools.jackson.core.json.JsonReadFeature; -import tools.jackson.core.testsupport.AsyncReaderWrapper; +import tools.jackson.core.testutil.AsyncReaderWrapper; import static org.junit.jupiter.api.Assertions.*; diff --git a/src/test/java/tools/jackson/core/json/async/AsyncNonStdParsingTest.java b/src/test/java/tools/jackson/core/json/async/AsyncNonStdParsingTest.java index 05fa5a0a03..9693f28634 100644 --- a/src/test/java/tools/jackson/core/json/async/AsyncNonStdParsingTest.java +++ b/src/test/java/tools/jackson/core/json/async/AsyncNonStdParsingTest.java @@ -7,7 +7,7 @@ import tools.jackson.core.exc.StreamReadException; import tools.jackson.core.json.JsonFactory; import tools.jackson.core.json.JsonReadFeature; -import tools.jackson.core.testsupport.AsyncReaderWrapper; +import tools.jackson.core.testutil.AsyncReaderWrapper; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.fail; diff --git a/src/test/java/tools/jackson/core/json/async/AsyncNumberCoercionTest.java b/src/test/java/tools/jackson/core/json/async/AsyncNumberCoercionTest.java index 908607ba96..5e0f5c0c05 100644 --- a/src/test/java/tools/jackson/core/json/async/AsyncNumberCoercionTest.java +++ b/src/test/java/tools/jackson/core/json/async/AsyncNumberCoercionTest.java @@ -11,7 +11,7 @@ import tools.jackson.core.async.AsyncTestBase; import tools.jackson.core.exc.InputCoercionException; import tools.jackson.core.json.JsonFactory; -import tools.jackson.core.testsupport.AsyncReaderWrapper; +import tools.jackson.core.testutil.AsyncReaderWrapper; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.fail; diff --git a/src/test/java/tools/jackson/core/json/async/AsyncNumberDeferredReadTest.java b/src/test/java/tools/jackson/core/json/async/AsyncNumberDeferredReadTest.java index 2bc8d04777..6f35f13f25 100644 --- a/src/test/java/tools/jackson/core/json/async/AsyncNumberDeferredReadTest.java +++ b/src/test/java/tools/jackson/core/json/async/AsyncNumberDeferredReadTest.java @@ -10,7 +10,7 @@ import tools.jackson.core.JsonParser.NumberType; import tools.jackson.core.async.AsyncTestBase; import tools.jackson.core.json.JsonFactory; -import tools.jackson.core.testsupport.AsyncReaderWrapper; +import tools.jackson.core.testutil.AsyncReaderWrapper; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertNull; diff --git a/src/test/java/tools/jackson/core/json/async/AsyncParserNamesTest.java b/src/test/java/tools/jackson/core/json/async/AsyncParserNamesTest.java index 68ea2e8cf3..00cb6ea130 100644 --- a/src/test/java/tools/jackson/core/json/async/AsyncParserNamesTest.java +++ b/src/test/java/tools/jackson/core/json/async/AsyncParserNamesTest.java @@ -9,7 +9,7 @@ import tools.jackson.core.async.AsyncTestBase; import tools.jackson.core.json.JsonFactory; import tools.jackson.core.sym.ByteQuadsCanonicalizer; -import tools.jackson.core.testsupport.AsyncReaderWrapper; +import tools.jackson.core.testutil.AsyncReaderWrapper; import static org.junit.jupiter.api.Assertions.*; diff --git a/src/test/java/tools/jackson/core/json/async/AsyncPointerFromContext563Test.java b/src/test/java/tools/jackson/core/json/async/AsyncPointerFromContext563Test.java index fbb70dd103..4e366608f3 100644 --- a/src/test/java/tools/jackson/core/json/async/AsyncPointerFromContext563Test.java +++ b/src/test/java/tools/jackson/core/json/async/AsyncPointerFromContext563Test.java @@ -5,7 +5,7 @@ import tools.jackson.core.*; import tools.jackson.core.async.AsyncTestBase; import tools.jackson.core.json.JsonFactory; -import tools.jackson.core.testsupport.AsyncReaderWrapper; +import tools.jackson.core.testutil.AsyncReaderWrapper; import static org.junit.jupiter.api.Assertions.*; diff --git a/src/test/java/tools/jackson/core/json/async/AsyncPropertyNamesTest.java b/src/test/java/tools/jackson/core/json/async/AsyncPropertyNamesTest.java index 276a4e0780..6700bcc474 100644 --- a/src/test/java/tools/jackson/core/json/async/AsyncPropertyNamesTest.java +++ b/src/test/java/tools/jackson/core/json/async/AsyncPropertyNamesTest.java @@ -8,7 +8,7 @@ import tools.jackson.core.async.AsyncTestBase; import tools.jackson.core.json.JsonFactory; import tools.jackson.core.json.JsonReadFeature; -import tools.jackson.core.testsupport.AsyncReaderWrapper; +import tools.jackson.core.testutil.AsyncReaderWrapper; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertNull; diff --git a/src/test/java/tools/jackson/core/json/async/AsyncRootNumbersTest.java b/src/test/java/tools/jackson/core/json/async/AsyncRootNumbersTest.java index 440e2ab090..7acd61d49d 100644 --- a/src/test/java/tools/jackson/core/json/async/AsyncRootNumbersTest.java +++ b/src/test/java/tools/jackson/core/json/async/AsyncRootNumbersTest.java @@ -7,7 +7,7 @@ import tools.jackson.core.*; import tools.jackson.core.async.AsyncTestBase; import tools.jackson.core.json.JsonFactory; -import tools.jackson.core.testsupport.AsyncReaderWrapper; +import tools.jackson.core.testutil.AsyncReaderWrapper; import static org.junit.jupiter.api.Assertions.*; diff --git a/src/test/java/tools/jackson/core/json/async/AsyncRootValuesTest.java b/src/test/java/tools/jackson/core/json/async/AsyncRootValuesTest.java index 1b508c7267..cd4b9eae00 100644 --- a/src/test/java/tools/jackson/core/json/async/AsyncRootValuesTest.java +++ b/src/test/java/tools/jackson/core/json/async/AsyncRootValuesTest.java @@ -8,7 +8,7 @@ import tools.jackson.core.*; import tools.jackson.core.async.AsyncTestBase; import tools.jackson.core.json.JsonFactory; -import tools.jackson.core.testsupport.AsyncReaderWrapper; +import tools.jackson.core.testutil.AsyncReaderWrapper; import static org.junit.jupiter.api.Assertions.*; diff --git a/src/test/java/tools/jackson/core/json/async/AsyncScalarArrayTest.java b/src/test/java/tools/jackson/core/json/async/AsyncScalarArrayTest.java index f9a3a47bb0..630c0abe81 100644 --- a/src/test/java/tools/jackson/core/json/async/AsyncScalarArrayTest.java +++ b/src/test/java/tools/jackson/core/json/async/AsyncScalarArrayTest.java @@ -10,7 +10,7 @@ import tools.jackson.core.JsonParser.NumberType; import tools.jackson.core.async.AsyncTestBase; import tools.jackson.core.json.JsonFactory; -import tools.jackson.core.testsupport.AsyncReaderWrapper; +import tools.jackson.core.testutil.AsyncReaderWrapper; import static org.junit.jupiter.api.Assertions.*; diff --git a/src/test/java/tools/jackson/core/json/async/AsyncScopeMatchingTest.java b/src/test/java/tools/jackson/core/json/async/AsyncScopeMatchingTest.java index 0641de7110..e72dc4cc5f 100644 --- a/src/test/java/tools/jackson/core/json/async/AsyncScopeMatchingTest.java +++ b/src/test/java/tools/jackson/core/json/async/AsyncScopeMatchingTest.java @@ -6,7 +6,7 @@ import tools.jackson.core.async.AsyncTestBase; import tools.jackson.core.exc.StreamReadException; import tools.jackson.core.json.JsonFactory; -import tools.jackson.core.testsupport.AsyncReaderWrapper; +import tools.jackson.core.testutil.AsyncReaderWrapper; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.fail; diff --git a/src/test/java/tools/jackson/core/json/async/AsyncSimpleNestedTest.java b/src/test/java/tools/jackson/core/json/async/AsyncSimpleNestedTest.java index 4498c085f9..9fab73f434 100644 --- a/src/test/java/tools/jackson/core/json/async/AsyncSimpleNestedTest.java +++ b/src/test/java/tools/jackson/core/json/async/AsyncSimpleNestedTest.java @@ -6,7 +6,7 @@ import tools.jackson.core.async.AsyncTestBase; import tools.jackson.core.exc.StreamReadException; import tools.jackson.core.json.JsonFactory; -import tools.jackson.core.testsupport.AsyncReaderWrapper; +import tools.jackson.core.testutil.AsyncReaderWrapper; import static org.junit.jupiter.api.Assertions.*; diff --git a/src/test/java/tools/jackson/core/json/async/AsyncSimpleObjectTest.java b/src/test/java/tools/jackson/core/json/async/AsyncSimpleObjectTest.java index c28a5d0361..7598f389de 100644 --- a/src/test/java/tools/jackson/core/json/async/AsyncSimpleObjectTest.java +++ b/src/test/java/tools/jackson/core/json/async/AsyncSimpleObjectTest.java @@ -11,7 +11,7 @@ import tools.jackson.core.exc.InputCoercionException; import tools.jackson.core.exc.StreamReadException; import tools.jackson.core.json.JsonFactory; -import tools.jackson.core.testsupport.AsyncReaderWrapper; +import tools.jackson.core.testutil.AsyncReaderWrapper; import static org.junit.jupiter.api.Assertions.*; diff --git a/src/test/java/tools/jackson/core/json/async/AsyncStringArrayTest.java b/src/test/java/tools/jackson/core/json/async/AsyncStringArrayTest.java index 7fe2a0fc96..3dd4e50462 100644 --- a/src/test/java/tools/jackson/core/json/async/AsyncStringArrayTest.java +++ b/src/test/java/tools/jackson/core/json/async/AsyncStringArrayTest.java @@ -8,7 +8,7 @@ import tools.jackson.core.*; import tools.jackson.core.async.AsyncTestBase; import tools.jackson.core.json.JsonFactory; -import tools.jackson.core.testsupport.AsyncReaderWrapper; +import tools.jackson.core.testutil.AsyncReaderWrapper; import static org.junit.jupiter.api.Assertions.*; diff --git a/src/test/java/tools/jackson/core/json/async/AsyncStringObjectTest.java b/src/test/java/tools/jackson/core/json/async/AsyncStringObjectTest.java index a71ffe8ee2..795b4f34fd 100644 --- a/src/test/java/tools/jackson/core/json/async/AsyncStringObjectTest.java +++ b/src/test/java/tools/jackson/core/json/async/AsyncStringObjectTest.java @@ -7,7 +7,7 @@ import tools.jackson.core.*; import tools.jackson.core.async.AsyncTestBase; import tools.jackson.core.json.JsonFactory; -import tools.jackson.core.testsupport.AsyncReaderWrapper; +import tools.jackson.core.testutil.AsyncReaderWrapper; import static org.junit.jupiter.api.Assertions.*; diff --git a/src/test/java/tools/jackson/core/json/async/AsyncUnicodeHandlingTest.java b/src/test/java/tools/jackson/core/json/async/AsyncUnicodeHandlingTest.java index 4ef3c2ac29..6bb3257bac 100644 --- a/src/test/java/tools/jackson/core/json/async/AsyncUnicodeHandlingTest.java +++ b/src/test/java/tools/jackson/core/json/async/AsyncUnicodeHandlingTest.java @@ -7,7 +7,7 @@ import tools.jackson.core.*; import tools.jackson.core.async.AsyncTestBase; import tools.jackson.core.json.JsonFactory; -import tools.jackson.core.testsupport.AsyncReaderWrapper; +import tools.jackson.core.testutil.AsyncReaderWrapper; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertNull; diff --git a/src/test/java/tools/jackson/core/json/async/ConfigTest.java b/src/test/java/tools/jackson/core/json/async/ConfigTest.java index b509756aa0..9e91bd731e 100644 --- a/src/test/java/tools/jackson/core/json/async/ConfigTest.java +++ b/src/test/java/tools/jackson/core/json/async/ConfigTest.java @@ -7,7 +7,7 @@ import tools.jackson.core.*; import tools.jackson.core.async.AsyncTestBase; import tools.jackson.core.json.JsonFactory; -import tools.jackson.core.testsupport.AsyncReaderWrapper; +import tools.jackson.core.testutil.AsyncReaderWrapper; import static org.junit.jupiter.api.Assertions.*; diff --git a/src/test/java/tools/jackson/core/read/SimpleParserTest.java b/src/test/java/tools/jackson/core/read/SimpleParserTest.java index e767e2ac54..9e62b35697 100644 --- a/src/test/java/tools/jackson/core/read/SimpleParserTest.java +++ b/src/test/java/tools/jackson/core/read/SimpleParserTest.java @@ -10,7 +10,7 @@ import tools.jackson.core.*; import tools.jackson.core.exc.StreamReadException; import tools.jackson.core.json.JsonFactory; -import tools.jackson.core.testsupport.MockDataInput; +import tools.jackson.core.testutil.MockDataInput; import tools.jackson.core.util.JsonParserDelegate; import static org.junit.jupiter.api.Assertions.*; diff --git a/src/test/java/tools/jackson/core/testsupport/TestSupport.java b/src/test/java/tools/jackson/core/testsupport/TestSupport.java deleted file mode 100644 index 0bbce2e005..0000000000 --- a/src/test/java/tools/jackson/core/testsupport/TestSupport.java +++ /dev/null @@ -1,29 +0,0 @@ -package tools.jackson.core.testsupport; - -import tools.jackson.core.*; -import tools.jackson.core.io.ContentReference; -import tools.jackson.core.io.IOContext; -import tools.jackson.core.util.BufferRecycler; - -/** - * Container for various factories needed by (unit) tests. - */ -public class TestSupport -{ - /** - * Factory method for creating {@link IOContext}s for tests - */ - public static IOContext testIOContext() { - return testIOContext(StreamReadConstraints.defaults(), - StreamWriteConstraints.defaults(), - ErrorReportConfiguration.defaults()); - } - - private static IOContext testIOContext(StreamReadConstraints src, - StreamWriteConstraints swc, - ErrorReportConfiguration erc) { - return new IOContext(src, swc, erc, - new BufferRecycler(), ContentReference.unknown(), false, - JsonEncoding.UTF8); - } -} diff --git a/src/test/java/tools/jackson/core/testsupport/AsyncReaderWrapper.java b/src/test/java/tools/jackson/core/testutil/AsyncReaderWrapper.java similarity index 98% rename from src/test/java/tools/jackson/core/testsupport/AsyncReaderWrapper.java rename to src/test/java/tools/jackson/core/testutil/AsyncReaderWrapper.java index debaf3916e..49786ae693 100644 --- a/src/test/java/tools/jackson/core/testsupport/AsyncReaderWrapper.java +++ b/src/test/java/tools/jackson/core/testutil/AsyncReaderWrapper.java @@ -1,4 +1,4 @@ -package tools.jackson.core.testsupport; +package tools.jackson.core.testutil; import java.io.StringWriter; import java.math.BigDecimal; diff --git a/src/test/java/tools/jackson/core/testsupport/AsyncReaderWrapperForByteArray.java b/src/test/java/tools/jackson/core/testutil/AsyncReaderWrapperForByteArray.java similarity index 97% rename from src/test/java/tools/jackson/core/testsupport/AsyncReaderWrapperForByteArray.java rename to src/test/java/tools/jackson/core/testutil/AsyncReaderWrapperForByteArray.java index 86b17a1747..22f93ce938 100644 --- a/src/test/java/tools/jackson/core/testsupport/AsyncReaderWrapperForByteArray.java +++ b/src/test/java/tools/jackson/core/testutil/AsyncReaderWrapperForByteArray.java @@ -1,4 +1,4 @@ -package tools.jackson.core.testsupport; +package tools.jackson.core.testutil; import tools.jackson.core.JsonParser; import tools.jackson.core.JsonToken; diff --git a/src/test/java/tools/jackson/core/testsupport/AsyncReaderWrapperForByteBuffer.java b/src/test/java/tools/jackson/core/testutil/AsyncReaderWrapperForByteBuffer.java similarity index 97% rename from src/test/java/tools/jackson/core/testsupport/AsyncReaderWrapperForByteBuffer.java rename to src/test/java/tools/jackson/core/testutil/AsyncReaderWrapperForByteBuffer.java index 4c86fd7a77..68d1528daa 100644 --- a/src/test/java/tools/jackson/core/testsupport/AsyncReaderWrapperForByteBuffer.java +++ b/src/test/java/tools/jackson/core/testutil/AsyncReaderWrapperForByteBuffer.java @@ -1,4 +1,4 @@ -package tools.jackson.core.testsupport; +package tools.jackson.core.testutil; import java.nio.ByteBuffer; diff --git a/src/test/java/tools/jackson/core/testsupport/ByteOutputStreamForTesting.java b/src/test/java/tools/jackson/core/testutil/ByteOutputStreamForTesting.java similarity index 94% rename from src/test/java/tools/jackson/core/testsupport/ByteOutputStreamForTesting.java rename to src/test/java/tools/jackson/core/testutil/ByteOutputStreamForTesting.java index a7959a0428..6d07ccd7fe 100644 --- a/src/test/java/tools/jackson/core/testsupport/ByteOutputStreamForTesting.java +++ b/src/test/java/tools/jackson/core/testutil/ByteOutputStreamForTesting.java @@ -1,4 +1,4 @@ -package tools.jackson.core.testsupport; +package tools.jackson.core.testutil; import java.io.ByteArrayOutputStream; import java.io.IOException; diff --git a/src/test/java/tools/jackson/core/testutil/JacksonTestUtilBase.java b/src/test/java/tools/jackson/core/testutil/JacksonTestUtilBase.java new file mode 100644 index 0000000000..a30842d63b --- /dev/null +++ b/src/test/java/tools/jackson/core/testutil/JacksonTestUtilBase.java @@ -0,0 +1,204 @@ +package tools.jackson.core.testutil; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.fail; + +import java.io.*; +import java.nio.charset.StandardCharsets; +import java.util.Arrays; + +import tools.jackson.core.*; +import tools.jackson.core.io.ContentReference; +import tools.jackson.core.io.IOContext; +import tools.jackson.core.util.BufferRecycler; + +/** + * Container for various factories needed by (unit) tests. + */ +public class JacksonTestUtilBase +{ + /* + /********************************************************************** + /* Factory methods for test contexts + /********************************************************************** + */ + + /** + * Factory method for creating {@link IOContext}s for tests + */ + public static IOContext testIOContext() { + return testIOContext(StreamReadConstraints.defaults(), + StreamWriteConstraints.defaults(), + ErrorReportConfiguration.defaults()); + } + + private static IOContext testIOContext(StreamReadConstraints src, + StreamWriteConstraints swc, + ErrorReportConfiguration erc) { + return new IOContext(src, swc, erc, + new BufferRecycler(), ContentReference.unknown(), false, + JsonEncoding.UTF8); + } + + + public static ObjectReadContext testObjectReadContext() { + return ObjectReadContext.empty(); + } + + /* + /********************************************************************** + /* Escaping/quoting + /********************************************************************** + */ + + protected String q(String str) { + return '"'+str+'"'; + } + + public static String a2q(String json) { + return json.replace('\'', '"'); + } + + /* + /********************************************************************** + /* Assertions + /********************************************************************** + */ + + public void assertToken(JsonToken expToken, JsonToken actToken) + { + if (actToken != expToken) { + fail("Expected token "+expToken+", current token "+actToken); + } + } + + public void assertToken(JsonToken expToken, JsonParser p) + { + assertToken(expToken, p.currentToken()); + } + + /** + * @param e Exception to check + * @param anyMatches Array of Strings of which AT LEAST ONE ("any") has to be included + * in {@code e.getMessage()} -- using case-INSENSITIVE comparison + */ + public static void verifyException(Throwable e, String... anyMatches) + { + String msg = e.getMessage(); + String lmsg = (msg == null) ? "" : msg.toLowerCase(); + for (String match : anyMatches) { + String lmatch = match.toLowerCase(); + if (lmsg.indexOf(lmatch) >= 0) { + return; + } + } + fail("Expected an exception with one of substrings ("+Arrays.asList(anyMatches)+"): got one with message \""+msg+"\""); + } + + /** + * Method that gets textual contents of the current token using + * available methods, and ensures results are consistent, before + * returning them + */ + public static String getAndVerifyText(JsonParser p) + { + // Ok, let's verify other accessors + int actLen = p.getStringLength(); + char[] ch = p.getStringCharacters(); + String str2 = new String(ch, p.getStringOffset(), actLen); + String str = p.getString(); + + if (str.length() != actLen) { + fail("Internal problem (p.token == "+p.currentToken()+"): p.getText().length() ['"+str+"'] == "+str.length()+"; p.getTextLength() == "+actLen); + } + assertEquals(str, str2, "String access via getText(), getTextXxx() must be the same"); + + return str; + } + + /* + /********************************************************************** + /* Character encoding support + /********************************************************************** + */ + + public static byte[] encodeInUTF32BE(String input) + { + int len = input.length(); + byte[] result = new byte[len * 4]; + int ptr = 0; + for (int i = 0; i < len; ++i, ptr += 4) { + char c = input.charAt(i); + result[ptr] = result[ptr+1] = (byte) 0; + result[ptr+2] = (byte) (c >> 8); + result[ptr+3] = (byte) c; + } + return result; + } + + protected static byte[] utf8Bytes(String str) { + return str.getBytes(StandardCharsets.UTF_8); + } + + protected String utf8String(ByteArrayOutputStream bytes) { + return new String(bytes.toByteArray(), StandardCharsets.UTF_8); + } + + /* + /********************************************************************** + /* Resource reading helpers + /********************************************************************** + */ + + public static byte[] readResource(String ref) + { + ByteArrayOutputStream bytes = new ByteArrayOutputStream(); + final byte[] buf = new byte[4000]; + + InputStream in = JUnit5TestBase.class.getResourceAsStream(ref); + if (in != null) { + try { + int len; + while ((len = in.read(buf)) > 0) { + bytes.write(buf, 0, len); + } + in.close(); + } catch (IOException e) { + throw new RuntimeException("Failed to read resource '"+ref+"': "+e); + } + } + if (bytes.size() == 0) { + throw new IllegalArgumentException("Failed to read resource '"+ref+"': empty resource?"); + } + return bytes.toByteArray(); + } + + /* + /********************************************************************** + /* JDK serialization helpers + /********************************************************************** + */ + + public static byte[] jdkSerialize(Object o) throws IOException + { + ByteArrayOutputStream bytes = new ByteArrayOutputStream(1000); + ObjectOutputStream obOut = new ObjectOutputStream(bytes); + obOut.writeObject(o); + obOut.close(); + return bytes.toByteArray(); + } + + @SuppressWarnings("unchecked") + public static T jdkDeserialize(byte[] raw) throws IOException + { + ObjectInputStream objIn = new ObjectInputStream(new ByteArrayInputStream(raw)); + try { + return (T) objIn.readObject(); + } catch (ClassNotFoundException e) { + fail("Missing class: "+e.getMessage()); + return null; + } finally { + objIn.close(); + } + } +} diff --git a/src/test/java/tools/jackson/core/testsupport/MockDataInput.java b/src/test/java/tools/jackson/core/testutil/MockDataInput.java similarity index 98% rename from src/test/java/tools/jackson/core/testsupport/MockDataInput.java rename to src/test/java/tools/jackson/core/testutil/MockDataInput.java index 3e2f613f2c..8302138b27 100644 --- a/src/test/java/tools/jackson/core/testsupport/MockDataInput.java +++ b/src/test/java/tools/jackson/core/testutil/MockDataInput.java @@ -1,4 +1,4 @@ -package tools.jackson.core.testsupport; +package tools.jackson.core.testutil; import java.io.*; import java.nio.charset.StandardCharsets; diff --git a/src/test/java/tools/jackson/core/testsupport/StringWriterForTesting.java b/src/test/java/tools/jackson/core/testutil/StringWriterForTesting.java similarity index 93% rename from src/test/java/tools/jackson/core/testsupport/StringWriterForTesting.java rename to src/test/java/tools/jackson/core/testutil/StringWriterForTesting.java index 3f51b3a9cc..63d1850d06 100644 --- a/src/test/java/tools/jackson/core/testsupport/StringWriterForTesting.java +++ b/src/test/java/tools/jackson/core/testutil/StringWriterForTesting.java @@ -1,4 +1,4 @@ -package tools.jackson.core.testsupport; +package tools.jackson.core.testutil; import java.io.IOException; import java.io.StringWriter; diff --git a/src/test/java/tools/jackson/core/testsupport/ThrottledInputStream.java b/src/test/java/tools/jackson/core/testutil/ThrottledInputStream.java similarity index 94% rename from src/test/java/tools/jackson/core/testsupport/ThrottledInputStream.java rename to src/test/java/tools/jackson/core/testutil/ThrottledInputStream.java index b6d0e73aff..345f6d4e2b 100644 --- a/src/test/java/tools/jackson/core/testsupport/ThrottledInputStream.java +++ b/src/test/java/tools/jackson/core/testutil/ThrottledInputStream.java @@ -1,4 +1,4 @@ -package tools.jackson.core.testsupport; +package tools.jackson.core.testutil; import java.io.ByteArrayInputStream; import java.io.FilterInputStream; diff --git a/src/test/java/tools/jackson/core/testsupport/ThrottledReader.java b/src/test/java/tools/jackson/core/testutil/ThrottledReader.java similarity index 94% rename from src/test/java/tools/jackson/core/testsupport/ThrottledReader.java rename to src/test/java/tools/jackson/core/testutil/ThrottledReader.java index 7ca6863e36..4ea3a8756c 100644 --- a/src/test/java/tools/jackson/core/testsupport/ThrottledReader.java +++ b/src/test/java/tools/jackson/core/testutil/ThrottledReader.java @@ -1,4 +1,4 @@ -package tools.jackson.core.testsupport; +package tools.jackson.core.testutil; import java.io.*; diff --git a/src/test/java/tools/jackson/core/tofix/async/AsyncTokenErrorTest.java b/src/test/java/tools/jackson/core/tofix/async/AsyncTokenErrorTest.java index c8714a1ee9..993ce576cb 100644 --- a/src/test/java/tools/jackson/core/tofix/async/AsyncTokenErrorTest.java +++ b/src/test/java/tools/jackson/core/tofix/async/AsyncTokenErrorTest.java @@ -6,7 +6,7 @@ import tools.jackson.core.async.AsyncTestBase; import tools.jackson.core.exc.StreamReadException; import tools.jackson.core.json.JsonFactory; -import tools.jackson.core.testsupport.AsyncReaderWrapper; +import tools.jackson.core.testutil.AsyncReaderWrapper; import tools.jackson.core.testutil.failure.JacksonTestFailureExpected; import static org.junit.jupiter.api.Assertions.fail; diff --git a/src/test/java/tools/jackson/core/write/GeneratorCloseTest.java b/src/test/java/tools/jackson/core/write/GeneratorCloseTest.java index 5b9895ac21..63dcb2bfd1 100644 --- a/src/test/java/tools/jackson/core/write/GeneratorCloseTest.java +++ b/src/test/java/tools/jackson/core/write/GeneratorCloseTest.java @@ -7,8 +7,8 @@ import tools.jackson.core.*; import tools.jackson.core.json.JsonFactory; -import tools.jackson.core.testsupport.ByteOutputStreamForTesting; -import tools.jackson.core.testsupport.StringWriterForTesting; +import tools.jackson.core.testutil.ByteOutputStreamForTesting; +import tools.jackson.core.testutil.StringWriterForTesting; import static org.junit.jupiter.api.Assertions.*;