package com.coding2017.group7.homework.c0226;
import org.junit.After;
import org.junit.Assert;
import org.junit.Before;
import org.junit.FixMethodOrder;
import org.junit.Test;
import org.junit.runners.MethodSorters;
@FixMethodOrder(MethodSorters.NAME_ASCENDING)
public class MyStackTest {
private MyStack myStack = new MyStack();
private Object[] elements = new Object[]{1};
private final int mySize = elements.length;
@Before
public void setUp() throws Exception {
for (int i = 0; i < mySize; i++) {
myStack.push(i + 1);
}
}
@After
public void tearDown() throws Exception {
for (int i = myStack.size(); i > 0; i--) {
myStack.pop();
}
}
@Test
public void push() throws Exception {
myStack.push(-1);
Assert.assertTrue(myStack.pop().equals(-1));
}
@Test
public void pop() throws Exception {
for (int i = myStack.size(); i > 0; i--) {
myStack.pop();
}
Assert.assertEquals(myStack.size(), 0);
}
@Test
public void peek() throws Exception {
for (int i = 0; i < myStack.size(); i++) {
Object peek = myStack.peek();
Assert.assertTrue(peek.equals(elements[i]));
}
Assert.assertEquals(myStack.size(), mySize);
}
}