/**
*
*/
package net.conselldemallorca.helium.integracio.plugins.registre;
import java.io.ByteArrayOutputStream;
import java.io.InputStream;
import java.security.Principal;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import net.conselldemallorca.helium.core.util.GlobalProperties;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.core.io.FileSystemResource;
import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;
import org.springframework.security.core.Authentication;
import org.springframework.security.core.context.SecurityContextHolder;
/**
* Test plugin registre
*
* @author Limit Tecnologies <limit@limit.es>
*/
public class RegistrePluginTest {
public static void main(String[] args) throws Exception {
try {
new GlobalProperties(new FileSystemResource("/home/likewise-open/LIMIT_CECOMASA/josepg/Feina/config/helium.properties"));
RegistrePluginTest test = new RegistrePluginTest();
//test.notificacio();
//test.nomOficina();
test.entrada();
} catch (Exception ex) {
ex.printStackTrace();
}
}
public void entrada() throws Exception {
establirUsuariAutenticat();
RegistreEntrada registreEntrada = new RegistreEntrada();
DadesOficina dadesOficina = new DadesOficina();
dadesOficina.setOficinaCodi("1-1");
dadesOficina.setOrganCodi("6");
registreEntrada.setDadesOficina(dadesOficina);
DadesInteressat dadesInteressat = new DadesInteressat();
dadesInteressat.setNomAmbCognoms("Josep Gayà Proves");
dadesInteressat.setMunicipiNom("Tegucigalpa");
registreEntrada.setDadesInteressat(dadesInteressat);
DadesAssumpte dadesAssumpte = new DadesAssumpte();
dadesAssumpte.setIdiomaCodi("2");
dadesAssumpte.setTipus("OF");
dadesAssumpte.setAssumpte("123 provant 123");
registreEntrada.setDadesAssumpte(dadesAssumpte);
List<DocumentRegistre> documents = new ArrayList<DocumentRegistre>();
DocumentRegistre doc = new DocumentRegistre();
doc.setNom("Notificació correcció deficiències documentació");
doc.setData(new Date());
doc.setIdiomaCodi("ca");
doc.setArxiuNom("Notificació correcció deficiències documentació(10).doc");
doc.setArxiuContingut("Bon dia".getBytes());
documents.add(doc);
registreEntrada.setDocuments(documents);
RespostaAnotacioRegistre resposta = getRegistrePlugin().registrarEntrada(registreEntrada);
logger.debug(">>> num: " + resposta.getNumero());
}
public void notificacio() throws Exception {
RegistreNotificacio registreNotificacio = new RegistreNotificacio();
DadesExpedient dadesExpedient = new DadesExpedient();
dadesExpedient.setIdentificador("13/2011");
dadesExpedient.setClau("1304411104976");
dadesExpedient.setUnitatAdministrativa("1");
registreNotificacio.setDadesExpedient(dadesExpedient);
DadesOficina dadesOficina = new DadesOficina();
dadesOficina.setOrganCodi("1");
dadesOficina.setOficinaCodi("3-1");
registreNotificacio.setDadesOficina(dadesOficina);
DadesInteressat dadesInteressat = new DadesInteressat();
dadesInteressat.setAutenticat(true);
dadesInteressat.setEntitatCodi(null);
dadesInteressat.setNif("12345678Z");
dadesInteressat.setNomAmbCognoms("Llorenç Mestre");
dadesInteressat.setPaisCodi("es");
dadesInteressat.setPaisNom("Espanya");
dadesInteressat.setProvinciaCodi("07");
dadesInteressat.setProvinciaNom("Illes Balears");
dadesInteressat.setMunicipiCodi("033");
dadesInteressat.setMunicipiNom("Manacor");
registreNotificacio.setDadesInteressat(dadesInteressat);
DadesNotificacio dadesNotifi = new DadesNotificacio();
dadesNotifi.setIdiomaCodi("ca");
dadesNotifi.setTipus("1");
dadesNotifi.setAssumpte("Deficiència de la documentació enviada");
dadesNotifi.setJustificantRecepcio(true);
dadesNotifi.setAvisTitol("Notificació de deficiència");
dadesNotifi.setAvisText("Voste ha rebut una notificacio telematica");
dadesNotifi.setOficiTitol("Notificació de deficiència");
dadesNotifi.setOficiText("Deficiència de la documentació enviada");
registreNotificacio.setDadesNotificacio(dadesNotifi);
List<DocumentRegistre> documents = new ArrayList<DocumentRegistre>();
DocumentRegistre doc = new DocumentRegistre();
doc.setNom("Notificació correcció deficiències documentació");
doc.setData(new Date());
doc.setIdiomaCodi("ca");
doc.setArxiuNom("Notificació correcció deficiències documentació(10).doc");
doc.setArxiuContingut(getResourceContent("test.doc"));
documents.add(doc);
registreNotificacio.setDocuments(documents);
RespostaAnotacioRegistre resposta = getRegistrePlugin().registrarNotificacio(registreNotificacio);
logger.debug(">>> num: " + resposta.getNumero());
}
public void nomOficina() throws Exception {
logger.debug(">>> oficina: " + getRegistrePlugin().obtenirNomOficina("3-1"));
}
private RegistrePlugin getRegistrePlugin() {
return new RegistrePluginRegwebWs();
}
private void establirUsuariAutenticat() {
Authentication authentication = new UsernamePasswordAuthenticationToken(
new Principal() {
public String getName() {
return "josepg";
}
},
null);
SecurityContextHolder.getContext().setAuthentication(authentication);
}
private byte[] getResourceContent(String resourceName) throws Exception {
InputStream is = getClass().getResourceAsStream(resourceName);
ByteArrayOutputStream buffer = new ByteArrayOutputStream();
int nRead;
byte[] data = new byte[16384];
while ((nRead = is.read(data, 0, data.length)) != -1) {
buffer.write(data, 0, nRead);
}
buffer.flush();
return buffer.toByteArray();
}
private static final Log logger = LogFactory.getLog(RegistrePluginTest.class);
}