Continuemos.
Veamos otro ejemplo guardar el examen con sus preguntas, pero tenemos que modificar un poco nuestras
interfaces, agregar algunos métodos del contrato de implementación, por ejemplo, método, guardar
en el repositorio examen y guardar preguntas, varias preguntas del examen en el repositorio preguntas.
Entonces nos vamos a ir con control TAB primero a la interfaz repositorio de examen examen repositorio.
Esta de acá va a devolver un tipo examen el examen que se guardó por ejemplo en la base dato en alguna
tabla, en algún lugar que contenga una llave foránea.
La idea que guardemos un objeto, un examen con los datos se persiste en la tabla y devuelve este mismo
objeto examen pero con el Heidy, con el Heidy de registro de la tabla de la auto examen guardar y pasamos
el examen.
El examen que queremos guardar está molesto.
Lo siguiente lo mismo, pero en preguntas.
Entonces nos vamos a ir a pregunta repositorio bajamos voy.
Realmente guardamos la pregunta del examen no devuelve nada.
Guardar varias un list de preguntas, pero la pregunta la tenemos como del tipo string.
Perfecto.
Preguntas.
Estamos listo.
Lo siguiente implementar el contrato en la interfaz cérvix también acá examen servis lo mismo.
Guardar examen devuelve un examen
perfecto.
Tenemos debiese marcarlo un error en la implementación del examen del service.
Entonces nos vamos a ir a service a en pie.
El examen servis en piel por acá se fijan acá marca el error.
Entonces tenemos que agregar este método sobre el error.
Implementamos el método.
Guardar OK de que la implementamos.
Bueno, primero vamos a guardar la pregunta mediante el repositorio de preguntas, pero tengo que preguntar
si el examen contiene preguntas.
Entonces con un if examen el examen que estaba guardando?
Punto g preguntas punto is empty.
Si está vacío.
Si esto es igual a false.
Así que pueden colocar igual igual a fols.
O simplemente lo negamos.
Para eso nos vamos acá en el IF con el cine reclamacion por acá.
Entonces al comienzo del if sin exclamación.
Si es distinto a que esté vacío.
O de otra forma, invocar el Zeus que se alegre de cero.
En el fondo, esto es, si contiene elementos, si no tiene elementos, si no es vacío, perfecto.
Pregunta Repositorio
punto warfare varias se guardar varia y qué pasamos las preguntas examen con el que tiene preguntas.
En qué preguntas le mandamos a guardar al otro repositorio?
Y recuerden, ese otro repositorio podría ser cualquier fuente de datos, cualquier source, ya sea
anotarla el acetato.
Y lo mismo puede ser incluso con Mongo DB no se cuele o Mocoa a SQL transaccional da lo mismo.
O incluso podría ser un repositorio que se comunica o un cliente http que se comunica a otro servicio
externo a una API rest y de ahí a enviar los datos para guardar en otro servidor.
También podríamos tener un sistema de micro servicios, por ejemplo.
Bueno, creo que esto ya lo he dicho bastante, pero siempre es bueno recordar bien.
Y en el ratón super simple a quitar el null.
Examen repositorio punto guardar examen de fican guarda y devuelve el examen que está persistido en
la acepto que sea insertado con el Heidy.
Esto es importante.
Ahora se que si estamos listos se que nos vamos a ir a la clase test.
Vamos a agregar un nuevo método.
Bajamos por acá otro método, por ejemplo inser método guardar examen,
incluso colocar texto test o prueba guardar examen.
Bajamos entonces partamos primero con el güen.
Entonces wenn cuando se invoque del repository o del examen repositorio punto guardar el qué tengo que
pasar datos de ejemplo, pero vamos a partir primero con Henny ese con cualquier tipo examen y dentro
del Henny examen punto.
Es decir, estamos diciendo que cuando se invoque el guardar del repositorio de examen y pasemos cualquier
tipo examen, cualquier instancia, objeto de examen, vamos a devolver por acá.
Entonces ratón de ratón, un nuevo cemen llega.
Tenemos que tener un dato de ejemplo, un dato de prueba.
Podríamos utilizar la clase datos, se acuerdan?
Nos vamos a ir a datos.
Una constante bajamos un public final static examen examen la cacería en singular un solo examen.
A diferencia de exámenes que es una lista igual new examen con cualquier dato ejemplo por ejemplo 8
l coma.
Es decir, el Heidy lleva un nombre fìsica.
Ahí lo tenemos.
Volvemos al examen, texto, datos, punto de examen.
Perfecto, entonces, cuando guardemos cualquier tipo de examen, lo que sea, cualquier instancia,
entonces va a volver el examen con ejemplo con el Heidy 8 física lo vamos a llamar.
Entonces el examen servis devuelve un examen
examen igual servis punto porque están en served punto guardar.
Un dato ejemplo, datos, examen.
Vamos a guardar también datos.
Todo lo mismo podría ser cualquiera.
Datos, exámenes, examen, devices, devolver este daka que en realidad el mismo se fijan.
Acá tengo devolviendo datos, punto, examen de física.
Y acá estamos guardando este.
Entonces podríamos probar hacer primero nul examen punto g taide.
Importante verificar el Heidy que no sea ácido.
También podríamos comprobar que le dice 8 iguales 8 8 valor esperado y el real o actual sería examen.
Punto increíble.
Qué más podríamos revisar?
El nombre lo mismo acerto iguales física.
Ojo, acá puse de física pero sin acento.
Entonces debiste ser distinto.
Estaba punto de ennombre.
Bien, acá solamente estamos probando el examen y estoy viendo la pregunta.
Después vamos a probar la pregunta.
Bueno, va a fallar por esto no aceptó, solamente te va a fallar.
Por esto de acá vamos a levantar incluso acá mismo.
Levantamos solamente este texto.
A examen repository otro implementa bueno, acá marca un error porque la interfaz exámen repositorio
agregamos el método Guardar.
Entonces implementamos el método acá para que no matki, el error nada más y lo dejamos así, sin nada
por ahora.
De esta forma, ahora volvemos a levantar.
Nos vamos a texto.
Fallaci vigen porque con acento física y lo puso sin acento.
Entonces está bien, ahora lo cambiamos con acento.
Volvemos a levantar, incluso levantamos todo.
Por acá tenemos té guardar y pasa.
Ningún problema.
Ahora también podríamos verificar con verifi.
Recuerden verificar la invocaciones de los métodos del repositorio de los Mok.
Entonces verifi.
Primero vamos a probar repositorio repositorio.
Invocamos después del paréntesis puntó guardar Henny examen punto clase s verifica que se llame el guardar
independiente.
El objeto examen que estemos guardando que estemos pasando puede ser cualquiera.
Voy a bajar acá.
Acá también verifi.
Bueno, eso no va a pasar.
De hecho lo vamos a levantar ahora.
Podría pasar sin ningún problema.
Está bien.
Pero qué pasa con.?
Pregunta Repositorio verifi pregunta repositorio punto guardar varias lleca también Henny List Acababamos
a cualquier tipo.
Pregunta Cualquier lista de preguntas se fijan.
Da lo mismo se da invocar este método.
Va a pasar la prueba, se va a enfocarse a llamar.
Vamos a ver, lo más probable que no, pero veamos.
No se fijan, nos invoca el método Guardar varias en el examen Servis nos está llamando.
No hay una interacción con este Mok.
Por qué?
Bueno, porque estamos guardando en mi examen acá estamos guardando un examen.
Pero si su pregunta y como no tiene pregunta.
Por ejemplo, si nos vamos acá al guardar del servis, nos vamos a simplement al service Alexan a servis
allá en piel.
Vemos que solamente se llama método guardar varias.
Cuando exciten la pregunta cuando son distintas de vacía y en realidad están pasando un examen vacío
sin preguntas.
Acá vacío.
Datos, punto, examen, pero no tienen la pregunta, entonces bueno, para qué pase esta prueba?
Tendríamos que hacer lo siguiente por ejemplo, pasar un examen con preguntas cortamos esto examen acá,
nuevo examen, le pegamos eso.
Entonces vamos a guardar new examen acá.
Pero tengo que pasar las preguntas en new examen, punto, set, preguntas, datos bueno y pasado a
las preguntas de ejemplo, punto, pregunta se fijan?
Acá tenemos un examen de prueba y pasamos preguntas de cruda y guardamos new examen con las preguntas.
Entonces ahora sé qué va a pasar si levantamos y dirá está todo bien?
Porque ahora, como tiene preguntas, el tamaño es mejor que cero.
No es vacío.
Bueno, se da invocar pregunta repositorio, guardar varias.
Iba a guardar cierto las preguntas.
Bueno, con esto ya tenemos un ejemplo bastante completo y vemos cómo interactúan los distintos repositorio
del examen y pregunta dentro del servis.
Y por supuesto, estos repositorio lo estamos simulando con moquitos.
Da lo mismo la implementación como esté escrito por detrás de escena, como esté programado.
Acá lo importante es probar los datos, nuestros datos con datos de prueba, con datos de ejemplo y
ver si realmente nuestro sujeto de prueba que es el service, el examen servis funciona bien y si se
están llamando los métodos que correspondan de los Shinto repositorio se fijan dependiendo si el examen
tiene o no tiene preguntas.
Se va a embocar este de acá guardar tarias sí o no?
En fin, eso es importante.
Validar, verificar eso.
Nada más.
Nos vemos en la siguiente clase.