class OpenShiftMockServerExtension extends KubernetesMockServerExtension {

  private OpenShiftMockServer staticOpenShiftMockServer;
  private NamespacedOpenShiftClient staticOpenShiftClient;
  private OpenShiftMockServer instantOpenShiftMockServer;
  private NamespacedOpenShiftClient instantOpenShiftClient;

  @Override
  protected void destroyStatic() {
    staticOpenShiftMockServer.destroy();
    staticOpenShiftClient.close();
  }

  @Override
  protected void destroy() {
    if (instantOpenShiftMockServer != null) {
      instantOpenShiftMockServer.destroy();
    }
    if (instantOpenShiftClient != null) {
      instantOpenShiftClient.close();
    }
  }

  @Override
  protected Class<?> getClientType() {
    return OpenShiftClient.class;
  }

  @Override
  protected Class<?> getKubernetesMockServerType() {
    return OpenShiftMockServer.class;
  }

  @Override
  protected void initializeKubernetesClientAndMockServer(Class<?> testClass, boolean isStatic) {<FILL_FUNCTION_BODY>}

  @Override
  protected void setFieldIfKubernetesClientOrMockServer(ExtensionContext context, boolean isStatic, Field field)
      throws IllegalAccessException {
    final NamespacedOpenShiftClient openShiftClient;
    final OpenShiftMockServer openShiftMockServer;
    if (isStatic) {
      openShiftClient = staticOpenShiftClient;
      openShiftMockServer = staticOpenShiftMockServer;
    } else {
      openShiftClient = instantOpenShiftClient;
      openShiftMockServer = instantOpenShiftMockServer;
    }
    setFieldIfEqualsToProvidedType(context, isStatic, field, getClientType(), (i, f) -> f.set(i, openShiftClient));
    setFieldIfEqualsToProvidedType(context, isStatic, field, getKubernetesMockServerType(),
        (i, f) -> f.set(i, openShiftMockServer));
  }
}

    EnableOpenShiftMockClient a = testClass.getAnnotation(EnableOpenShiftMockClient.class);
    final Map<ServerRequest, Queue<ServerResponse>> responses = new HashMap<>();
    OpenShiftMockServer openShiftMockServer = a.crud()
        ? new OpenShiftMockServer(new Context(), new MockWebServer(), responses, new KubernetesMixedDispatcher(responses),
            a.https())
        : new OpenShiftMockServer(a.https());
    openShiftMockServer.init();
    NamespacedOpenShiftClient openShiftClient = openShiftMockServer.createOpenShiftClient();

    if (isStatic) {
      staticOpenShiftMockServer = openShiftMockServer;
      staticOpenShiftClient = openShiftClient;
    } else {
      instantOpenShiftMockServer = openShiftMockServer;
      instantOpenShiftClient = openShiftClient;
    }
  
<methods>public non-sealed void <init>() ,public void afterAll(ExtensionContext) ,public void afterEach(ExtensionContext) ,public void beforeAll(ExtensionContext) throws java.lang.Exception,public void beforeEach(ExtensionContext) throws java.lang.Exception<variables>private io.fabric8.kubernetes.client.NamespacedKubernetesClient instantClient,private io.fabric8.kubernetes.client.server.mock.KubernetesMockServer instantMock,private io.fabric8.kubernetes.client.NamespacedKubernetesClient staticClient,private io.fabric8.kubernetes.client.server.mock.KubernetesMockServer staticMock