View Javadoc
1   package com.opencsv.bean;
2   
3   import com.opencsv.bean.mocks.MockBean;
4   import com.opencsv.util.MockDataBuilder;
5   import org.junit.jupiter.api.DisplayName;
6   import org.junit.jupiter.params.ParameterizedTest;
7   import org.junit.jupiter.params.provider.Arguments;
8   import org.junit.jupiter.params.provider.MethodSource;
9   
10  import java.util.List;
11  import java.util.UUID;
12  import java.util.stream.Stream;
13  
14  import static org.junit.jupiter.api.Assertions.assertEquals;
15  
16  public class NonPrimitiveConversionTest {
17      private static final String UUID_STRING = "7F804F85-0064-4E96-8260-3FD47EA6A8BB";
18      private static final UUID EXPECTED_UUID = UUID.fromString(UUID_STRING);
19  
20      public static Stream<Arguments> buildLegalUUIDValues() {
21          return Stream.of(
22                  Arguments.of(UUID_STRING),
23                  Arguments.of(UUID_STRING.toLowerCase()),
24                  Arguments.of(UUID_STRING.toUpperCase()),
25                  Arguments.of(UUID_STRING + " "),
26                  Arguments.of(" " + UUID_STRING),
27                  Arguments.of(" " + UUID_STRING + " ")
28          );
29      }
30  
31      @DisplayName("Can convert UUID values.")
32      @ParameterizedTest
33      @MethodSource("buildLegalUUIDValues")
34      public void convertUUID(String uuidValue) {
35          MockDataBuilder builder = new MockDataBuilder();
36          builder.setHeaderString("id,uuid");
37          builder.addColumns("2", uuidValue);
38          HeaderColumnNameMappingStrategy<MockBean> strategy = new HeaderColumnNameMappingStrategy<>();
39          strategy.setType(MockBean.class);
40          List<MockBean> beanList = new CsvToBeanBuilder<MockBean>(builder.buildStringReader())
41                  .withMappingStrategy(strategy)
42                  .withFilter(null)
43                  .build().parse(); // Extra arguments for code coverage
44  
45          assertEquals(1, beanList.size());
46          assertEquals(EXPECTED_UUID, beanList.get(0).getUuid());
47      }
48  }