Package org.helidb.lang.serializer

Source Code of org.helidb.lang.serializer.CharacterSerializerTest

/* HeliDB -- A simple database for Java, http://www.helidb.org
* Copyright (C) 2008, 2009 Karl Gustafsson
*
* This file is a part of HeliDB.
*
* HeliDB 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 3 of the License, or
* (at your option) any later version.
*
* HeliDB 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 General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program.  If not, see <http://www.gnu.org/licenses/>.
*/
package org.helidb.lang.serializer;

import static org.junit.Assert.assertEquals;
import static org.junit.Assert.fail;

import java.io.ByteArrayInputStream;

import org.entityfs.util.io.ByteArrayRandomAccess;
import org.junit.Test;

public class CharacterSerializerTest
{
  @Test
  public void testSerializeAndInterpret()
  {
    CharacterSerializer cser = CharacterSerializer.INSTANCE;
    assertEquals(Character.valueOf('a'), cser.interpret(cser.serialize(Character.valueOf('a'))));
    assertEquals(Character.valueOf(Character.MAX_HIGH_SURROGATE), cser.interpret(cser.serialize(Character.valueOf(Character.MAX_HIGH_SURROGATE))));
    assertEquals(Character.valueOf(Character.MAX_LOW_SURROGATE), cser.interpret(cser.serialize(Character.valueOf(Character.MAX_LOW_SURROGATE))));
    assertEquals(Character.valueOf(Character.MAX_SURROGATE), cser.interpret(cser.serialize(Character.valueOf(Character.MAX_SURROGATE))));
    assertEquals(Character.valueOf(Character.MAX_VALUE), cser.interpret(cser.serialize(Character.valueOf(Character.MAX_VALUE))));
    assertEquals(Character.valueOf(Character.MIN_HIGH_SURROGATE), cser.interpret(cser.serialize(Character.valueOf(Character.MIN_HIGH_SURROGATE))));
    assertEquals(Character.valueOf(Character.MIN_LOW_SURROGATE), cser.interpret(cser.serialize(Character.valueOf(Character.MIN_LOW_SURROGATE))));
    assertEquals(Character.valueOf(Character.MIN_SURROGATE), cser.interpret(cser.serialize(Character.valueOf(Character.MIN_SURROGATE))));
    assertEquals(Character.valueOf(Character.MIN_VALUE), cser.interpret(cser.serialize(Character.valueOf(Character.MIN_VALUE))));

    byte[] barr = new byte[2 + CharacterSerializer.DATA_SIZE];
    for (int i = 0; i < 3; i++)
    {
      assertEquals(CharacterSerializer.DATA_SIZE, cser.serialize(Character.valueOf('a'), barr, i));
      assertEquals('a', cser.interpret(barr, i, CharacterSerializer.DATA_SIZE).charValue());
      assertEquals(CharacterSerializer.DATA_SIZE, cser.serialize(Character.valueOf('e'), barr, i));
      assertEquals('e', cser.interpret(barr, i, CharacterSerializer.DATA_SIZE).charValue());
    }

    try
    {
      cser.serialize(null);
      fail();
    }
    catch (NullPointerException e)
    {
      // ok
    }

    try
    {
      cser.interpret(null);
      fail();
    }
    catch (NullPointerException e)
    {
      // ok
    }
  }

  @Test
  public void testReadCharacter()
  {
    byte[] barr = CharacterSerializer.INSTANCE.serialize('\0');
    assertEquals('\0', CharacterSerializer.INSTANCE.readCharacter(new ByteArrayInputStream(barr)).charValue());
    assertEquals('\0', CharacterSerializer.INSTANCE.readCharacter(new ByteArrayRandomAccess(barr)).charValue());
    barr = CharacterSerializer.INSTANCE.serialize('A');
    assertEquals('A', CharacterSerializer.INSTANCE.readCharacter(new ByteArrayInputStream(barr)).charValue());
    assertEquals('A', CharacterSerializer.INSTANCE.readCharacter(new ByteArrayRandomAccess(barr)).charValue());
    barr = CharacterSerializer.INSTANCE.serialize('ö');
    assertEquals('ö', CharacterSerializer.INSTANCE.readCharacter(new ByteArrayInputStream(barr)).charValue());
    assertEquals('ö', CharacterSerializer.INSTANCE.readCharacter(new ByteArrayRandomAccess(barr)).charValue());
  }
}
TOP

Related Classes of org.helidb.lang.serializer.CharacterSerializerTest

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.