private Documento clasificarDocumentoDeTest(String content) throws Exception {
    Documento documento = saveTmpDocumento(content, TEST_FILENAME);

    List<Documento> documentos = new ArrayList<Documento>();
    documentos.add(documento);

    SolicitudGenerica solicitud = new SolicitudGenerica();
    solicitud.expedienteAed.idAed = "TEST" + Codec.UUID();
    mockPersonaJuridica(solicitud.solicitante);
    gestorDocumentalService.crearExpediente(solicitud);
    gestorDocumentalService.clasificarDocumentos(solicitud, documentos);
    return documento;
  }
  @Test
  public void modificarExpedientePersonaFisica() throws Exception {
    String idExpediente = "TEST" + Codec.UUID();
    ExpedienteAed exp = stubExpediente(idExpediente);
    String idExpedienteCreado = gestorDocumentalService.crearExpediente(exp);
    assertNotNull(idExpedienteCreado);
    play.Logger.info("Expediente creado");

    SolicitudGenerica solicitud = stubSolicitud(idExpediente);
    mockPersonaFisica(solicitud.solicitante);
    String idExpedienteCreado2 = gestorDocumentalService.modificarInteresados(exp, solicitud);
    assertEquals(idExpedienteCreado, idExpedienteCreado2);
  }
 @Test(expected = NullPointerException.class)
 public void crearExpedientePersonaJuridicaNullRepresentante() throws Exception {
   SolicitudGenerica solicitud = stubSolicitud("TEST" + Codec.UUID());
   mockPersonaJuridica(solicitud.solicitante);
   solicitud.solicitante.representantes = null;
   gestorDocumentalService.crearExpediente(solicitud);
 }
 @Test(expected = NullPointerException.class)
 public void saveDocumentoTemporalFailsIfNotTipo() throws Exception {
   Documento documento = stubDocumento();
   documento.tipo = null;
   InputStream is = new ByteArrayInputStream("".getBytes());
   gestorDocumentalService.saveDocumentoTemporal(documento, is, TEST_FILENAME);
 }
 @Test(expected = GestorDocumentalServiceException.class)
 public void saveDocumentoTemporalFailsIfUri() throws Exception {
   Documento documento = stubDocumento();
   documento.uri = "uri ya seteada";
   InputStream is = new ByteArrayInputStream("contenido".getBytes());
   gestorDocumentalService.saveDocumentoTemporal(documento, is, TEST_FILENAME);
 }
 @Test
 public void saveDocumentoTemporalByFile() throws Exception {
   Documento documento = stubDocumento();
   File f = Play.getVirtualFile("/test/services/aedTest.txt").getRealFile();
   String uri = gestorDocumentalService.saveDocumentoTemporal(documento, f);
   assertSubidaDocumentoCorrecta(documento, uri);
 }
 @Test
 public void getDocumentoClasificado() throws Exception {
   Documento documento = clasificarDocumentoDeTest(TEST_FILE_CONTENT);
   BinaryResponse response = gestorDocumentalService.getDocumento(documento);
   assertEquals(TEST_FILENAME, response.nombre);
   assertEquals(TEST_FILE_CONTENT, IO.readContentAsString(response.contenido.getInputStream()));
 }
 @Test(expected = IllegalArgumentException.class)
 public void saveDocumentoTemporalFailsIfOtrosAndEmptyDescripcion() throws Exception {
   Documento documento = new Documento();
   documento.tipo = getTipoDocumentoValido();
   documento.descripcion = "";
   InputStream is = new ByteArrayInputStream("".getBytes());
   gestorDocumentalService.saveDocumentoTemporal(documento, is, TEST_FILENAME);
 }
 @Test
 public void crearExpedientePersonaFisica() throws Exception {
   String idExpediente = "TEST" + Codec.UUID();
   SolicitudGenerica solicitud = stubSolicitud(idExpediente);
   mockPersonaFisica(solicitud.solicitante);
   String idExpedienteCreado = gestorDocumentalService.crearExpediente(solicitud);
   assertNotNull(idExpedienteCreado);
   play.Logger.info("Expediente persona fisica creado");
 }
  @Test
  public void saveDocumentoTemporal() throws Exception {
    InputStream is = new ByteArrayInputStream(TEST_FILE_CONTENT.getBytes());

    Documento documento = stubDocumento();

    String uri = gestorDocumentalService.saveDocumentoTemporal(documento, is, TEST_FILENAME);
    assertSubidaDocumentoCorrecta(documento, uri);
  }
  @Test
  public void getDocumento() throws Exception {
    Documento d = saveTmpDocumento(TEST_FILE_CONTENT, TEST_FILENAME);

    BinaryResponse response = gestorDocumentalService.getDocumento(d);
    assertEquals(TEST_FILENAME, response.nombre);

    String responseContent = IO.readContentAsString(response.contenido.getInputStream());
    assertEquals(TEST_FILE_CONTENT, responseContent);
  }
 @Test
 public void getTramites() throws Exception {
   List<Tramite> tramites = gestorDocumentalService.getTramites();
   assertNotNull(tramites);
   assertTrue(tramites.size() > 0);
   for (Tramite tramite : tramites) {
     assertNotNull(tramite.nombre);
     assertNotNull(tramite.uri);
     assertNotNull(tramite.documentos);
     assertTrue(tramite.documentos.size() > 0);
   }
 }
  @Test
  public void crearExpedientePersonaJuridica() throws Exception {
    SolicitudGenerica solicitud = stubSolicitud("TEST" + Codec.UUID());
    mockPersonaJuridica(solicitud.solicitante);

    RepresentantePersonaJuridica representante1 = new RepresentantePersonaJuridica();
    mockPersonaFisica(representante1);
    RepresentantePersonaJuridica representante2 = new RepresentantePersonaJuridica();
    mockPersonaJuridica(representante2);

    solicitud.solicitante.representantes.add(representante1);
    solicitud.solicitante.representantes.add(representante2);
    String idExpedienteCreado = gestorDocumentalService.crearExpediente(solicitud);
    assertNotNull(idExpedienteCreado);
  }
 @Test(expected = GestorDocumentalServiceException.class)
 public void saveDocumentoTemporalFailsIfEmptyStream() throws Exception {
   Documento documento = stubDocumento();
   InputStream is = new ByteArrayInputStream("".getBytes());
   gestorDocumentalService.saveDocumentoTemporal(documento, is, TEST_FILENAME);
 }
 @Test(expected = NullPointerException.class)
 public void crearExpedienteFailsOnNullSolicitante() throws Exception {
   SolicitudGenerica solicitud = stubSolicitud("TEST" + Codec.UUID());
   solicitud.solicitante = null;
   gestorDocumentalService.crearExpediente(solicitud);
 }
 @Test(expected = NullPointerException.class)
 public void crearExpedienteFailOnNullSolicitud() throws GestorDocumentalServiceException {
   SolicitudGenerica sol = null;
   gestorDocumentalService.crearExpediente(sol);
 }
 @Test(expected = NullPointerException.class)
 public void saveDocumentoTemporalFailsIfNullStream() throws Exception {
   Documento documento = stubDocumento();
   gestorDocumentalService.saveDocumentoTemporal(documento, null, TEST_FILENAME);
 }
 private Documento saveTmpDocumento(String fileContent, String filename) throws Exception {
   InputStream is = new ByteArrayInputStream(fileContent.getBytes());
   Documento documento = stubDocumento();
   gestorDocumentalService.saveDocumentoTemporal(documento, is, filename);
   return documento;
 }
 @Test(expected = GestorDocumentalServiceException.class)
 public void deleteDocumentoClasificado() throws Exception {
   Documento documento = clasificarDocumentoDeTest(TEST_FILE_CONTENT);
   gestorDocumentalService.deleteDocumento(documento);
 }
 @Test
 public void deleteDocumentoTemporal() throws Exception {
   Documento documento = saveTmpDocumento(TEST_FILE_CONTENT, TEST_FILENAME);
   gestorDocumentalService.deleteDocumento(documento);
 }