/******************************************************************************* * Copyright (c) 1998, 2015 Oracle and/or its affiliates. All rights reserved. * This program and the accompanying materials are made available under the * terms of the Eclipse Public License v1.0 and Eclipse Distribution License v. 1.0 * which accompanies this distribution. * The Eclipse Public License is available at http://www.eclipse.org/legal/epl-v10.html * and the Eclipse Distribution License is available at * http://www.eclipse.org/org/documents/edl-v10.php. * * Contributors: * Oracle - initial API and implementation from Oracle TopLink ******************************************************************************/ package org.eclipse.persistence.tools.workbench.test.utility.io; import java.io.IOException; import junit.framework.Test; import junit.framework.TestCase; import junit.framework.TestSuite; import org.eclipse.persistence.tools.workbench.utility.io.TokenWriter; public class TokenTests extends TestCase { public static Test suite() { return new TestSuite(TokenTests.class); } public TokenTests(String name) { super(name); } public void testTokenWriter() throws IOException { String delimiters = "="; char escapeCharacter = '\\'; TokenWriter writer; writer = new TokenWriter(delimiters, escapeCharacter); writer.write("Fred"); writer.writeDelimiter("="); writer.write("Wilma"); assertEquals(writer.toString(), "Fred=Wilma"); writer = new TokenWriter(delimiters, escapeCharacter); writer.write("=Fred"); writer.writeDelimiter("="); writer.write("Wilma"); assertEquals(writer.toString(), "\\=Fred=Wilma"); writer = new TokenWriter(delimiters, escapeCharacter); writer.write("Fred="); writer.writeDelimiter("="); writer.write("Wilma"); assertEquals(writer.toString(), "Fred\\==Wilma"); writer = new TokenWriter(delimiters, escapeCharacter); writer.write("Fred"); writer.writeDelimiter("="); writer.write("=Wilma"); assertEquals(writer.toString(), "Fred=\\=Wilma"); writer = new TokenWriter(delimiters, escapeCharacter); writer.write("Fred"); writer.writeDelimiter("="); writer.write("Wilma="); assertEquals(writer.toString(), "Fred=Wilma\\="); writer = new TokenWriter(delimiters, escapeCharacter); writer.write("==Fred=="); writer.writeDelimiter("="); writer.write("==Wilma=="); assertEquals(writer.toString(), "\\=\\=Fred\\=\\==\\=\\=Wilma\\=\\="); writer = new TokenWriter(delimiters + "!", escapeCharacter); writer.write("!==Fred==!"); writer.writeDelimiter("!=!"); writer.write("!==Wilma==!"); assertEquals(writer.toString(), "\\!\\=\\=Fred\\=\\=\\!!=!\\!\\=\\=Wilma\\=\\=\\!"); writer = new TokenWriter(delimiters + "!", escapeCharacter); writer.write("!==Fred==!"); writer.writeDelimiter("!=!"); writer.write("!==Wilma==!"); writer.writeDelimiter("!=!"); assertEquals(writer.toString(), "\\!\\=\\=Fred\\=\\=\\!!=!\\!\\=\\=Wilma\\=\\=\\!!=!"); } public void testTokenWriterExceptions() { String delimiters = "="; char escapeCharacter = '\\'; TokenWriter writer; boolean exCaught; exCaught = false; try { writer = new TokenWriter(delimiters + escapeCharacter, escapeCharacter); } catch (IllegalArgumentException ex) { exCaught = true; } assertTrue("\"Escape character is also delimiter\" exception not thrown.", exCaught); exCaught = false; try { writer = new TokenWriter(null, escapeCharacter); } catch (NullPointerException ex) { exCaught = true; } assertTrue("\"Missing delimiters\" NPE not thrown.", exCaught); exCaught = false; writer = new TokenWriter(delimiters, escapeCharacter); try { writer.writeDelimiter('c'); } catch (IllegalArgumentException ex) { exCaught = true; } assertTrue("\"Not a delimiter\" exception not thrown.", exCaught); exCaught = false; writer = new TokenWriter(delimiters, escapeCharacter); try { writer.writeDelimiter("string"); } catch (IllegalArgumentException ex) { exCaught = true; } assertTrue("\"Not a delimiter\" exception not thrown.", exCaught); } }