JPopulator


He usado la libreria jPopulator para rellenar unos beans y mockear el comportamiento de unos algoritmos.

Estoy intentando mockear un Web Service. Y estaba rellanado los bean generados con la herramienta cxf codegen. Estas herramientas son geniales super útiles, pero los bean no cumplen los estandars. Por ejemplo:

public class ArrayOfPCGError {
    protected List<PCGError> pcgError;

    public List<PCGError> getPCGError() {
        if (pcgError == null) {
            pcgError = new ArrayList<PCGError>();
        }
        return this.pcgError;
    }
}

En esta clase no hay metodo set y el metodo getPCGError no cumple con el atributo “pcgError”. Debiera ser: getPcgError()

Si le dices a jPopulator que te lo rellene, salta una excepcion.

nov 11, 2014 XX:XX:20 PM io.github.benas.jpopulator.impl.PopulatorImpl populateBeanWithExcludeFields
GRAVE: Unable to populate an instance of type class xxx.yyy.zzz.ArrayOfPCGError
java.lang.NoSuchMethodException: Unknown property 'pcgError' on class 'class xxx.yyy.zzz.ArrayOfPCGError'

¿Como solucionarlo?. Añadiendo a la libreria una nueva funcionalidad. La de excluir algunos metodos. HE añadido a la interfaz Populator el siguiente metodo:

public interface Populator {
    //...
    <T> T populateBeanWithExcludeFields(Class<T> type, String... excludeFieldsName);
}

He implementao el metodo resultante sin repetir codigo y he realizado los test.

Espero lo agreguen como funcionalidad, mientras lo tengo compilado en mi maven, en local.

Anuncios
JPopulator