Class KubernetesMockServer
- java.lang.Object
-
- io.fabric8.mockwebserver.DefaultMockServer
-
- io.fabric8.kubernetes.client.server.mock.KubernetesMockServer
-
- All Implemented Interfaces:
CustomResourceAware,Resetable,io.fabric8.mockwebserver.MockServer
public class KubernetesMockServer extends io.fabric8.mockwebserver.DefaultMockServer implements Resetable, CustomResourceAware
-
-
Constructor Summary
Constructors Constructor Description KubernetesMockServer()KubernetesMockServer(boolean useHttps)KubernetesMockServer(io.fabric8.mockwebserver.Context context, io.fabric8.mockwebserver.MockWebServer server, Map<io.fabric8.mockwebserver.ServerRequest,Queue<io.fabric8.mockwebserver.ServerResponse>> responses, boolean useHttps)KubernetesMockServer(io.fabric8.mockwebserver.Context context, io.fabric8.mockwebserver.MockWebServer server, Map<io.fabric8.mockwebserver.ServerRequest,Queue<io.fabric8.mockwebserver.ServerResponse>> responses, io.fabric8.mockwebserver.http.Dispatcher dispatcher, boolean useHttps)KubernetesMockServer(io.fabric8.mockwebserver.Context context, io.fabric8.mockwebserver.MockWebServer server, Map<io.fabric8.mockwebserver.ServerRequest,Queue<io.fabric8.mockwebserver.ServerResponse>> responses, io.fabric8.mockwebserver.http.Dispatcher dispatcher, boolean useHttps, io.fabric8.kubernetes.client.VersionInfo versionInfo)KubernetesMockServer(io.fabric8.mockwebserver.MockWebServer server, Map<io.fabric8.mockwebserver.ServerRequest,Queue<io.fabric8.mockwebserver.ServerResponse>> responses, boolean useHttps)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidclearExpectations()Removes all recorded expectations.io.fabric8.kubernetes.client.NamespacedKubernetesClientcreateClient()io.fabric8.kubernetes.client.NamespacedKubernetesClientcreateClient(io.fabric8.kubernetes.client.http.HttpClient.Factory factory)io.fabric8.kubernetes.client.NamespacedKubernetesClientcreateClient(Consumer<io.fabric8.kubernetes.client.KubernetesClientBuilder> kubernetesClientBuilderCustomizer)Creates a client using the customizedKubernetesClientBuilderprovided in theConsumerparameter.voiddestroy()voidexpectCustomResource(io.fabric8.kubernetes.client.dsl.base.CustomResourceDefinitionContext rdc)Ensure that the server will supply anAPIResourceListcontaining anAPIResourcerepresenting theCustomResourceDefinitionContextfrom the apis/group/version endpoint.String[]getRootPaths()voidinit()voidinit(InetAddress address, int port)protected io.fabric8.kubernetes.client.ConfiginitConfig()voidonStart()voidreset()return the resource to its initial statevoidsetUnsupported(String... unsupported)Used to exclude support for the given apiGroups.voidsetVersionInfo(io.fabric8.kubernetes.client.VersionInfo versionInfo)Replace the currentVersionInfoinstance.-
Methods inherited from class io.fabric8.mockwebserver.DefaultMockServer
expect, getHostName, getLastRequest, getPort, getRequestCount, getSelfSignedCertificate, shutdown, start, start, start, takeRequest, takeRequest, toProxyAddress, url
-
-
-
-
Constructor Detail
-
KubernetesMockServer
public KubernetesMockServer()
-
KubernetesMockServer
public KubernetesMockServer(boolean useHttps)
-
KubernetesMockServer
public KubernetesMockServer(io.fabric8.mockwebserver.MockWebServer server, Map<io.fabric8.mockwebserver.ServerRequest,Queue<io.fabric8.mockwebserver.ServerResponse>> responses, boolean useHttps)
-
KubernetesMockServer
public KubernetesMockServer(io.fabric8.mockwebserver.Context context, io.fabric8.mockwebserver.MockWebServer server, Map<io.fabric8.mockwebserver.ServerRequest,Queue<io.fabric8.mockwebserver.ServerResponse>> responses, boolean useHttps)
-
KubernetesMockServer
public KubernetesMockServer(io.fabric8.mockwebserver.Context context, io.fabric8.mockwebserver.MockWebServer server, Map<io.fabric8.mockwebserver.ServerRequest,Queue<io.fabric8.mockwebserver.ServerResponse>> responses, io.fabric8.mockwebserver.http.Dispatcher dispatcher, boolean useHttps)
-
KubernetesMockServer
public KubernetesMockServer(io.fabric8.mockwebserver.Context context, io.fabric8.mockwebserver.MockWebServer server, Map<io.fabric8.mockwebserver.ServerRequest,Queue<io.fabric8.mockwebserver.ServerResponse>> responses, io.fabric8.mockwebserver.http.Dispatcher dispatcher, boolean useHttps, io.fabric8.kubernetes.client.VersionInfo versionInfo)
-
-
Method Detail
-
onStart
public void onStart()
- Specified by:
onStartin interfaceio.fabric8.mockwebserver.MockServer
-
init
public void init()
-
init
public void init(InetAddress address, int port)
-
destroy
public void destroy()
-
getRootPaths
public String[] getRootPaths()
-
createClient
public io.fabric8.kubernetes.client.NamespacedKubernetesClient createClient()
-
createClient
public io.fabric8.kubernetes.client.NamespacedKubernetesClient createClient(io.fabric8.kubernetes.client.http.HttpClient.Factory factory)
-
createClient
public io.fabric8.kubernetes.client.NamespacedKubernetesClient createClient(Consumer<io.fabric8.kubernetes.client.KubernetesClientBuilder> kubernetesClientBuilderCustomizer)
Creates a client using the customizedKubernetesClientBuilderprovided in theConsumerparameter.The function is invoked using an initial
Configinstance that is initialized with the mock server's URL and theTlsVersionto use.The following snippet shows how you can use this method in your tests:
@BeforeEach void setUp() { server = new KubernetesMockServer(); server.start(); client = server.createClient(b -> {/* customize builder */})); } }- Parameters:
kubernetesClientBuilderCustomizer- Consumer function to enable further customization of the provided KubernetesClientBuilder.- Returns:
- a NamespacedKubernetesClient instance from the provided configuration.
-
setVersionInfo
public final void setVersionInfo(io.fabric8.kubernetes.client.VersionInfo versionInfo)
Replace the currentVersionInfoinstance.- Parameters:
versionInfo- the new VersionInfo.
-
setUnsupported
public void setUnsupported(String... unsupported)
Used to exclude support for the given apiGroups.
Each is a simple expression of the form: group[/version]
where * is a wildcard.
For example to exclude all openshift support, you would specify openshift.io
To exclude a specific apiVersion, you would fully specify route.openshift.io/v1NOTE this affects calls to
Client.hasApiGroup(String, boolean)andClient.supports(Class). Other calls to get the full root path or other api group metadata will not return valid results in mock scenarios.- Parameters:
unsupported- apiGroup patterns
-
clearExpectations
public void clearExpectations()
Removes all recorded expectations.
-
initConfig
protected io.fabric8.kubernetes.client.Config initConfig()
-
reset
public void reset()
Description copied from interface:Resetablereturn the resource to its initial state
-
expectCustomResource
public void expectCustomResource(io.fabric8.kubernetes.client.dsl.base.CustomResourceDefinitionContext rdc)
Ensure that the server will supply anAPIResourceListcontaining anAPIResourcerepresenting theCustomResourceDefinitionContextfrom the apis/group/version endpoint.This is useful when testing calls through the
KubernetesClient.genericKubernetesResources(String, String)entry point.If this is a crud server, the custom resource will be added to the set of previously added resources and the resources inferred from custom resource definitions that have been added.
If this server is not crud, this call will add a single expectation for the given resource. Direct handling of multiple resources for a given api group/version has not yet been added.
- Specified by:
expectCustomResourcein interfaceCustomResourceAware- Parameters:
rdc- the resource definition context
-
-