| /******************************************************************************* |
| * Copyright (c) 2010-2014 SAP AG and others. |
| * All rights reserved. This program and the accompanying materials |
| * are made available under the terms of the Eclipse Public License v1.0 |
| * which accompanies this distribution, and is available at |
| * http://www.eclipse.org/legal/epl-v10.html |
| * |
| * Contributors: |
| * SAP AG - initial API and implementation |
| *******************************************************************************/ |
| package org.eclipse.skalli.commons; |
| |
| import static org.junit.Assert.*; |
| |
| import java.util.EmptyStackException; |
| |
| import org.junit.Test; |
| |
| public class CharacterStackTest { |
| |
| @Test |
| public void testDefaultConstructor() throws Exception { |
| CharacterStack stack = new CharacterStack(); |
| assertEmpty(stack); |
| } |
| |
| @Test |
| public void testPushPopPeek() throws Exception { |
| CharacterStack stack = new CharacterStack(); |
| stack.push('x'); |
| assertEquals(1, stack.size()); |
| assertFalse(stack.isEmpty()); |
| assertEquals('x', stack.peek()); |
| assertEquals('x', stack.pop()); |
| assertEmpty(stack); |
| } |
| |
| @Test |
| public void testResize() throws Exception { |
| CharacterStack stack = new CharacterStack(0); |
| assertTrue(stack.isEmpty()); |
| for (int i=0; i<100; ++i) { |
| assertEquals(i, stack.size()); |
| stack.push((char)i); |
| assertEquals(i+1, stack.size()); |
| } |
| assertEquals(100, stack.size()); |
| for (int i=99; i>=0; --i) { |
| assertEquals(i+1, stack.size()); |
| assertEquals((char)i, stack.peek()); |
| assertEquals((char)i, stack.pop()); |
| assertEquals(i, stack.size()); |
| } |
| assertEmpty(stack); |
| } |
| |
| @Test |
| public void testClear() throws Exception { |
| CharacterStack stack = new CharacterStack(); |
| stack.push('x'); |
| assertEquals(1, stack.size()); |
| stack.clear(); |
| assertEmpty(stack); |
| } |
| |
| private void assertEmpty(CharacterStack stack) { |
| assertEquals(0, stack.size()); |
| assertTrue(stack.isEmpty()); |
| try { |
| stack.peek(); |
| stack.pop(); |
| fail("EmptyStackException expected"); |
| } catch (EmptyStackException e) { |
| // expected |
| } |
| } |
| } |