/*
 * 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.qsoft.test;

import com.fasterxml.jackson.databind.ObjectMapper;
import com.qsoft.erp.constantes.DominioConstantes;
import com.qsoft.erp.constantes.EntidadEnum;
import com.qsoft.erp.dominio.AccionGenerica;
import com.qsoft.erp.dto.AgendamientoDTO;
import com.qsoft.erp.dto.EstadoAgendamientoDTO;
import com.qsoft.wmp.services.rest.AccionResource;
import com.qsoft.wmp.services.rest.ConsultaResource;
import com.qsoft.wmp.services.xsd.EntradaAccion;
import com.qsoft.wmp.services.xsd.EntradaConsulta;
import com.qsoft.wmp.services.xsd.SalidaConsulta;
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 *
 * @author james
 */
public class Tester {

    public static void main(String[] args) throws IOException {
        System.out.println("TEST " + DominioConstantes.getDateTime());
        testAccionService();
    }
    
    
    public static void testConsultaService() throws IOException {
        ObjectMapper maper = new ObjectMapper();
        EntradaConsulta entrada = new EntradaConsulta();
        entrada.getBodyIn().setTipoConsulta(1);
        entrada.getBodyIn().setEntidad(EntidadEnum.Agendamiento.name());

        AgendamientoDTO dto = new AgendamientoDTO();

        List<EstadoAgendamientoDTO> estados = new ArrayList<>();
        
        estados.add(new EstadoAgendamientoDTO());
        
        dto.setEstado(estados);
        Map<String, Object> parametros = new HashMap<>();
        parametros.put(EntidadEnum.Agendamiento.name(), dto);

        entrada.getBodyIn().setParametros(parametros);
        String s = maper.writeValueAsString(entrada);
        System.out.println("JSON=> " + s);

        ConsultaResource cr = new ConsultaResource();
        System.out.println("POSTING....");
        SalidaConsulta salida = cr.postJson(entrada);
        System.out.println("Funciono???/  " + salida);
        s = maper.writeValueAsString(salida);
        System.out.println("JSON=> " + s);
    }
    
    public static void testAccionService() throws IOException {
        ObjectMapper maper = new ObjectMapper();
        EntradaAccion entrada = new EntradaAccion();
        entrada.getBodyIn().setTipoAccion(AccionGenerica.GUARDA);
        entrada.getBodyIn().setEntidad(EntidadEnum.Agendamiento.name());
        List<Map<String, Object>> entidades = new ArrayList<>();
        //TODO: agregar entidades
        entrada.getBodyIn().setEntidades(entidades);

        String s = maper.writeValueAsString(entrada);
        System.out.println("JSON=> " + s);
        AccionResource ar = new AccionResource();
        System.out.println("POSTING....");
        List<AgendamientoDTO> data = new ArrayList<>();
        
        AgendamientoDTO agenda = new AgendamientoDTO();                
        List<EstadoAgendamientoDTO> detalle = new ArrayList<>();
       
        detalle.add(new EstadoAgendamientoDTO());
        agenda.setEstado(detalle);
        
        data.add(agenda);
        
        s = maper.writeValueAsString(data);
        System.out.println("JSON=> " + s);
//        SalidaAccion salida = ar.postJson(entrada);
//        System.out.println("Funciono???  " + salida);
//        s = maper.writeValueAsString(salida);
//        System.out.println("JSON=> " + s);
    }

}
