Testing de bases de datos dinámicas
Requerimientos:
      
    
       
  
    
    
   
    
    
Requerimientos:
- ejbjmoordb
- jmoordbUnit
- Base de datos: MongoDB
Muchas ocasiones deseamos hacer testing de las bases de datos sin afectar las de producción
podemos utilizar el método repository.setDatabase(nombre-base-datos) para indicar la base de datos con la que deseamos hacer las pruebas, si no existe se creara en tiempo de ejecución.
Debemos establecerlo en el método init()
rolRepository.setDatabase("transporte_test");
Ejemplo:
Tenemos una base de datos llamada transporte y deseamos hacer los test sobre una base de datos que crearemos dinamicamente llamada transporte_test
Código
/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package com.avbravo.transportetest.test;
import com.avbravo.avbravoutils.JsfUtil;
import com.avbravo.ejbjmoordb.pojos.UserInfo;
import com.avbravo.jmoordbunit.anotation.Test;
import com.avbravo.jmoordbunit.test.UnitTest;
import com.avbravo.transporteejb.entity.Rol;
import com.avbravo.transporteejb.repository.RolRepository;
import java.util.ArrayList;
import java.util.List;
import javax.annotation.PostConstruct;
import javax.annotation.PreDestroy;
import javax.ejb.DependsOn;
import javax.ejb.Singleton;
import javax.ejb.Startup;
import javax.inject.Inject;
import org.bson.Document;
/**
 *
 * @author avbravo
 */
@Startup
@Singleton
@DependsOn("ConductorTest")
public class RolTest {
    @Inject
    UnitTest unitTest;
    @Inject
    RolRepository rolRepository;
     @PostConstruct
    void init() {
        unitTest.start(RolTest.class);
        rolRepository.setDatabase("transporte_test");
        findAll();
        save();
      delete();
    }
      @PreDestroy
    public void destroy() {
        unitTest.end(RolTest.class);
    }
    @Test
    private void findAll(){
        unitTest.assertNotEquals("findAll()", 0, rolRepository.findAll().size());
    }
    @Test
    private void save(){
        try {
            Rol rol = new Rol();
            rol.setIdrol("TEST");
            rol.setRol("ROL TESTING");
            rol.setActivo("si");
            List<UserInfo> userInfoList = new ArrayList<>();
            userInfoList.add(new UserInfo("xx", "avbravo", JsfUtil.getFechaActual(), "save()"));
            rol.setUserInfo(userInfoList);
            unitTest.assertTrue("save()", rolRepository.save(rol));
        } catch (Exception e) {
            unitTest.fail("save()", rolRepository.getException().toString());
            System.out.println("save() "+e.getLocalizedMessage());
        }
    }
    @Test
    private void delete(){
        unitTest.assertTrue("delete()", rolRepository.delete(new Document("idrol","TEST")));
    }
}

Comments