¿Qué es una validación en Java Lite?

Iniciado por etcheverrypablol, 24 Abril 2018, 19:15 PM

0 Miembros y 1 Visitante están viendo este tema.

etcheverrypablol

Hola.

Estoy haciendo un proyecto en la Universidad, en la que tenemos que programar, y tenemos que hacer uso de JavaLite.

Hay una parte del código del programa que no entiendo y quiero saber si alguien me puede guiar.  Tiene que ver con el uso de validaciones. Entranto a la página oficial de JavaLite: http://javalite.io/validations puedo ver la siguiente explicación:

Validation of attribute presence
In order to add any validation, a model will declare a static bloc at the top of a class definition, and invoke all validation declaration inside this block:
public class Person extends Model {
    static{
        validatePresenceOf("first_name", "last_name");
    }   
}

The method Model.validatePresenceOf() takes a vararg of strings, which allows to specify a list of attribute names (column names) in one line of code.

Sucede que no entiendo bien qué hace validatePresenceOf().
Busco info en Internet pero no encuentro. ¿Alguien me puede guiar?

srWhiteSkull

Indica que esos campos no pueden estar vacíos. Por ejemplo el típico formulario que rellenas y tienes los campos nombre y apellido, pues si tienes asociado un modelo con esos campos y usas esa sentencia, al intentar crear un registro de ese modelo con esos campos vacíos saltará una excepción.

Triggering of validation
triggering of validations causes these actions:

Call Model.validate() method (will not throw exception)
Call Model.save() method (will not throw exception)
Call Model.saveIt() method (will throw exception) -> aquí
Call Model.createIt() method (will throw exception) -> y aquí

Los errores se almacenan en un mapa que te provee el método del modelo, errors().

http://javalite.io/validations#usage-in-a-web-application

etcheverrypablol

#2
Muchas gracias!
Ahora voy entendiendo un poco más. Y aprovecho para consultarte de paso, cómo funciona el isValid().
Por ejemplo, tengo este código:

 @Test
 public void validatePrecenseOfUsernames(){
     User user = new User();
     user.set("username", "");

     assertEquals(user.isValid(), false);
 }


Yo en principio pensé que user.isValid() siempre es igual a True, pero no se si estoy en lo cierto. ¿Tu qué opinas?

srWhiteSkull

Ni idea, eso tienes que consultar los métodos que diposne el modelo base. Yo no he usado Java Lite, en cambio he usado otro frameworks y funcionan de forma similar, no son nada del otro mundo, es una cuestión de gustos ( y licencias).

El ejemplo que muestras parece ser parte de un código de pruebas. Aserciones.

http://javalite.io/jspec

sobre la clase Model...

https://github.com/javalite/activejdbc/blob/master/activejdbc/src/main/java/org/javalite/activejdbc/Model.java

etcheverrypablol

Bueno, voy a seguir investigando.

Te agradezco mucho por el github de la clase Model, muy buen material de consulta.
Sí, ese código es porque estamos usando JUnit :D Tenemos que hacer varios tests.

Saludos!