/*
 * ValidationErrorHandlerTest.java
 * Copyright (C) 2008 Cyber Beans Corporation. All rights reserved.
 */
package jp.co.cybec.cb3.util;

import jp.co.cybec.cb3.util.ValidationErrorHandler;
import junit.framework.Assert;

import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.xml.sax.SAXParseException;
import org.xml.sax.helpers.LocatorImpl;

/**
 * ValidationErrorHandlerのテストケース。
 * @author Juanjuan Wang
 */
public class ValidationErrorHandlerTest {

	private ValidationErrorHandler myErrorHandler = null;

	/**
	 * @throws Exception
	 */
	@Before
	public void setUp() throws Exception {
		myErrorHandler = new ValidationErrorHandler();
	}

	/**
	 * @throws Exception
	 */
	@After
	public void tearDown() throws Exception {
	}

	/**
	 * {@link ValidationErrorHandler#isValid()} のためのテスト・メソッド。
	 * 正しく妥当性検証結果「true」が取得できることを確認する。
	 */
	@Test
	public void testIsValid() {
		myErrorHandler.isValid();
		Assert.assertTrue(myErrorHandler.isValid());
	}

	/**
	 * {@link ValidationErrorHandler#error(SAXParseException)} のためのテスト・メソッド。
	 * XML妥当性検証の場合、正しくisValidの値が設定されることを確認する。
	 */
	@Test
	public void testError() throws Exception {
		SAXParseException exception = new SAXParseException("SAX構文解析例外Error", new LocatorImpl());
		myErrorHandler.error(exception);
		Assert.assertFalse(myErrorHandler.isValid());
	}

	/**
	 * {@link ValidationErrorHandler#fatalError(SAXParseException)} のためのテスト・メソッド。
	 * XML妥当性検証の場合、正しくisValidの値が設定されることを確認する。
	 */
	@Test
	public void testFatalError() throws Exception {
		SAXParseException exception = new SAXParseException("SAX構文解析例外FatalError", new LocatorImpl());
		myErrorHandler.fatalError(exception);
		Assert.assertFalse(myErrorHandler.isValid());
	}

	/**
	 * {@link ValidationErrorHandler#warning(SAXParseException)} のためのテスト・メソッド。
	 * XML妥当性検証の場合、正しくisValidの値が設定されることを確認する。
	 */
	@Test
	public void testWarning() throws Exception {
		SAXParseException exception = new SAXParseException("SAX構文解析例外Warning", new LocatorImpl());
		myErrorHandler.warning(exception);
		Assert.assertFalse(myErrorHandler.isValid());
	}

}
