Skip to content

Commit

Permalink
add new test for custom config, move casting and defaultConfig to the…
Browse files Browse the repository at this point in the history
… config package
  • Loading branch information
ozlerhakan committed Dec 1, 2018
1 parent bb484ff commit 9ac894a
Show file tree
Hide file tree
Showing 9 changed files with 112 additions and 8 deletions.
2 changes: 1 addition & 1 deletion src/main/java/com/poiji/bind/mapping/HSSFUnmarshaller.java
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,10 @@
import com.poiji.annotation.ExcelCellRange;
import com.poiji.annotation.ExcelRow;
import com.poiji.bind.Unmarshaller;
import com.poiji.config.Casting;
import com.poiji.exception.IllegalCastException;
import com.poiji.exception.PoijiInstantiationException;
import com.poiji.option.PoijiOptions;
import com.poiji.util.Casting;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.CellType;
import org.apache.poi.ss.usermodel.DataFormatter;
Expand Down
2 changes: 1 addition & 1 deletion src/main/java/com/poiji/bind/mapping/PoijiHandler.java
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,10 @@
import com.poiji.annotation.ExcelCellName;
import com.poiji.annotation.ExcelCellRange;
import com.poiji.annotation.ExcelRow;
import com.poiji.config.Casting;
import com.poiji.exception.IllegalCastException;
import com.poiji.exception.PoijiInstantiationException;
import com.poiji.option.PoijiOptions;
import com.poiji.util.Casting;
import org.apache.poi.ss.util.CellAddress;
import org.apache.poi.xssf.eventusermodel.XSSFSheetXMLHandler.SheetContentsHandler;
import org.apache.poi.xssf.usermodel.XSSFComment;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,10 @@
package com.poiji.util;
package com.poiji.config;

import com.poiji.option.PoijiOptions;

/**
* A casting interface to build a custom poiji configuration.
*
* Created by hakan on 22/01/2017.
*/
public interface Casting {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.poiji.util;
package com.poiji.config;

import com.poiji.option.PoijiOptions;

Expand All @@ -14,7 +14,7 @@
/**
* Created by hakan on 22/01/2017.
*/
public class DefaultCasting implements Casting {
public final class DefaultCasting implements Casting {

private int primitiveIntegerValue(String value) {
try {
Expand Down
4 changes: 2 additions & 2 deletions src/main/java/com/poiji/option/PoijiOptions.java
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
package com.poiji.option;

import com.poiji.config.Casting;
import com.poiji.config.DefaultCasting;
import com.poiji.exception.PoijiException;
import com.poiji.util.Casting;
import com.poiji.util.DefaultCasting;

import java.time.format.DateTimeFormatter;
import java.util.Objects;
Expand Down
1 change: 0 additions & 1 deletion src/main/java/com/poiji/util/PoijiConstants.java
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,6 @@ public final class PoijiConstants {
public static final DateTimeFormatter DEFAULT_DATE_TIME_FORMATTER = DateTimeFormatter.ofPattern("dd/M/yyyy");
public static final String XLS_EXTENSION = ".xls";
public static final String XLSX_EXTENSION = ".xlsx";
public static final String ID_PATTERN = "^([A-Z]+)(\\d+)$";

private PoijiConstants() {
}
Expand Down
50 changes: 50 additions & 0 deletions src/test/java/com/poiji/deserialize/CustomConfigTest.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
package com.poiji.deserialize;

import com.poiji.bind.Poiji;
import com.poiji.config.Casting;
import com.poiji.deserialize.model.byid.ConfigPerson;
import com.poiji.option.PoijiOptions;
import org.junit.Test;

import java.io.File;
import java.util.List;

import static org.hamcrest.CoreMatchers.is;
import static org.hamcrest.CoreMatchers.not;
import static org.hamcrest.CoreMatchers.notNullValue;
import static org.junit.Assert.assertThat;

/**
* Created by hakan on 2018-12-01
*/
public class CustomConfigTest {

@Test
public void shouldUseCustomConfig() {

PoijiOptions poijiOptions = PoijiOptions.PoijiOptionsBuilder.settings()
.withCasting(new MyConfig())
.build();

List<ConfigPerson> actualEmployees = Poiji.fromExcel(new File("src/test/resources/employees.xlsx"), ConfigPerson.class, poijiOptions);

assertThat(actualEmployees, notNullValue());
assertThat(actualEmployees.size(), not(0));

ConfigPerson actualEmployee1 = actualEmployees.get(0);

assertThat(actualEmployee1.getEmployeeId(), is("123923"));
assertThat(actualEmployee1.getAge(), is("30"));
assertThat(actualEmployee1.getBirthday(), is("4/9/1987"));
assertThat(actualEmployee1.getName(), is("Joe"));
assertThat(actualEmployee1.getSurname(), is("Doe"));

}

static class MyConfig implements Casting {
@Override
public Object castValue(Class<?> fieldType, String value, PoijiOptions options) {
return value.trim();
}
}
}
52 changes: 52 additions & 0 deletions src/test/java/com/poiji/deserialize/model/byid/ConfigPerson.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
package com.poiji.deserialize.model.byid;

import com.poiji.annotation.ExcelCell;

/**
* Created by hakan on 2018-12-01
*/
public class ConfigPerson {

@ExcelCell(0)
protected String employeeId;

@ExcelCell(1)
protected String name;

@ExcelCell(2)
protected String surname;

@ExcelCell(3)
protected String age;

@ExcelCell(4)
protected String single;

@ExcelCell(5)
protected String birthday;

public String getEmployeeId() {
return employeeId;
}

public String getName() {
return name;
}

public String getSurname() {
return surname;
}

public String getAge() {
return age;
}

public String getSingle() {
return single;
}

public String getBirthday() {
return birthday;
}

}
1 change: 1 addition & 0 deletions src/test/java/com/poiji/util/DefaultCastingTest.java
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package com.poiji.util;

import com.poiji.config.DefaultCasting;
import com.poiji.option.PoijiOptions;
import com.poiji.option.PoijiOptions.PoijiOptionsBuilder;
import org.junit.Before;
Expand Down

0 comments on commit 9ac894a

Please sign in to comment.