View Javadoc
1   package com.opencsv.bean;
2   
3   import com.opencsv.CSVReader;
4   import com.opencsv.bean.mocks.MockBean;
5   import org.junit.jupiter.api.Test;
6   
7   import java.io.StringReader;
8   import java.util.List;
9   
10  import static org.junit.jupiter.api.Assertions.assertEquals;
11  import static org.junit.jupiter.api.Assertions.assertTrue;
12  
13  /**
14   * This test was created based on an question posted on stack overflow
15   * on how to handle formatted doubles.
16   * Created by scott on 11/15/15.
17   */
18  public class CsvToBeanDoubleTest {
19  
20      private static final double DOUBLE_NUMBER = 10023000000000d;
21  
22      private static final String TEST_STRING = "name,orderNumber,doubleNum\n" +
23              "kyle,abc123456,10023000000000\n" +
24              "jimmy,def098765,1.0023E+13 ";
25  
26      private CSVReader createReader() {
27          StringReader reader = new StringReader(TEST_STRING);
28          return new CSVReader(reader);
29      }
30  
31      @Test
32      public void parseBeanWithNoAnnotations() {
33          HeaderColumnNameMappingStrategy<MockBean> strategy = new HeaderColumnNameMappingStrategy<>();
34          strategy.setType(MockBean.class);
35          CsvToBean<MockBean> bean = new CsvToBeanBuilder<MockBean>(createReader())
36                  .withMappingStrategy(strategy)
37                  .build();
38  
39          List<MockBean> beanList = bean.parse();
40          assertEquals(2, beanList.size());
41          assertTrue(beanList.contains(new MockBean("kyle", null, "abc123456", 0, DOUBLE_NUMBER)));
42          assertTrue(beanList.contains(new MockBean("jimmy", null, "def098765", 0, DOUBLE_NUMBER)));
43      }
44  }