@Test
  public void testLoadRepresentationsWithIds() {
    ArrayList<String> repIds = null;
    List<Representation> reps = null;
    try {
      // prepare a list of ids
      Model m = papi.loadCompleteModelWithDbId(mockModelId);
      repIds = new ArrayList<String>();
      for (Revision r : m.getRevisions()) {
        Representation oneRep = r.getRepresentations().iterator().next();
        repIds.add(oneRep.getDbId());
      }
      // load list
      reps = papi.loadRepresentations(repIds);
      assertEquals(reps.size(), repIds.size());
      for (Representation rep : reps) {
        assertTrue(repIds.contains(rep.getDbId()));
        assertEquals(rep.getModel().getDbId(), mockModelId);
      }
      // empty list
      reps = papi.loadRepresentations(new ArrayList<String>());
      assertTrue(reps.isEmpty());
    } catch (Exception e) {
      fail(e.getMessage());
    }

    try {
      // non-existent representation id
      repIds.add(wrongRepId);
      reps = papi.loadRepresentations(repIds);
      fail();
    } catch (IllegalArgumentException e) {
      assert (true);
    }

    try {
      // non-existent id
      repIds.add(NonExistentClusterId);
      reps = papi.loadRepresentations(repIds);
      fail();
    } catch (IllegalArgumentException e) {
      assert (true);
    }
    try {
      // wrong input
      repIds.add(AbcId);
      reps = papi.loadRepresentations(repIds);
      fail();
    } catch (IllegalArgumentException e) {
      assert (true);
    }
  }
  @Test
  public void testLoadRepresentation() {
    try {
      Representation mockRep = RepresentationFactory.createLightweightRepresentation();
      Representation loadedRep = papi.loadRepresentation(mockRepresentationId);
      assertNotNull(loadedRep);
      assertEquals(loadedRep.getDbId(), mockRepresentationId);
      assertEquals(loadedRep.getDataContent().length, mockRep.getDataContent().length);
      assertEquals(loadedRep.getFormat(), mockRep.getFormat());
      assertEquals(loadedRep.getNotation(), mockRep.getNotation());
      assertEquals(loadedRep.getOriginalFilePath(), mockRep.getOriginalFilePath());
      assertEquals(loadedRep.getRevisionNumber(), mockRep.getRevisionNumber());
      assertEquals(loadedRep.getTitle(), mockRep.getTitle());
      assertEquals(loadedRep.belongsToLatestRevision(), mockRep.belongsToLatestRevision());

      // not existent
      Representation r1 = papi.loadRepresentation(NonExistentClusterId);
      assertNull(r1);
      Representation r2 = papi.loadRepresentation(wrongRepId);
      assertNull(r2);

    } catch (Exception e) {
      fail("error: testLoad " + e.getMessage());
    }

    // wrong input
    try {
      papi.loadRepresentation(AbcId);
      fail();
    } catch (IllegalArgumentException e) {
      assert (true);
    }
  }
  // ----------------------------- load 1 object ----------------------------
  @Test
  public void testLoadPojoWithId() {
    try {
      Representation mockRep = RepresentationFactory.createLightweightRepresentation();
      AbstractPojo loadedPojo = papi.loadPojo(mockRepresentationId);
      Representation loadedRep = (Representation) loadedPojo;
      assertEquals(loadedRep.getDbId(), mockRepresentationId);
      assertEquals(loadedRep.getTitle(), mockRep.getTitle());

      // not existent
      AbstractPojo p1 = papi.loadPojo("#-1:-1");
      assertNull(p1);
      AbstractPojo p2 = papi.loadPojo(NonExistentClusterId);
      assertNull(p2);
    } catch (Exception e) {
      fail(e.getMessage());
    }

    // wrong input
    try {
      papi.loadPojo(AbcId);
      fail();
    } catch (IllegalArgumentException e) {
      assert (true);
    }
  }
  @Test
  public void testLoadPojosWithIds() {
    ArrayList<String> repIds = null;
    List<AbstractPojo> pojos = null;
    try {
      // prepare a list of ids
      Model m = papi.loadCompleteModelWithDbId(mockModelId);
      m.toStringExtended();
      repIds = new ArrayList<String>();
      for (Revision r : m.getRevisions()) {
        Representation oneRep = r.getRepresentations().iterator().next();
        repIds.add(oneRep.getDbId());
      }
      // load list
      pojos = papi.loadPojos(repIds);
      assertEquals(pojos.size(), repIds.size());
      for (AbstractPojo pojo : pojos) {
        Representation rep = (Representation) pojo;
        assertTrue(repIds.contains(rep.getDbId()));
        assertEquals(rep.getModel().getDbId(), mockModelId);
      }

      // empty list
      pojos = papi.loadPojos(new ArrayList<String>());
      assertTrue(pojos.isEmpty());

    } catch (Exception e) {
      fail(e.getMessage());
    }

    try {
      // non-existent id
      repIds.add(NonExistentClusterId);
      pojos = papi.loadPojos(repIds);
      fail();
    } catch (IllegalArgumentException e) {
      assert (true);
    }
    try {
      repIds.remove(NonExistentClusterId);
      repIds.add(AbcId);
      pojos = papi.loadPojos(repIds);
      fail();
    } catch (IllegalArgumentException e) {
      assert (true);
    }
  }