@Test
  public void shouldLoadDataFromMoreFiles() throws IOException {
    byte[] value = new byte[] {1, 2};
    byte[] newValue = new byte[] {1, 2, 3};
    writer.changeInstanceValue(1, 2, value);
    writer.changeInstanceValue(2, 2, value);
    writer.changeInstanceValue(1, 3, newValue);
    writer.close();

    writer = new FullSSDiscWriter(directoryPath);
    writer.changeInstanceView(1, 4);
    writer.close();

    writer = new FullSSDiscWriter(directoryPath);
    ConsensusInstance[] instances = writer.load().toArray(new ConsensusInstance[0]);
    writer.close();

    ConsensusInstance instance1 = instances[0];
    ConsensusInstance instance2 = instances[1];

    assertEquals(4, instance1.getView());
    assertArrayEquals(newValue, instance1.getValue());

    assertEquals(2, instance2.getView());
    assertArrayEquals(value, instance2.getValue());
  }
  @Test
  public void shouldLoadCorruptedData() throws IOException {
    byte[] value = new byte[] {1, 2};
    byte[] newValue = new byte[] {1, 2, 3};
    writer.changeInstanceValue(1, 2, value);
    writer.changeInstanceValue(2, 2, value);
    writer.changeInstanceValue(1, 3, newValue);
    writer.changeInstanceView(1, 4);
    writer.close();

    FileOutputStream stream = new FileOutputStream(directoryPath + "/sync.0.log", true);
    stream.write(new byte[] {1, 2, 3});
    stream.close();

    writer = new FullSSDiscWriter(directoryPath);
    ConsensusInstance[] instances = writer.load().toArray(new ConsensusInstance[0]);
    writer.close();

    ConsensusInstance instance1 = instances[0];
    ConsensusInstance instance2 = instances[1];

    assertEquals(4, instance1.getView());
    assertArrayEquals(newValue, instance1.getValue());

    assertEquals(2, instance2.getView());
    assertArrayEquals(value, instance2.getValue());
  }