/** * Copyright (c) 2009--2010 Red Hat, Inc. * * This software is licensed to you under the GNU General Public License, * version 2 (GPLv2). There is NO WARRANTY for this software, express or * implied, including the implied warranties of MERCHANTABILITY or FITNESS * FOR A PARTICULAR PURPOSE. You should have received a copy of GPLv2 * along with this software; if not, see * http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt. * * Red Hat trademarks are not licensed under GPLv2. No permission is * granted to use or replicate Red Hat trademarks that are incorporated * in this software or its documentation. */ package com.redhat.rhn.common.util.test; import com.redhat.rhn.common.util.CSVWriter; import com.redhat.rhn.common.util.ExportWriter; import com.redhat.rhn.frontend.dto.BaseDto; import com.redhat.rhn.testing.RhnBaseTestCase; import java.io.StringWriter; import java.util.HashMap; import java.util.LinkedList; import java.util.List; import java.util.Map; /** * CSVWriterTest * @version $Rev$ */ public class CSVWriterTest extends RhnBaseTestCase { public void setUp() throws Exception { super.setUp(); disableLocalizationServiceLogging(); } public void testMimeType() { ExportWriter writer = new CSVWriter(new StringWriter()); assertEquals("text/csv", writer.getMimeType()); } public void testListOutput() throws Exception { ExportWriter writer = new CSVWriter(new StringWriter()); List values = new LinkedList(); values.add("val1"); values.add("val2"); values.add("val3"); values.add("val4"); writer.write(values); assertEquals("val1,val2,val3,val4\n", writer.getContents()); } public void testListofMaps() throws Exception { ExportWriter writer = new CSVWriter(new StringWriter()); List columns = new LinkedList(); columns.add("column1"); columns.add("column2"); columns.add("column3"); columns.add("nullColumn"); List values = getTestListOfMaps(); boolean failed = false; try { writer.write(values); } catch (IllegalArgumentException ia) { failed = true; } assertTrue(failed); writer.setColumns(columns); writer.write(values); assertTrue(writer.getContents(). startsWith("**column1**,**column2**,**column3**,**nullColumn**\n")); assertTrue(writer.getContents(). endsWith("cval1-9,cval2-9,cval3-9,\n")); } public void testListofDtos() throws Exception { ExportWriter writer = new CSVWriter(new StringWriter()); List columns = new LinkedList(); columns.add("fieldOne"); columns.add("fieldTwo"); columns.add("fieldThree"); writer.setColumns(columns); List values = new LinkedList(); for (int i = 0; i < 10; i++) { TestCsvDto dto = new TestCsvDto(); dto.setFieldOne("f1 - " + i); dto.setFieldTwo("f2 - " + i); dto.setFieldThree("f3 - " + i); dto.setId(new Long(i)); values.add(dto); } writer.write(values); assertTrue(writer.getContents(). startsWith("**fieldOne**,**fieldTwo**,**fieldThree**\n")); assertTrue(writer.getContents(). endsWith("f1 - 9,f2 - 9,f3 - 9\n")); } public static List getTestListOfMaps() { List values = new LinkedList(); for (int i = 0; i < 10; i++) { Map testmap = new HashMap(); testmap.put("column1", "cval1-" + i); testmap.put("column2", "cval2-" + i); testmap.put("column3", "cval3-" + i); values.add(testmap); } return values; } public class TestCsvDto extends BaseDto { private Long id; private String fieldOne; private String fieldTwo; private String fieldThree; public Long getId() { return id; } /** * @return Returns the fieldOne. */ public String getFieldOne() { return fieldOne; } /** * @param fieldOneIn The fieldOne to set. */ public void setFieldOne(String fieldOneIn) { this.fieldOne = fieldOneIn; } /** * @return Returns the fieldThree. */ public String getFieldThree() { return fieldThree; } /** * @param fieldThreeIn The fieldThree to set. */ public void setFieldThree(String fieldThreeIn) { this.fieldThree = fieldThreeIn; } /** * @return Returns the fieldTwo. */ public String getFieldTwo() { return fieldTwo; } /** * @param fieldTwoIn The fieldTwo to set. */ public void setFieldTwo(String fieldTwoIn) { this.fieldTwo = fieldTwoIn; } /** * @param idIn The id to set. */ public void setId(Long idIn) { this.id = idIn; } } }