// Path: extension-testing/src/main/java/name/falgout/jeffrey/testing/junit/testing/TestPlanExecutionReport.java
// @AutoValue
// public static abstract class DisplayName {
//   public static DisplayName create(String... names) {
//     return create(Arrays.asList(names));
//   }
// 
//   public static DisplayName create(Collection<? extends String> names) {
//     return new AutoValue_TestPlanExecutionReport_DisplayName(ImmutableList.copyOf(names));
//   }
// 
//   DisplayName() {}
// 
//   public abstract ImmutableList<String> getNames();
// }


import static com.google.common.truth.Truth.assertThat;
import static com.google.common.truth.Truth8.assertThat;
import static org.junit.jupiter.api.Assertions.assertAll;
import name.falgout.jeffrey.testing.junit.testing.TestPlanExecutionReport.DisplayName;
import org.junit.jupiter.api.Disabled;
import org.junit.jupiter.api.Nested;
import org.junit.jupiter.api.Test;
package name.falgout.jeffrey.testing.junit.testing;



public class ExtentionTesterTest {
  static class Tests {
    @Test
    void successful() {}

    @Test
    @Disabled("reasons")
    void skipped() {}

    @Test
    void failure() {
      throw new IllegalArgumentException();
    }

    @Nested
    class NestedTests {
      @Test
      void nestedTest() {}
    }
  }

  @Test
  void testTheTester() {
    TestPlanExecutionReport report = ExtensionTester.runTests(Tests.class);

    assertAll(
        () -> assertThat(report.getTests()).hasSize(4),
        () -> assertThat(report.getSuccessful())
            .containsAllOf(
// Path: extension-testing/src/main/java/name/falgout/jeffrey/testing/junit/testing/TestPlanExecutionReport.java
// @AutoValue
// public static abstract class DisplayName {
//   public static DisplayName create(String... names) {
//     return create(Arrays.asList(names));
//   }
// 
//   public static DisplayName create(Collection<? extends String> names) {
//     return new AutoValue_TestPlanExecutionReport_DisplayName(ImmutableList.copyOf(names));
//   }
// 
//   DisplayName() {}
// 
//   public abstract ImmutableList<String> getNames();
// }


// Path: extension-testing/src/test/java/name/falgout/jeffrey/testing/junit/testing/ExtentionTesterTest.java
import static com.google.common.truth.Truth.assertThat;
import static com.google.common.truth.Truth8.assertThat;
import static org.junit.jupiter.api.Assertions.assertAll;
import name.falgout.jeffrey.testing.junit.testing.TestPlanExecutionReport.DisplayName;
import org.junit.jupiter.api.Disabled;
import org.junit.jupiter.api.Nested;
import org.junit.jupiter.api.Test;

package name.falgout.jeffrey.testing.junit.testing;



public class ExtentionTesterTest {
  static class Tests {
    @Test
    void successful() {}

    @Test
    @Disabled("reasons")
    void skipped() {}

    @Test
    void failure() {
      throw new IllegalArgumentException();
    }

    @Nested
    class NestedTests {
      @Test
      void nestedTest() {}
    }
  }

  @Test
  void testTheTester() {
    TestPlanExecutionReport report = ExtensionTester.runTests(Tests.class);

    assertAll(
        () -> assertThat(report.getTests()).hasSize(4),
        () -> assertThat(report.getSuccessful())
            .containsAllOf(
                DisplayName.create("successful()"),