package cucumber.examples.java.wicket;
import cucumber.examples.java.wicket.view.Available;
import cucumber.examples.java.wicket.view.Create;
import cucumber.examples.java.wicket.view.Rent;
import org.apache.wicket.util.tester.WicketTester;
import org.junit.Test;
import static org.hamcrest.CoreMatchers.is;
import static org.junit.Assert.assertThat;
public class RentCarTest {
private Application application = new Application();
private WicketTester wicketTester = new WicketTester(application);
@Test
public void shouldRentACar() {
int initialNumberOfCars = 43;
Create create = wicketTester.startPage(Create.class);
create.setNumberOfCars(initialNumberOfCars);
create.create();
int oneRentedCar = 1;
int expected = initialNumberOfCars - oneRentedCar;
Rent rent = wicketTester.startPage(Rent.class);
rent.rent();
Available available = wicketTester.startPage(Available.class);
int actual = available.getAvailableCars();
assertThat(actual, is(expected));
}
}