== Elevator.java == {{{ public class Elevator { private int max; private int min; private int floor; private boolean inElevator; private boolean button; public Elevator(int i, int j) { max = i; min = j; floor = 1; inElevator = false; button = false; } public int floor() { return floor; } public void goTo(int i) { if(i <= max && i >= min && inElevator ){ floor = i; } else if (i < min){ floor = min; } else if (i > max){ floor = max; } } public void press() { button = true; } public void in() { if(button) { inElevator = true; button = false; } } public void out() { inElevator = false; } } }}} == App.java (Test) == {{{ import static org.junit.Assert.*; import org.junit.Test; public class App { @Test public void testElevator() { Elevator elevator = new Elevator(65, -10); // default 현재층 : 1 // 객체 생성 여부 assertNotNull(elevator); assertEquals(1, elevator.floor()); // 엘레베이터에 안탔으므로 이동이 안됨 elevator.goTo(30); assertEquals(1, elevator.floor()); // 버튼을 누르지 않으면 탈 수 없음. elevator.in(); elevator.goTo(20); assertEquals(1, elevator.floor()); // 버튼 눌러서 타서 이동한 케이스 elevator.press(); elevator.in(); elevator.goTo(30); assertEquals(30, elevator.floor()); // 내려서 이동 안되는 케이스 elevator.out(); elevator.goTo(20); assertEquals(30, elevator.floor()); // 안에서 엘레베이터를 타지만 최저층을 초과하는 경우 elevator.press(); elevator.in(); elevator.goTo(-11); assertEquals(-10, elevator.floor()); // 안에서 엘레베이터를 타지만 최고층을 초과하는 경우 elevator.press(); elevator.in(); elevator.goTo(66); assertEquals(65, elevator.floor()); } } }}}