package org.nextprot.api.web.service.impl.writer; import org.apache.poi.hssf.usermodel.HSSFRow; import org.apache.poi.hssf.usermodel.HSSFSheet; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.junit.Assert; import org.junit.Ignore; import org.junit.Test; import org.nextprot.api.web.dbunit.base.mvc.WebIntegrationBaseTest; import java.io.*; import java.util.Arrays; @Ignore public class NPEntryOverviewXLSWriterTest extends WebIntegrationBaseTest { @Test public void testXLSOverviewWriterStream() throws Exception { ByteArrayOutputStream out = new ByteArrayOutputStream(); EntryXLSWriter writer = new EntryOverviewXLSWriter(out); writer.write(Arrays.asList("NX_P48730")); writer.close(); assertXLSEquals(out, new String[] { "acc. code", "protein name", "gene name(s)", "chromosome", "proteomics", "disease", "structure", "#isof.", "#variants", "#PTMS", "mutagenesis", "tissue expr.", "PE" }, new Object[] { "NX_P48730","Casein kinase I isoform delta","CSNK1D","17q25.3","yes","yes","yes",2.0,54.0,8.0,"yes","yes","Evidence at protein level"}); } //@Test public void exportXLSFile() throws Exception { FileOutputStream out = new FileOutputStream("/Users/fnikitin/Downloads/proteins.xls"); EntryXLSWriter writer = new EntryOverviewXLSWriter(out); writer.write(Arrays.asList("NX_P48730")); } private static void assertXLSEquals(ByteArrayOutputStream baos, String[] headers, Object[] values) throws IOException { InputStream is = new ByteArrayInputStream(baos.toByteArray()); HSSFWorkbook workbook = new HSSFWorkbook(is); HSSFSheet worksheet = workbook.getSheet("Proteins"); HSSFRow headerRow = worksheet.getRow(0); HSSFRow valuesRow = worksheet.getRow(1); for (int i=0 ; i<headers.length ; i++) { Assert.assertEquals(headers[i], headerRow.getCell(i).getStringCellValue()); if (i>=7 && i<=9) Assert.assertEquals(values[i], valuesRow.getCell(i).getNumericCellValue()); else Assert.assertEquals(values[i], valuesRow.getCell(i).getStringCellValue()); } workbook.close(); } }