/*
* Copyright (c) 2015 mdhtr.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* mdhtr - initial API and implementation and/or initial documentation
*/
package airportsimulation.utils;
import java.io.ByteArrayInputStream;
import java.io.InputStream;
import java.util.List;
import static org.hamcrest.CoreMatchers.is;
import static org.junit.Assert.assertThat;
import org.junit.Test;
/**
*
* @author mdhtr
*/
public class CsvBuilderTest {
private static class MockObject {
private final String id;
private final String name;
private final String type;
public MockObject(String id, String name, String type) {
this.id = id;
this.name = name;
this.type = type;
}
public String getId() {
return id;
}
}
private static class MockFactory implements Factory<MockObject> {
@Override
public MockObject create(List<String> fields) throws NumberFormatException {
MockObject mockObject = new MockObject(fields.get(0), fields.get(1), fields.get(2));
return mockObject;
}
}
@Test
public void shouldBuildEntityFromCsvFile() throws CsvBuilderException {
String content = ""
+ "#id;aliasName;aircraftType\n"
+ "W62339;Wizz Air 62339;Airbus A320-232\n"
+ "AT702;Air Transar 702;Airbus A330-243";
InputStream inputStream = new ByteArrayInputStream(content.getBytes());
CsvBuilder<MockObject> csvBuilder = new CsvBuilder<>(
new MockFactory(), inputStream);
assertThat(csvBuilder.hasNext(), is(true));
assertThat(csvBuilder.getNext().getId(), is("W62339"));
assertThat(csvBuilder.hasNext(), is(true));
assertThat(csvBuilder.getNext().getId(), is("AT702"));
assertThat(csvBuilder.hasNext(), is(false));
}
}