/*
 * $Id: CharsetUtilsTest.java,v 1.2 2006/02/21 12:58:50 akabane Exp $
 * LOGICAL-PARADOX.ORG
 * Copyright (C)2005 satoshi akabane(akabane@logical-paradox.org)
 *
 */
package org.logical_paradox.common.charset;

import junit.framework.TestCase;


/**
 * キャラセットユーティリティのテスト
 * @author satoshi akabane@logical-paradox.org
 * @version $Revision: 1.2 $
 */
public class CharsetUtilsTest extends TestCase {
	public static final String ENCODING = "UTF-16BE";

	/**
	 * エンコーディング変換のテスト
	 * @throws Exception 処理されなかった例外
	 */
	public void testEncoding() throws Exception {
		String msg = "こんにちは，赤羽根です．芸能界デビューも近い??";

		String encodedString = CharsetUtils.encode(ENCODING, msg);
		String decodedString = CharsetUtils.decode(ENCODING, encodedString);

		assertEquals(msg, decodedString);
	}
	/**
	 * エンコーディング変換が必要かどうかのテストのテスト(同じエンコーディング)
	 * システムエンコーディングを渡して，falseが返却されるのを確認する．
	 */
	public void testTestNeedToEncodeSame() {
		String systemEncoding = System.getProperty("file.encoding");
		assertFalse(CharsetUtils.testNeedToEncode(systemEncoding));
	}
	/**
	 * エンコーディング変換が必要かどうかのテストのテスト(同じエンコーディング)
	 * システムエンコーディングと同じ実体のエンコーディングを指定してfalseが返却されるのを確認する．
	 */
	public void testTestNeedToEncodeNear() {
		String systemEncoding = "Windows-31J";
		assertFalse(CharsetUtils.testNeedToEncode(systemEncoding));
	}
	/**
	 * エンコーディング変換が必要かどうかのテストのテスト(同じエンコーディング)
	 * システムエンコーディングと違う実体のエンコーディングを指定してtrueが返却されるのを確認する．
	 */
	public void testTestNeedToEncodingDifferent() {
		assertTrue(CharsetUtils.testNeedToEncode("euc-jp"));
	}
}
