package com.ejie.ad74a.service.test.interoperabilidad;

import static org.junit.Assert.assertTrue;

import java.text.ParseException;

import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.annotation.Rollback;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;

import com.ejie.ad74a.model.Direcciones;
import com.ejie.ad74a.model.Expedientes;
import com.ejie.ad74a.service.ExpedientesService;
import com.ejie.ad74a.service.interoperabilidad.NisaeService;

import es.redsara.intermediacion.scsp.esquemas.v3.respuesta.Respuesta;

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = "classpath:test/application-context.xml")
public class TestInteropService {

	@Autowired
	private NisaeService nisaeService;

	@Autowired
	private ExpedientesService expedientesService;

//	@Test
//	@Transactional(propagation = Propagation.NOT_SUPPORTED)
//	@Rollback(false)
//	public void testIntermediacionImserso() {
//		Expedientes exp = new Expedientes();
//		exp.setIdExpediente00(41L);
//		exp = this.expedientesService.find(exp);
//
//		String respuesta = this.nisaeService.consultaDependencia(exp);
//		assertTrue("No se lanzado la peticion correctamente", respuesta != null);
//	}
//
//	@Test
//	@Transactional(propagation = Propagation.NOT_SUPPORTED)
//	@Rollback(false)
//	public void testIntermediacionDGP() {
//		Expedientes exp = new Expedientes();
//		exp.setIdExpediente00(41L);
//		exp = this.expedientesService.find(exp);
//
//		String respuesta = this.nisaeService.consultaDGP(exp);
//		assertTrue("No se lanzado la peticion correctamente", respuesta != null);
//	}

	@Test
	@Transactional(propagation = Propagation.NOT_SUPPORTED)
	@Rollback(false)
	public void testConsultadependencia() throws ParseException {
		Expedientes exp = new Expedientes();
		exp.setIdExpediente00(24L);
		exp = this.expedientesService.find(exp);
		// exp.getSolicitantes().setIdentificador01("00241330Z");
		// devuelve
		// exp.getSolicitantes().setIdentificador01("00000000T");
		exp.getSolicitantes().setIdentificador01("72736137V");
		// exp.setNumExpediente00("SAAD11-06/000399/2007-40");
		exp.getSolicitantes().setNombre01("");
		exp.getSolicitantes().setApellido101("");
		exp.getSolicitantes().setApellido201("");
		// exp.getSolicitantes().setTipoIdentificador01("3");
//		Direcciones direccion = new Direcciones();
//		direccion.setIdProvincia06("01");
//		exp.getSolicitantes().setDirecciones(direccion);

//		exp.getSolicitantes().setIdentificador01("69000468P");
//		exp.getSolicitantes().setNombre01("PURIFICACION");
//		exp.getSolicitantes().setApellido101("MEYER");
//		exp.getSolicitantes().setApellido201("GUZMAN");
//
//		try {
//			this.nisaeService.consultaConyugeIrpf(exp);
//		} catch (ParseException e) {
//			// TODO Auto-generated catch block
//			e.printStackTrace();
//		}

		this.nisaeService.getDatosDependenciaInterop(exp);

		assertTrue("No se lanzado la peticion correctamente", 1 != 1);
	}

	@Test
	@Transactional(propagation = Propagation.NOT_SUPPORTED)
	@Rollback(false)
	public void testConsultaIrpf() throws ParseException {
		Expedientes exp = new Expedientes();
		exp.setIdExpediente00(24L);
		exp = this.expedientesService.find(exp);
		exp.getSolicitantes().setIdentificador01("69000468P");
		exp.getSolicitantes().setNombre01("PURIFICACION");
		exp.getSolicitantes().setApellido101("MEYER");
		exp.getSolicitantes().setApellido201("GUZMAN");

		this.nisaeService.getDatosIrpfInterop(exp);

		assertTrue("No se lanzado la peticion correctamente", 1 != 1);
	}

	@Test
	@Transactional(propagation = Propagation.NOT_SUPPORTED)
	@Rollback(false)
	public void testConsultaDiscapacidad() throws ParseException {
		Expedientes exp = new Expedientes();
		exp.setIdExpediente00(24L);
		exp = this.expedientesService.find(exp);
		exp.getSolicitantes().setIdentificador01("00241330Z");
		exp.getSolicitantes().setNombre01("");
		exp.getSolicitantes().setApellido101("");
		exp.getSolicitantes().setApellido201("");
		exp.getDirecciones().setIdProvincia06("01");

		this.nisaeService.consultaDiscapacidad(exp);

		assertTrue("No se lanzado la peticion correctamente", 1 != 1);
	}

	@Test
	@Transactional(propagation = Propagation.NOT_SUPPORTED)
	@Rollback(false)
	public void testInterJob() {
		Expedientes exp = new Expedientes();
		exp.setIdExpediente00(161L);

		try {
			this.expedientesService.interoperabilidadJob();

		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

		assertTrue("No se lanzado la peticion correctamente", 1 != 1);
	}

}
