/**
 * LOGICAL-PARADOX.ORG
 * Copyright (C)2004 satoshi akabane(akabane@logical-paradox.org)
 *
 */
package org.logical_paradox.common.util;

import junit.framework.TestCase;

/**
 * PriorityCacheのテスト
 * @author satoshi akabane@logical-paradox.org
 * @version 1.0
 */
public class PriorityCacheTest extends TestCase {

	/**
	 * Constructor for PriorityCacheTest.
	 * @param arg0
	 */
	public PriorityCacheTest(String arg0) {
		super(arg0);
	}

	// キャッシュへの入出力テスト
	public void testInOut() {
		PriorityCache cache = new PriorityCache();
		String s1 = new String("ABC");
		String s2 = new String("XYZ");
		String s3 = new String("DDD");
		
		cache.add(s1);
		cache.add(s2);
		cache.add(s3);

		// ちゃんと大きい順に格納されているかどうかテスト
		assertEquals(s2, cache.getOne());
		assertEquals(s3, cache.getOne());
		assertEquals(s1, cache.getOne());

		PriorityCache cache2 = new PriorityCache(0, PriorityCache.LESS_FIRST);
		cache2.add(s3);
		cache2.add(s2);
		cache2.add(s1);
		
		// ちゃんと小さい順に格納されているかどうかテスト
		assertEquals(s1, cache2.getOne());
		assertEquals(s3, cache2.getOne());
		assertEquals(s2, cache2.getOne());
	}
}
