/** * Copyright (c) 2000-present Liferay, Inc. All rights reserved. * * This library is free software; you can redistribute it and/or modify it under * the terms of the GNU Lesser General Public License as published by the Free * Software Foundation; either version 2.1 of the License, or (at your option) * any later version. * * This library is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more * details. */ package com.liferay.portal.kernel.io.unsync; import org.junit.Assert; import org.junit.Test; /** * @author Shuyang Zhou */ public class UnsyncStringWriterTest { @Test public void testAppendChar() { // StringBuilder UnsyncStringWriter unsyncStringWriter = new UnsyncStringWriter(false); Assert.assertNotNull(unsyncStringWriter.stringBuilder); Assert.assertNull(unsyncStringWriter.stringBundler); unsyncStringWriter.append('a'); Assert.assertEquals(1, unsyncStringWriter.stringBuilder.length()); Assert.assertEquals('a', unsyncStringWriter.stringBuilder.charAt(0)); unsyncStringWriter.append('b'); Assert.assertEquals(2, unsyncStringWriter.stringBuilder.length()); Assert.assertEquals('a', unsyncStringWriter.stringBuilder.charAt(0)); Assert.assertEquals('b', unsyncStringWriter.stringBuilder.charAt(1)); // StringBundler unsyncStringWriter = new UnsyncStringWriter(); Assert.assertNull(unsyncStringWriter.stringBuilder); Assert.assertNotNull(unsyncStringWriter.stringBundler); unsyncStringWriter.append('a'); Assert.assertEquals(1, unsyncStringWriter.stringBundler.index()); Assert.assertEquals("a", unsyncStringWriter.stringBundler.stringAt(0)); unsyncStringWriter.append('b'); Assert.assertEquals(2, unsyncStringWriter.stringBundler.index()); Assert.assertEquals("a", unsyncStringWriter.stringBundler.stringAt(0)); Assert.assertEquals("b", unsyncStringWriter.stringBundler.stringAt(1)); } @Test public void testAppendCharSequence() { // StringBuilder UnsyncStringWriter unsyncStringWriter = new UnsyncStringWriter(false); Assert.assertNotNull(unsyncStringWriter.stringBuilder); Assert.assertNull(unsyncStringWriter.stringBundler); unsyncStringWriter.append(new StringBuilder("ab")); Assert.assertEquals(2, unsyncStringWriter.stringBuilder.length()); Assert.assertEquals('a', unsyncStringWriter.stringBuilder.charAt(0)); Assert.assertEquals('b', unsyncStringWriter.stringBuilder.charAt(1)); unsyncStringWriter.append(new StringBuilder("cd")); Assert.assertEquals(4, unsyncStringWriter.stringBuilder.length()); Assert.assertEquals('a', unsyncStringWriter.stringBuilder.charAt(0)); Assert.assertEquals('b', unsyncStringWriter.stringBuilder.charAt(1)); Assert.assertEquals('c', unsyncStringWriter.stringBuilder.charAt(2)); Assert.assertEquals('d', unsyncStringWriter.stringBuilder.charAt(3)); // StringBundler unsyncStringWriter = new UnsyncStringWriter(); Assert.assertNull(unsyncStringWriter.stringBuilder); Assert.assertNotNull(unsyncStringWriter.stringBundler); unsyncStringWriter.append(new StringBuilder("ab")); Assert.assertEquals(1, unsyncStringWriter.stringBundler.index()); Assert.assertEquals("ab", unsyncStringWriter.stringBundler.stringAt(0)); unsyncStringWriter.append(new StringBuilder("cd")); Assert.assertEquals(2, unsyncStringWriter.stringBundler.index()); Assert.assertEquals("ab", unsyncStringWriter.stringBundler.stringAt(0)); Assert.assertEquals("cd", unsyncStringWriter.stringBundler.stringAt(1)); } @Test public void testConstructor() { // StringBuilder UnsyncStringWriter unsyncStringWriter = new UnsyncStringWriter(false); Assert.assertNotNull(unsyncStringWriter.stringBuilder); Assert.assertEquals(16, unsyncStringWriter.stringBuilder.capacity()); Assert.assertNull(unsyncStringWriter.stringBundler); unsyncStringWriter = new UnsyncStringWriter(false, 32); Assert.assertNotNull(unsyncStringWriter.stringBuilder); Assert.assertEquals(32, unsyncStringWriter.stringBuilder.capacity()); Assert.assertNull(unsyncStringWriter.stringBundler); // StringBundler unsyncStringWriter = new UnsyncStringWriter(); Assert.assertNull(unsyncStringWriter.stringBuilder); Assert.assertNotNull(unsyncStringWriter.stringBundler); Assert.assertEquals(16, unsyncStringWriter.stringBundler.capacity()); unsyncStringWriter = new UnsyncStringWriter(true, 32); Assert.assertNull(unsyncStringWriter.stringBuilder); Assert.assertNotNull(unsyncStringWriter.stringBundler); Assert.assertEquals(32, unsyncStringWriter.stringBundler.capacity()); } @Test public void testReset() { // StringBuilder UnsyncStringWriter unsyncStringWriter = new UnsyncStringWriter(false); unsyncStringWriter.write("test1"); Assert.assertEquals(5, unsyncStringWriter.stringBuilder.length()); unsyncStringWriter.reset(); Assert.assertEquals(0, unsyncStringWriter.stringBuilder.length()); // StringBundler unsyncStringWriter = new UnsyncStringWriter(); unsyncStringWriter.write("test1"); Assert.assertEquals(1, unsyncStringWriter.stringBundler.index()); unsyncStringWriter.reset(); Assert.assertEquals(0, unsyncStringWriter.stringBundler.index()); } @Test public void testToString() { // StringBuilder UnsyncStringWriter unsyncStringWriter = new UnsyncStringWriter(false); Assert.assertNotNull(unsyncStringWriter.stringBuilder); Assert.assertNull(unsyncStringWriter.stringBundler); unsyncStringWriter.append('a'); Assert.assertEquals(1, unsyncStringWriter.stringBuilder.length()); Assert.assertEquals("a", unsyncStringWriter.toString()); unsyncStringWriter.append('b'); Assert.assertEquals(2, unsyncStringWriter.stringBuilder.length()); Assert.assertEquals("ab", unsyncStringWriter.toString()); // StringBundler unsyncStringWriter = new UnsyncStringWriter(); Assert.assertNull(unsyncStringWriter.stringBuilder); Assert.assertNotNull(unsyncStringWriter.stringBundler); unsyncStringWriter.append('a'); Assert.assertEquals(1, unsyncStringWriter.stringBundler.index()); Assert.assertEquals("a", unsyncStringWriter.toString()); unsyncStringWriter.append('b'); Assert.assertEquals(2, unsyncStringWriter.stringBundler.index()); Assert.assertEquals("ab", unsyncStringWriter.toString()); } @Test public void testWriteChar() { // StringBuilder UnsyncStringWriter unsyncStringWriter = new UnsyncStringWriter(false); Assert.assertNotNull(unsyncStringWriter.stringBuilder); Assert.assertNull(unsyncStringWriter.stringBundler); unsyncStringWriter.write('a'); Assert.assertEquals(1, unsyncStringWriter.stringBuilder.length()); Assert.assertEquals('a', unsyncStringWriter.stringBuilder.charAt(0)); unsyncStringWriter.write('b'); Assert.assertEquals(2, unsyncStringWriter.stringBuilder.length()); Assert.assertEquals('a', unsyncStringWriter.stringBuilder.charAt(0)); Assert.assertEquals('b', unsyncStringWriter.stringBuilder.charAt(1)); // StringBundler unsyncStringWriter = new UnsyncStringWriter(); Assert.assertNull(unsyncStringWriter.stringBuilder); Assert.assertNotNull(unsyncStringWriter.stringBundler); unsyncStringWriter.write('a'); Assert.assertEquals(1, unsyncStringWriter.stringBundler.index()); Assert.assertEquals("a", unsyncStringWriter.stringBundler.stringAt(0)); unsyncStringWriter.write('b'); Assert.assertEquals(2, unsyncStringWriter.stringBundler.index()); Assert.assertEquals("a", unsyncStringWriter.stringBundler.stringAt(0)); Assert.assertEquals("b", unsyncStringWriter.stringBundler.stringAt(1)); } @Test public void testWriteCharArray() { // StringBuilder UnsyncStringWriter unsyncStringWriter = new UnsyncStringWriter(false); Assert.assertNotNull(unsyncStringWriter.stringBuilder); Assert.assertNull(unsyncStringWriter.stringBundler); unsyncStringWriter.write("ab".toCharArray()); Assert.assertEquals(2, unsyncStringWriter.stringBuilder.length()); Assert.assertEquals('a', unsyncStringWriter.stringBuilder.charAt(0)); Assert.assertEquals('b', unsyncStringWriter.stringBuilder.charAt(1)); unsyncStringWriter.write("cd".toCharArray()); Assert.assertEquals(4, unsyncStringWriter.stringBuilder.length()); Assert.assertEquals('a', unsyncStringWriter.stringBuilder.charAt(0)); Assert.assertEquals('b', unsyncStringWriter.stringBuilder.charAt(1)); Assert.assertEquals('c', unsyncStringWriter.stringBuilder.charAt(2)); Assert.assertEquals('d', unsyncStringWriter.stringBuilder.charAt(3)); // StringBundler unsyncStringWriter = new UnsyncStringWriter(); Assert.assertNull(unsyncStringWriter.stringBuilder); Assert.assertNotNull(unsyncStringWriter.stringBundler); unsyncStringWriter.write("ab".toCharArray()); Assert.assertEquals(1, unsyncStringWriter.stringBundler.index()); Assert.assertEquals("ab", unsyncStringWriter.stringBundler.stringAt(0)); unsyncStringWriter.write("cd".toCharArray()); Assert.assertEquals(2, unsyncStringWriter.stringBundler.index()); Assert.assertEquals("ab", unsyncStringWriter.stringBundler.stringAt(0)); Assert.assertEquals("cd", unsyncStringWriter.stringBundler.stringAt(1)); } @Test public void testWriteString() { // StringBuilder UnsyncStringWriter unsyncStringWriter = new UnsyncStringWriter(false); Assert.assertNotNull(unsyncStringWriter.stringBuilder); Assert.assertNull(unsyncStringWriter.stringBundler); unsyncStringWriter.write("ab"); Assert.assertEquals(2, unsyncStringWriter.stringBuilder.length()); Assert.assertEquals('a', unsyncStringWriter.stringBuilder.charAt(0)); Assert.assertEquals('b', unsyncStringWriter.stringBuilder.charAt(1)); unsyncStringWriter.write("cd"); Assert.assertEquals(4, unsyncStringWriter.stringBuilder.length()); Assert.assertEquals('a', unsyncStringWriter.stringBuilder.charAt(0)); Assert.assertEquals('b', unsyncStringWriter.stringBuilder.charAt(1)); Assert.assertEquals('c', unsyncStringWriter.stringBuilder.charAt(2)); Assert.assertEquals('d', unsyncStringWriter.stringBuilder.charAt(3)); // StringBundler unsyncStringWriter = new UnsyncStringWriter(); Assert.assertNull(unsyncStringWriter.stringBuilder); Assert.assertNotNull(unsyncStringWriter.stringBundler); unsyncStringWriter.write("ab"); Assert.assertEquals(1, unsyncStringWriter.stringBundler.index()); Assert.assertEquals("ab", unsyncStringWriter.stringBundler.stringAt(0)); unsyncStringWriter.write("cd"); Assert.assertEquals(2, unsyncStringWriter.stringBundler.index()); Assert.assertEquals("ab", unsyncStringWriter.stringBundler.stringAt(0)); Assert.assertEquals("cd", unsyncStringWriter.stringBundler.stringAt(1)); } }