/graylog2-server/src/test/java/org/junit/jupiter/engine/discovery/ContainerMatrixTestsDiscoverySelectorResolver.java

https://github.com/Graylog2/graylog2-server · Java · 47 lines · 23 code · 5 blank · 19 comment · 0 complexity · 613e730cddb1e15a201833a54f0527d6 MD5 · raw file

  1. /*
  2. * Copyright (C) 2020 Graylog, Inc.
  3. *
  4. * This program is free software: you can redistribute it and/or modify
  5. * it under the terms of the Server Side Public License, version 1,
  6. * as published by MongoDB, Inc.
  7. *
  8. * This program is distributed in the hope that it will be useful,
  9. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  10. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  11. * Server Side Public License for more details.
  12. *
  13. * You should have received a copy of the Server Side Public License
  14. * along with this program. If not, see
  15. * <http://www.mongodb.com/licensing/server-side-public-license>.
  16. */
  17. package org.junit.jupiter.engine.discovery;
  18. import org.graylog.testing.containermatrix.discovery.IsContainerMatrixTestClass;
  19. import org.junit.jupiter.engine.descriptor.ContainerMatrixEngineDescriptor;
  20. import org.junit.jupiter.engine.descriptor.ContainerMatrixTestsDescriptor;
  21. import org.junit.platform.engine.EngineDiscoveryRequest;
  22. import org.junit.platform.engine.TestDescriptor;
  23. import org.junit.platform.engine.support.discovery.EngineDiscoveryRequestResolver;
  24. public class ContainerMatrixTestsDiscoverySelectorResolver {
  25. private final ContainerMatrixEngineDescriptor engineDescriptor;
  26. public ContainerMatrixTestsDiscoverySelectorResolver(ContainerMatrixEngineDescriptor engineDescriptor) {
  27. this.engineDescriptor = engineDescriptor;
  28. }
  29. // add all Tests to the intermediate ContainerMatrixTestsDescriptor container
  30. public void resolveSelectors(final EngineDiscoveryRequest request, final ContainerMatrixTestsDescriptor testsDescriptor) {
  31. // @formatter:off
  32. final EngineDiscoveryRequestResolver<ContainerMatrixTestsDescriptor> resolver = EngineDiscoveryRequestResolver.<ContainerMatrixTestsDescriptor>builder()
  33. .addClassContainerSelectorResolver(new IsContainerMatrixTestClass(testsDescriptor))
  34. .addSelectorResolver(context -> new ContainerMatrixClassSelectorResolver(context.getClassNameFilter(), engineDescriptor.getConfiguration(), testsDescriptor))
  35. .addSelectorResolver(context -> new ContainerMatrixMethodSelectorResolver(engineDescriptor.getConfiguration(), testsDescriptor))
  36. .addTestDescriptorVisitor(context -> new MethodOrderingVisitor(engineDescriptor.getConfiguration()))
  37. .addTestDescriptorVisitor(context -> TestDescriptor::prune)
  38. .build();
  39. // @formatter:on
  40. resolver.resolve(request, testsDescriptor);
  41. }
  42. }