@Override
    public void starting(Description description) {
      super.starting(description);
      writer = new SimpleFileOutputOperator();
      writer.setOutputFileName(SINGLE_FILE);

      writer.setFilePath(getDir());

      writer.setup(testOperatorContext);
    }
  @Test
  public void testSingleFileCompletedWrite() {
    writer.setOutputFileName(SINGLE_FILE);

    writer.setFilePath(testMeta.getDir());

    writer.setup(testOperatorContext);

    writer.beginWindow(0);
    writer.input.put(0);
    writer.input.put(1);
    writer.endWindow();

    writer.beginWindow(1);
    writer.input.put(2);
    writer.input.put(3);
    writer.endWindow();

    writer.teardown();

    String singleFileName = testMeta.getDir() + File.separator + SINGLE_FILE;

    String correctContents = "0\n" + "1\n" + "2\n" + "3\n";

    AbstractFileOutputOperatorTest.checkOutput(-1, singleFileName, correctContents);
  }
  @Test
  public void testSingleFileFailedWrite() {
    writer.setOutputFileName(SINGLE_FILE);

    File meta = new File(testMeta.getDir());
    writer.setFilePath(meta.getAbsolutePath());

    writer.setup(testOperatorContext);

    writer.beginWindow(0);
    writer.input.put(0);
    writer.input.put(1);
    writer.endWindow();

    CheckPointOutputOperator checkPointWriter = checkpoint(writer);

    writer.beginWindow(1);
    writer.input.put(2);

    writer.teardown();

    restoreCheckPoint(checkPointWriter, writer);
    writer.setup(testOperatorContext);

    writer.beginWindow(1);
    writer.input.put(4);
    writer.input.put(5);
    writer.endWindow();

    writer.beginWindow(2);
    writer.input.put(6);
    writer.input.put(7);
    writer.endWindow();

    writer.teardown();

    String singleFileName = testMeta.getDir() + File.separator + SINGLE_FILE;

    String correctContents = "0\n" + "1\n" + "4\n" + "5\n" + "6\n" + "7\n";

    AbstractFileOutputOperatorTest.checkOutput(-1, singleFileName, correctContents);
  }