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();
44
45 assertEquals(1, beanList.size());
46 assertEquals(EXPECTED_UUID, beanList.get(0).getUuid());
47 }
48 }