Menu

setValue en test a un atributo de tipo clase

Jose Ruiz
2013-10-30
2024-06-29
  • Jose Ruiz

    Jose Ruiz - 2013-10-30

    El atributo de la clase Contribuyente es:

    @ManyToOne(fetch = FetchType.LAZY, optional = false)
    @DescriptionsList(descriptionProperties = "abreviatura, nombre")
    private TipoDeDocumento fkTipoDeDocumento;

    y la clase test es:

    public class ContribuyenteTest extends ModuleTestBase {

    public ContribuyenteTest(String testName) {
        super(testName, "Invoicing", "Contribuyente");
    }
    
    public void testCreateReadUpdateDelete() throws Exception {
        execute("CRUD.new");
        setValue("nombre", "JUNIT");
        setValue("abreviatura", "J");       
        setValue("tipodedocumento.abreviatura", "DNI");
    

    Para realizar el test le asigno un valor a nombre, abreviatura, pero al campo fkTipoDeDocumento de la clase Contribuyente no se como asignarle un valor.

    Se que es algo básico pero no encuentro como hacerlo.

     
  • gregorio

    gregorio - 2013-10-30

    Hola José.
    Y cual la estructura de TipoDeDocumento?
    Debes de asignarle el valor del id a tipodedocumento.id que corresponde a "DNI" inténtalo.
    Al menos así lo entiendo.

     
  • Jose Ruiz

    Jose Ruiz - 2013-10-31

    Hola Gregorio. Gracias a tu respuesta lo pude resolver

    La líne en cuestion para que funcione sería:

    setValue("fkTipoDeDocumento.oid", "402813704209ccff014209d5bde50001");

     
    👍
    1
  • gregorio

    gregorio - 2013-10-31

    Perfecto Jose.
    Pero: sería mejor que tengas un @NamedQuery que te devuelva el oid del tipoDeDocumento. Es algo tedioso tener que tipear todos esos caracteres.

     
  • Iván Castillo

    Iván Castillo - 2024-06-29

    Bueno yo creé un método publico estático en la clase incrustada. ahí entra el nombre y me devuelve el objeto, es una forma. Pero no hubiera llegado a la solución sin la explicación de este post. Gracias

                Tiposcuenta objTipoCuenta;
                objTipoCuenta = Tiposcuenta.getTipocuenta("05-Salidas");
                setValue("tipoCuentaOrigen.oid",objTipoCuenta.getOid());
    
        public static Tiposcuenta getTipocuenta(String in_nombre) {
            // TODO Auto-generated method stub
            String jpql = "SELECT t FROM Tiposcuenta t "
                    + "WHERE t.nombre = :nombre";
        Query query =  XPersistence.getManager().createQuery(jpql);
        query.setParameter("nombre", in_nombre);
    
        Tiposcuenta obj_tiposCuenta = (Tiposcuenta) query.getSingleResult();            
            return obj_tiposCuenta;
        }
    
     

    Last edit: Iván Castillo 2024-06-29

Log in to post a comment.