package com.mozz.htmlnative; import com.mozz.htmlnative.common.CharQueue; import org.junit.Test; import java.io.EOFException; import static org.junit.Assert.assertTrue; /** * @author Yang Tao, 17/3/17. */ public class CharQueueTest { @Test public void pushAndPop() throws Exception { CharQueue charCache = new CharQueue(3); charCache.push('h'); assertTrue(charCache.pop() == 'h'); charCache.push('a'); charCache.push('b'); charCache.push('c'); charCache.push('d'); charCache.push('e'); assertTrue(charCache.pop() == 'c'); assertTrue(charCache.pop() == 'd'); assertTrue(charCache.pop() == 'e'); charCache.push('f'); assertTrue(charCache.pop() == 'f'); try { charCache.pop(); } catch (EOFException e) { return; } throw new IllegalArgumentException("wrong"); } @Test public void peek() throws Exception { CharQueue charQueue = new CharQueue(3); charQueue.push('1'); charQueue.push('2'); assertTrue(charQueue.peek(0) == '1'); assertTrue(charQueue.peek(1) == '2'); // assertTrue(charQueue.pop() == '1'); assertTrue(charQueue.pop() == '2'); charQueue.push('3'); charQueue.push('4'); charQueue.push('5'); charQueue.push('6'); assertTrue(charQueue.peek(0) == '4'); assertTrue(charQueue.peek(1) == '5'); assertTrue(charQueue.peek(2) == '6'); try { char c = charQueue.peek(3); } catch (IllegalArgumentException e) { return; } throw new IllegalArgumentException(); } @Test public void toStringTest() throws Exception { CharQueue charQueue = new CharQueue(3); charQueue.push('h'); charQueue.push('e'); charQueue.push('l'); charQueue.push('l'); charQueue.push('o'); charQueue.push('w'); charQueue.push('o'); charQueue.push('r'); charQueue.push('l'); charQueue.push('d'); assertTrue(charQueue.toString().equals("rld")); } }