@Test(dataProvider = "testCleanSamDataProvider")
public void testCleanSam(final String samFile, final String expectedCigar) throws IOException {
final File cleanedFile = File.createTempFile(samFile + ".", ".sam");
cleanedFile.deleteOnExit();
final String[] args = new String[]{
"INPUT=" + new File(TEST_DATA_DIR, samFile).getAbsolutePath(),
"OUTPUT=" + cleanedFile.getAbsolutePath()
};
Assert.assertEquals(runPicardCommandLine(args), 0);
final SamFileValidator validator = new SamFileValidator(new PrintWriter(System.out), 8000);
validator.setIgnoreWarnings(true);
validator.setVerbose(true, 1000);
validator.setErrorsToIgnore(Arrays.asList(SAMValidationError.Type.MISSING_READ_GROUP));
SamReader samReader = SamReaderFactory.makeDefault().validationStringency(ValidationStringency.LENIENT).open(cleanedFile);
final SAMRecord rec = samReader.iterator().next();
samReader.close();
Assert.assertEquals(rec.getCigarString(), expectedCigar);
samReader = SamReaderFactory.makeDefault().validationStringency(ValidationStringency.LENIENT).open(cleanedFile);
final boolean validated = validator.validateSamFileVerbose(samReader, null);
samReader.close();
Assert.assertTrue(validated, "ValidateSamFile failed");
}