// Path: src/main/java/org/arbeitspferde/groningen/HistoryDatastore.java
// public interface HistoryDatastore {
//   /**
//    * Base exception class for all HistoryDatastoreException-related exceptions. This exception 
//    * was intentionally made a checked one, because nearly any datastore operation may fail and 
//    * usually we have to recover from the failure in the place of a datastore call.
//    */
//   class HistoryDatastoreException extends Exception {
//     public HistoryDatastoreException() {
//       super();
//     }
//     
//     public HistoryDatastoreException(final String message) {
//       super(message);
//     }
//     
//     public HistoryDatastoreException(final Throwable cause) {
//       super(cause);
//     }
//     
//     public HistoryDatastoreException(final String message, final Throwable cause) {
//       super(message, cause);
//     }
//   }
//   
//   void writeState(PipelineHistoryState state) throws HistoryDatastoreException;
//   
//   List<PipelineId> listPipelinesIds() throws HistoryDatastoreException;
//   
//   List<PipelineHistoryState> getStatesForPipelineId(PipelineId pipelineId)
//     throws HistoryDatastoreException;
//   
//   List<PipelineHistoryState> getStatesForPipelineId(PipelineId pipelineId, Instant afterTimestamp)
//     throws HistoryDatastoreException;
// }


import org.arbeitspferde.groningen.HistoryDatastore;
package org.arbeitspferde.groningen.historydatastore;


/**
 * Test for {@link MemoryHistoryDatastore}.
 */
public class MemoryHistoryDatastoreTest extends HistoryDatastoreTestCase {

  @Override
// Path: src/main/java/org/arbeitspferde/groningen/HistoryDatastore.java
// public interface HistoryDatastore {
//   /**
//    * Base exception class for all HistoryDatastoreException-related exceptions. This exception 
//    * was intentionally made a checked one, because nearly any datastore operation may fail and 
//    * usually we have to recover from the failure in the place of a datastore call.
//    */
//   class HistoryDatastoreException extends Exception {
//     public HistoryDatastoreException() {
//       super();
//     }
//     
//     public HistoryDatastoreException(final String message) {
//       super(message);
//     }
//     
//     public HistoryDatastoreException(final Throwable cause) {
//       super(cause);
//     }
//     
//     public HistoryDatastoreException(final String message, final Throwable cause) {
//       super(message, cause);
//     }
//   }
//   
//   void writeState(PipelineHistoryState state) throws HistoryDatastoreException;
//   
//   List<PipelineId> listPipelinesIds() throws HistoryDatastoreException;
//   
//   List<PipelineHistoryState> getStatesForPipelineId(PipelineId pipelineId)
//     throws HistoryDatastoreException;
//   
//   List<PipelineHistoryState> getStatesForPipelineId(PipelineId pipelineId, Instant afterTimestamp)
//     throws HistoryDatastoreException;
// }


// Path: src/test/java/org/arbeitspferde/groningen/historydatastore/MemoryHistoryDatastoreTest.java
import org.arbeitspferde.groningen.HistoryDatastore;

package org.arbeitspferde.groningen.historydatastore;


/**
 * Test for {@link MemoryHistoryDatastore}.
 */
public class MemoryHistoryDatastoreTest extends HistoryDatastoreTestCase {

  @Override
  protected HistoryDatastore createHistoryDatastore() {