JsonParserSequenceTest.java

package tools.jackson.core.unittest.util;

import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.io.InputStream;

import tools.jackson.core.JsonParser;
import tools.jackson.core.ObjectReadContext;
import tools.jackson.core.io.IOContext;
import tools.jackson.core.json.JsonFactory;
import tools.jackson.core.json.ReaderBasedJsonParser;
import tools.jackson.core.json.UTF8StreamJsonParser;
import tools.jackson.core.sym.ByteQuadsCanonicalizer;
import tools.jackson.core.sym.CharsToNameCanonicalizer;
import tools.jackson.core.unittest.*;
import tools.jackson.core.util.JsonParserDelegate;
import tools.jackson.core.util.JsonParserSequence;

import static org.junit.jupiter.api.Assertions.*;

/**
 * Unit tests for class {@link JsonParserSequence}.
 *
 * @see JsonParserSequence
 */
@SuppressWarnings("resource")
public class JsonParserSequenceTest extends JacksonCoreTestBase
{
    public void testClose() throws IOException {
        IOContext ioContext = testIOContext();
        ReaderBasedJsonParser readerBasedJsonParser = new ReaderBasedJsonParser(
                ObjectReadContext.empty(),
                ioContext,
                2, 0, null, CharsToNameCanonicalizer.createRoot(new JsonFactory()));
        JsonParserSequence jsonParserSequence = JsonParserSequence.createFlattened(true, readerBasedJsonParser, readerBasedJsonParser);

        assertFalse(jsonParserSequence.isClosed());

        jsonParserSequence.close();

        assertTrue(jsonParserSequence.isClosed());
        assertNull(jsonParserSequence.nextToken());
    }

    public void testSkipChildren() throws IOException {
        JsonParser[] jsonParserArray = new JsonParser[3];
        IOContext ioContext = testIOContext();
        byte[] byteArray = new byte[8];
        InputStream byteArrayInputStream = new ByteArrayInputStream(byteArray, 0, (byte) 58);
        UTF8StreamJsonParser uTF8StreamJsonParser = new UTF8StreamJsonParser(ObjectReadContext.empty(),
                ioContext,
                0, 0, byteArrayInputStream, ByteQuadsCanonicalizer.createRoot(),
                byteArray, -1, (byte) 9, 0, true);
        JsonParserDelegate jsonParserDelegate = new JsonParserDelegate(jsonParserArray[0]);
        JsonParserSequence jsonParserSequence = JsonParserSequence.createFlattened(true, uTF8StreamJsonParser, jsonParserDelegate);
        JsonParserSequence jsonParserSequenceTwo = (JsonParserSequence) jsonParserSequence.skipChildren();

        assertEquals(2, jsonParserSequenceTwo.containedParsersCount());
    }
}