/* * Copyright 2010, Andrew M Gibson * * www.andygibson.net * * This file is part of DataValve. * * DataValve is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * DataValve is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * * You should have received a copy of the GNU Lesser General Public License * along with DataValve. If not, see <http://www.gnu.org/licenses/>. * */ package org.fluttercode.datavalve.provider.file; import java.io.BufferedWriter; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.OutputStreamWriter; import org.fluttercode.datavalve.dataset.Dataset; import org.fluttercode.datavalve.dataset.ObjectDataset; import org.fluttercode.datavalve.testing.junit.AbstractObjectDatasetJUnitTest; /** * @author Andy Gibson * */ public class CommaDelimitedDatasetTest extends AbstractObjectDatasetJUnitTest<PhoneEntry> { private static final long serialVersionUID = 1L; private String baseDir; private String fileName; @Override protected void setUp() throws Exception { super.setUp(); generateFile(); } private void generateFile() { baseDir = System.getProperty("java.io.tmpdir") + "/CsvDsTest/"; fileName = baseDir+"csvFile.csv"; File base = new File(baseDir); base.mkdir(); FileOutputStream fs = null; try { fs = new FileOutputStream(new File(fileName)); BufferedWriter writer = new BufferedWriter(new OutputStreamWriter( fs)); for (int i = 0; i < 100; i++) { writer.write(Integer.toString(i + 1)); writer.write(","); writer.write(getDataFactory().getFirstName()); writer.write(","); writer.write(getDataFactory().getLastName()); writer.write(","); writer.write(getDataFactory().getNumberText(10)); writer.newLine(); } writer.close(); } catch (IOException e) { e.printStackTrace(); } } @Override protected void tearDown() throws Exception { super.tearDown(); deleteFiles(); } private void deleteFiles() { new File(fileName).delete(); new File(baseDir).delete(); } @Override public ObjectDataset<PhoneEntry> buildObjectDataset() { CommaDelimitedProvider<PhoneEntry> provider = new CommaDelimitedProvider<PhoneEntry>(fileName) { private static final long serialVersionUID = 2L; @Override protected PhoneEntry doCreateObjectFromColumns(String[] columns) { return new PhoneEntry(Integer.valueOf(columns[0]),columns[1],columns[2],columns[3]); } }; return new Dataset<PhoneEntry,CommaDelimitedProvider<PhoneEntry>>(provider); } @Override public int getDataRowCount() { return 100; } }