public void testUndoRedo() throws Exception {
		us.add( e1 ).add( e2 );

		assertFalse( us.hasRedoElement() );
		assertTrue( us.hasUndoElement() );

		try {
			us.getNextRedoElement();
			fail();
		}
		catch( final NoSuchElementException expected ) {
		}

		assertEquals( e2, us.getNextUndoElement() );

		assertTrue( us.hasRedoElement() );
		assertTrue( us.hasUndoElement() );

		assertEquals( e2, us.getNextRedoElement() );

		assertEquals( e2, us.getNextUndoElement() );
		assertEquals( e1, us.getNextUndoElement() );

		assertTrue( us.hasRedoElement() );
		assertFalse( us.hasUndoElement() );

		assertEquals( e1, us.getNextRedoElement() );
		assertEquals( e2, us.getNextRedoElement() );
		try {
			us.getNextRedoElement();
			fail();
		}
		catch( final NoSuchElementException expected ) {
		}

		assertEquals( e2, us.getNextUndoElement() );
		assertEquals( e1, us.getNextUndoElement() );
		try {
			us.getNextUndoElement();
			fail();
		}
		catch( final NoSuchElementException expected ) {
		}
	}