@Test
 public void deleteProtocol() {
   dataSetDeleterServiceImpl.deleteProtocol(protocolUsed, allEntities);
   verify(dataService).delete(Protocol.ENTITY_NAME, protocolUsed);
   verify(dataService).delete(Protocol.ENTITY_NAME, subProtocols);
   verify(dataService, Mockito.times(0)).delete(Protocol.ENTITY_NAME, protocol1);
 }
 @Test
 public void deleteFeatures() {
   dataSetDeleterServiceImpl.deleteFeatures(features0, allEntities);
   verify(dataService, Mockito.atLeastOnce())
       .delete(eq(ObservableFeature.ENTITY_NAME), captorFeatures.capture());
   assertEquals("feature0", captorFeatures.getValue().get(0).getIdentifier());
   assertEquals(1, captorFeatures.getValue().size());
 }
  @Test
  public void deleteNoMetadata() throws IOException {
    when(dataService.findOne(
            DataSet.ENTITY_NAME, new QueryImpl().eq(DataSet.IDENTIFIER, "dataset1")))
        .thenReturn(dataset);

    dataSetDeleterServiceImpl.deleteData("dataset1");
    verify(dataService, Mockito.times(0)).delete(DataSet.ENTITY_NAME, dataset);
  }
  @Test
  public void deleteData() {
    when(dataService.findAllAsList(
            ObservationSet.ENTITY_NAME, new QueryImpl().eq(ObservationSet.PARTOFDATASET, dataset)))
        .thenReturn(observationSets0);
    dataSetDeleterServiceImpl.deleteData(dataset);
    // verify that only observationsets and abservedvalues belonging to the dataset are removed
    verify(dataService, Mockito.atLeastOnce())
        .delete(eq(ObservationSet.ENTITY_NAME), captorObservationSetsArrayList.capture());

    assertEquals(new Integer(0), captorObservationSetsArrayList.getValue().get(0).getId());
    assertEquals(1, captorObservationSetsArrayList.getValue().size());
  }
 @Test
 public void deleteCategories() {
   dataSetDeleterServiceImpl.deleteCategories(categories);
   verify(dataService).delete(Category.ENTITY_NAME, category0);
 }
 @Test
 public void countReferringProtocolMultipleReferences() {
   int result = dataSetDeleterServiceImpl.countReferringEntities(protocol1, allEntities);
   assertEquals(2, result);
 }