package jhaushalt.service.factories;
import static org.fest.assertions.Assertions.assertThat;
import java.io.IOException;
import java.text.ParseException;
import java.util.ArrayList;
import java.util.List;
import jhaushalt.domain.Register;
import jhaushalt.domain.buchung.Buchung;
import jhaushalt.service.factories.io.DataInputFacade;
import org.junit.Before;
import org.junit.Test;
public class RegisterFactoryIntegrationTest {
private static final String ANY_BOOKING_TEXT = "Foo Text";
private static final String ANY_REGISTER_NAME = "anyRegisterName";
private RegisterFactory registerFactory;
@Before
public void setUp() {
registerFactory = new RegisterFactory();
registerFactory.setBookingFactory(new BuchungFactory());
}
@Test
public void getInstanceLoadsOneRegister() throws IOException, UnknownBuchungTypeException, ParseException {
DataInputFacade in = new DataSourceArrayHolder(createInputDataArray());
Register actualRegister = registerFactory.getInstance(in, ANY_REGISTER_NAME);
assertThat(actualRegister.getName()).isEqualTo(ANY_REGISTER_NAME);
List<Buchung> bookings = actualRegister.getBookings();
assertThat(bookings).hasSize(1);
assertThat(bookings.get(0).getText()).isEqualTo(ANY_BOOKING_TEXT);
}
private List<String> createInputDataArray() {
List<String> inputParameters = new ArrayList<String>();
inputParameters.add("1");
inputParameters.add("StandardBuchung2");
inputParameters.add("02.01.2012");
inputParameters.add(ANY_BOOKING_TEXT);
inputParameters.add("Any Input Category");
inputParameters.add("2000");
return inputParameters;
}
}