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());
		
	}
}