Exemple #1
0
  public static void assertAllTestsPresentByMetadata(
      @NotNull Class<?> testCaseClass,
      @NotNull File testDataDir,
      @NotNull Pattern filenamePattern,
      boolean recursive,
      @NotNull String... excludeDirs) {
    TestMetadata testClassMetadata = testCaseClass.getAnnotation(TestMetadata.class);
    Assert.assertNotNull("No metadata for class: " + testCaseClass, testClassMetadata);
    String rootPath = testClassMetadata.value();
    File rootFile = new File(rootPath);

    Set<String> filePaths = collectPathsMetadata(testCaseClass);
    Set<String> exclude = SetsKt.setOf(excludeDirs);

    File[] files = testDataDir.listFiles();
    if (files != null) {
      for (File file : files) {
        if (file.isDirectory()) {
          if (recursive
              && containsTestData(file, filenamePattern)
              && !exclude.contains(file.getName())) {
            assertTestClassPresentByMetadata(testCaseClass, file);
          }
        } else if (filenamePattern.matcher(file.getName()).matches()) {
          assertFilePathPresent(file, rootFile, filePaths);
        }
      }
    }
  }