/* * * Copyright (c) 2013 - 2014 INT - National Institute of Technology & COPPE - Alberto Luiz Coimbra Institute - Graduate School and Research in Engineering. * See the file license.txt for copyright permission. * */ package carga; import java.util.ArrayList; import java.util.Arrays; import java.util.List; import modelo.TipoUsuario; import modelo.Usuario; import org.testng.annotations.BeforeClass; import org.testng.annotations.Test; import service.TipoUsuarioAppService; import service.UsuarioAppService; import service.controleTransacao.FabricaDeAppService; import service.exception.AplicacaoException; import util.Constantes; import util.JsonConfigLoader; import com.google.gson.Gson; /** * Sobre a Carga: * � uma Carga do sistema, portanto deve herdar de CargaBase e * implementar o m�todo executar(). * Nesse m�todo executar � que � chamado os outros m�todos que s�o * as et�pas dessa carga. * Portanto se � necessario rodar um m�todo depois do outro, eles devem ser chamados * na ordem correta. Ex: * incluiHP() vem antes de inicializaHP(), portanto no m�todo executar() eles devem ser chamados nessa ordem. * * Terminado de executar todas as etapas � preciso retornar true. * Se houver algum problema(exce��o) na execu��o de um das etapas, essa exce��o deve ser lancada * * Essa Carga: * Classe respons�vel pela inclus�o de Tipos de Usu�rio e de Usu�rio. * � usada na carga do sistema e deve ser a primeira a ser executada. * Est� criando um usu�rio para cada tipo. (dma) * * @author felipe.arruda * */ public class CargaUsuario extends CargaBase{ // Services public TipoUsuarioAppService tipoUsuarioService; public UsuarioAppService usuarioService; public CargaUsuario(){ try { tipoUsuarioService = FabricaDeAppService.getAppService(TipoUsuarioAppService.class); usuarioService = FabricaDeAppService.getAppService(UsuarioAppService.class); } catch (Exception e) { e.printStackTrace(); } } /** * Executa a inclusao dos tipos de usuario */ @Override public boolean executar() throws AplicacaoException { this.incluirTiposDeUsuario(); return true; } public List<Usuario> recuperaUsuariosDeArquivoConfigJson(){ System.out.println( JsonConfigLoader.getJson(Constantes.CAMINHO_ABSOLUTO_ARQUIVO_USUARIOS_CARGA) ); String json = JsonConfigLoader.getJson(Constantes.CAMINHO_ABSOLUTO_ARQUIVO_USUARIOS_CARGA); Gson gson = new Gson(); Usuario[] arrayUsuarios = gson.fromJson(json, Usuario[].class); ArrayList<Usuario> usuarios = new ArrayList<Usuario>(Arrays.asList(arrayUsuarios)); return usuarios; } public void incluirTiposDeUsuario() throws AplicacaoException { TipoUsuario tipoUsuarioAdmin = new TipoUsuario(); TipoUsuario tipoUsuarioAluno = new TipoUsuario(); TipoUsuario tipoUsuarioGestor = new TipoUsuario(); TipoUsuario tipoUsuarioEngenheiro = new TipoUsuario(); tipoUsuarioAdmin.setTipoUsuario(TipoUsuario.ADMINISTRADOR); tipoUsuarioAdmin.setDescricao("O usu�rio ADMINISTRADOR pode realizar qualquer opera��o no Sistema."); tipoUsuarioAluno.setTipoUsuario(TipoUsuario.ALUNO); tipoUsuarioAluno.setDescricao("O usu�rio ALUNO pode realizar apenas consultas e impress�o de relat�rios nas telas " + "relativas ao Horizonte de Planejamento (HP,Periodo PMP, Periodo PAP) e n�o acessa " + "Administra��o e Eng. Conhecimento"); tipoUsuarioGestor.setTipoUsuario(TipoUsuario.GESTOR); tipoUsuarioGestor.setDescricao("O usu�rio GESTOR pode realizar qualquer opera��o no Sistema, por�m n�o possui acesso" + "as �reas de Administra��o e Engenharia de Conhecimento."); tipoUsuarioEngenheiro.setTipoUsuario(TipoUsuario.ENGENHEIRO_DE_CONHECIMENTO); tipoUsuarioEngenheiro.setDescricao("O usu�rio ENGENHEIRO pode realizar a parte de Logica Fuzzy (Engenharia de Conhecimento)" + "no Sistema. Por�m, n�o possui acesso a �rea Administrativa."); tipoUsuarioService.inclui(tipoUsuarioAdmin); tipoUsuarioService.inclui(tipoUsuarioAluno); tipoUsuarioService.inclui(tipoUsuarioGestor); tipoUsuarioService.inclui(tipoUsuarioEngenheiro); List<Usuario> usuarios = recuperaUsuariosDeArquivoConfigJson(); Usuario usuarioAdmin = usuarios.get(0); usuarioAdmin.setTipoUsuario(tipoUsuarioAdmin); Usuario usuarioAluno = usuarios.get(1); usuarioAluno.setTipoUsuario(tipoUsuarioAluno); Usuario usuarioGestor = usuarios.get(2); usuarioGestor.setTipoUsuario(tipoUsuarioGestor); Usuario usuarioEngenheiro = usuarios.get(3); usuarioEngenheiro.setTipoUsuario(tipoUsuarioEngenheiro); usuarioService.inclui(usuarioAdmin, usuarioAdmin.getSenha()); usuarioService.inclui(usuarioEngenheiro, usuarioEngenheiro.getSenha()); usuarioService.inclui(usuarioGestor, usuarioGestor.getSenha()); usuarioService.inclui(usuarioAluno, usuarioAluno.getSenha()); } }