package com.querydsl.sql.dml;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
import java.util.*;
import org.junit.Test;
import com.querydsl.core.types.Path;
import com.querydsl.sql.domain.QEmployee;
public class DefaultMapperTest extends AbstractMapperTest {
private static final QEmployee emp = QEmployee.employee;
@Test
public void extract() {
Map<Path<?>, Object> values = DefaultMapper.DEFAULT.createMap(emp, employee);
assertEquals(employee.getDatefield(), values.get(emp.datefield));
assertEquals(employee.getFirstname(), values.get(emp.firstname));
assertEquals(employee.getLastname(), values.get(emp.lastname));
assertEquals(employee.getSalary(), values.get(emp.salary));
assertEquals(employee.getSuperiorId(), values.get(emp.superiorId));
assertEquals(employee.getTimefield(), values.get(emp.timefield));
}
@Test
public void extract2() {
Map<Path<?>, Object> values = DefaultMapper.DEFAULT.createMap(emp, new EmployeeX());
assertTrue(values.isEmpty());
}
@Test
public void preservedColumnOrder() {
final Map<String, Path<?>> columns = DefaultMapper.DEFAULT.getColumns(emp);
final List<String> expectedKeySet = Arrays.asList("id", "firstname", "lastname",
"salary", "datefield", "timefield", "superiorId");
assertEquals(expectedKeySet, new ArrayList<String>(columns.keySet()));
}
}