package org.zeropage.devilscamp;
import static org.junit.Assert.*;
import org.junit.Before;
import org.junit.Test;
/*
* up이나 down은 외부에서 버튼을 누른것이다.()안의 인자는 버튼을 누른 층
* up과 down을 누른 후에는 goTo를 할 수가 있는데
* 잘못된 선택을 할 경우에는 다시 goTo할 수 없다.
*/
public class App {
@Test
public void testElevator(){
Elevator e = new Elevator(63, -3);
//Elevator가 생성되었는지 test한다.
assertNotNull(e);
//Elevator가 생성될때에는 항상 1층으로 setting된다.
assertEquals(1, e.floor());
//System.out.println(e.floor());
//goTo 전에는 항상 up 혹은 down이 있어야한다.
e.up(1);
assertEquals(1, e.floor());
e.goTo(5);
assertEquals(5, e.floor());
//System.out.println(e.floor());
e.up(10);
assertEquals(10, e.floor());
//Can not go
e.goTo(-5);
assertEquals(10, e.floor());
//System.out.println(e.floor());
e.down(10);
assertEquals(10, e.floor());
//Can not go
e.goTo(65);
assertEquals(10, e.floor());
//System.out.println(e.floor());
//6층에서 up누를경우
e.up(6);
assertEquals(6, e.floor());
//System.out.println(e.floor());
//6층에서 up을 눌렀는데 3층으로 갈 수는 없다.
//한번 goTo에 실패하면(잘못된 범위 선택:up 누르고 더 아래층으로 goTo) 다시 goTo 할 수 없다.
e.goTo(3);
assertEquals(6, e.floor());
e.up(5);
assertEquals(5, e.floor());
e.goTo(60);
assertEquals(60, e.floor());
//8층에서 down누를경우
e.down(8);
assertEquals(8, e.floor());
//System.out.println(e.floor());
//한번 goTo에 실패하면(잘못된 범위 선택:down 누르고 더 위층으로 goTo) 다시 goTo 할 수 없다. 갇혔음 ㅡ_ㅡ;;
e.goTo(3);
assertEquals(3, e.floor());
}
}