/*
* This code is distributed under The GNU Lesser General Public License (LGPLv3)
* Please visit GNU site for LGPLv3 http://www.gnu.org/copyleft/lesser.html
*
* Copyright Denis Pavlov 2009
* Web: http://www.genericdtoassembler.org
* SVN: https://svn.code.sf.net/p/geda-genericdto/code/trunk/
* SVN (mirror): http://geda-genericdto.googlecode.com/svn/trunk/
*/
package com.inspiresoftware.lib.dto.geda.assembler;
import com.inspiresoftware.lib.dto.geda.adapter.ValueConverter;
import com.inspiresoftware.lib.dto.geda.assembler.examples.converter.TestConverter3;
import com.inspiresoftware.lib.dto.geda.assembler.examples.converter.TestDto3Class;
import com.inspiresoftware.lib.dto.geda.assembler.examples.converter.TestDto3Class.Decision;
import com.inspiresoftware.lib.dto.geda.assembler.examples.converter.TestEntity3Class;
import com.inspiresoftware.lib.dto.geda.exception.GeDAException;
import com.inspiresoftware.lib.dto.geda.utils.ParameterizedSynthesizer;
import com.inspiresoftware.lib.dto.geda.utils.ParameterizedSynthesizer.Parameters;
import org.junit.Test;
import org.junit.runner.RunWith;
import java.util.*;
import static org.junit.Assert.assertEquals;
/**
* DTOAssembler test.
*
* @author Denis Pavlov
* @since 1.0.0
*
*/
@RunWith(value = ParameterizedSynthesizer.class)
public class DTOAssemblerConvertersTest {
private String synthesizer;
/**
* @param synthesizer parameter
*/
public DTOAssemblerConvertersTest(final String synthesizer) {
super();
this.synthesizer = synthesizer;
}
/**
* @return synthesizers keys
*/
@Parameters
public static Collection<String[]> data() {
final List<String[]> params = new ArrayList<String[]>();
for (final String param : MethodSynthesizerProxy.getAvailableSynthesizers()) {
params.add(new String[] { param });
}
return params;
}
/**
* Test assembler that uses converter.
*
* @throws GeDAException exception
*/
@Test
public void testWithConversion() throws GeDAException {
final TestDto3Class dto = new TestDto3Class();
final TestEntity3Class entity = new TestEntity3Class();
entity.setDecision(true);
final ValueConverter conv3toDto = new TestConverter3();
final Map<String, Object> converters = new HashMap<String, Object>();
converters.put("boolToEnum", conv3toDto);
final Assembler assembler =
DTOAssembler.newCustomAssembler(TestDto3Class.class, TestEntity3Class.class, synthesizer);
assembler.assembleDto(dto, entity, converters, null);
assertEquals(Decision.Decided, dto.getMyEnum());
dto.setMyEnum(Decision.Undecided);
assembler.assembleEntity(dto, entity, converters, null);
}
}