LinkedListQueueTest.java

package edu.hawaii.ics.yucheng;

import java.util.NoSuchElementException;

import junit.framework.TestCase;

/**
 * Tests the LinkedListQueue class.
 */
public class LinkedListQueueTest extends TestCase {

    /**
     * Tests the constructor.
     * 
     * @throws Exception
     */
    public void testConstructor() throws Exception {
        new LinkedListQueue<String>();
    }


    /**
     * Tests the isEmpty method.
     * 
     * @throws Exception
     */
    public void testIsEmpty() throws Exception {
        final LinkedListQueue<String> q = new LinkedListQueue<String>();
        assertTrue(q.isEmpty());
        q.push("A");
        assertFalse(q.isEmpty());
        q.pop();
        assertTrue(q.isEmpty());
    }


    /**
     * Tests the pop method.
     * 
     * @throws Exception
     */
    public void testPop1() throws Exception {
        final LinkedListQueue<String> q = new LinkedListQueue<String>();
        try {
            q.pop();
            fail();
        } catch (final NoSuchElementException e) {
            // This is expected.
        }
    }


    /**
     * Tests the pop method.
     * 
     * @throws Exception
     */
    public void testPop2() throws Exception {
        final LinkedListQueue<String> q = new LinkedListQueue<String>();
        assertTrue(q.isEmpty());
        q.push("A");
        assertFalse(q.isEmpty());
        assertEquals("A", q.pop());
        assertTrue(q.isEmpty());
    }


    /**
     * Tests the pop method.
     * 
     * @throws Exception
     */
    public void testPop3() throws Exception {
        final LinkedListQueue<String> q = new LinkedListQueue<String>();
        assertTrue(q.isEmpty());
        q.push("A");
        q.push("B");
        q.push("C");
        assertFalse(q.isEmpty());
        assertEquals("A", q.pop());
        assertEquals("B", q.pop());
        assertEquals("C", q.pop());
        assertTrue(q.isEmpty());
    }


    /**
     * Tests the toString method.
     * 
     * @throws Exception
     */
    public void testToString() throws Exception {
        final LinkedListQueue<String> q = new LinkedListQueue<String>();
        q.push("A");
        q.push("B");
        assertEquals("{ A, B }", q.toString());
    }
}
Valid HTML 4.01 Valid CSS