Skip to content
This repository was archived by the owner on Apr 10, 2024. It is now read-only.

Commit d5676ce

Browse files
authored
improve: no separate samples module, facelift docs (#74)
1 parent aedd944 commit d5676ce

File tree

14 files changed

+112
-122
lines changed

14 files changed

+112
-122
lines changed

README.md

Lines changed: 42 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -25,33 +25,28 @@ Include dependency:
2525
### In Unit Tests
2626

2727
See sample unit
28-
test [here](https://github.com/java-operator-sdk/jenvtest/blob/6fadd8cb07ea0a61410175abf1f6ec495bf6a20f/samples/src/test/java/io/javaoperatorsdk/jenvtest/JUnitExtensionOnClassTest.java)
28+
test [here](https://github.com/java-operator-sdk/jenvtest/blob/main/core/src/test/java/io/javaoperatorsdk/jenvtest/sample/JUnitExtensionSimpleCaseTest.java)
2929

3030
```java
3131

32-
@EnableKubeAPIServer // Start/Stop Kube API Server in the background
33-
class JUnitExtensionTest {
32+
@EnableKubeAPIServer
33+
class JUnitExtensionSimpleCaseTest {
34+
35+
// Use @KubeConfig annotation to inject kube config yaml to init any client
36+
@KubeConfig
37+
static String kubeConfigYaml;
3438

3539
@Test
36-
void testCommunication() {
37-
// use a Kubernetes client to communicate with the server
38-
var client = new KubernetesClientBuilder().build();
39-
client.resource(configMap()).createOrReplace();
40-
var cm = client.resource(configMap()).get();
40+
void simpleTestWithTargetVersion() {
41+
var client = new KubernetesClientBuilder()
42+
.withConfig(Config.fromKubeconfig(kubeConfigYaml))
43+
.build();
4144

42-
assertThat(cm).isNotNull();
43-
}
45+
client.resource(TestUtils.testConfigMap()).create();
46+
var cm = client.resource(TestUtils.testConfigMap()).get();
4447

45-
private ConfigMap configMap() {
46-
return new ConfigMapBuilder()
47-
.withMetadata(new ObjectMetaBuilder()
48-
.withName("test1")
49-
.withNamespace("default")
50-
.build())
51-
.withData(Map.of("key", "data"))
52-
.build();
48+
Assertions.assertThat(cm).isNotNull();
5349
}
54-
5550
}
5651
```
5752

@@ -94,6 +89,34 @@ class KubeApiServerTest {
9489
}
9590
```
9691

92+
### Fabric8 Kubernetes Client Support
93+
94+
There is a dedicated support for [Fabric8 Kubernetes Client](https://github.com/fabric8io/kubernetes-client).
95+
96+
Using dependency:
97+
98+
```xml
99+
<dependency>
100+
<groupId>io.javaoperatorsdk</groupId>
101+
<artifactId>jenvtest-fabric8-client</artifactId>
102+
<version>[version]</version>
103+
<scope>test</scope>
104+
</dependency>
105+
```
106+
107+
The client can be directly injected to the test. See sample test [here](/home/csviri/Workspace/jenvtest/fabric8/src/test/java/io/javaoperatorsdk/jenvtest/junit/JUnitFabric8ClientInjectionTest.java).
108+
109+
```java
110+
111+
@EnableKubeAPIServer
112+
class JUnitFabric8ClientInjectionTest {
113+
114+
static KubernetesClient client;
115+
116+
// emitted code
117+
}
118+
```
119+
97120
### Testing Mutation and Validation Webhooks
98121

99122
An additional benefits os running K8S API Server this way, is that it makes easy to test

core/pom.xml

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,10 @@
8383
<groupId>org.bouncycastle</groupId>
8484
<artifactId>bcpkix-jdk18on</artifactId>
8585
</dependency>
86-
86+
<dependency>
87+
<groupId>io.javaoperatorsdk</groupId>
88+
<artifactId>kubernetes-webhooks-framework-core</artifactId>
89+
<scope>test</scope>
90+
</dependency>
8791
</dependencies>
8892
</project>

samples/src/test/java/io/javaoperatorsdk/jenvtest/JUnitExtensionKubeConfigUpdateTest.java renamed to core/src/test/java/io/javaoperatorsdk/jenvtest/sample/JUnitExtensionKubeConfigUpdateTest.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
1-
package io.javaoperatorsdk.jenvtest;
1+
package io.javaoperatorsdk.jenvtest.sample;
22

33
import org.junit.jupiter.api.Test;
44

55
import io.javaoperatorsdk.jenvtest.junit.EnableKubeAPIServer;
66

7-
import static io.javaoperatorsdk.jenvtest.TestUtils.simpleTest;
7+
import static io.javaoperatorsdk.jenvtest.sample.TestUtils.simpleTest;
88

99
@EnableKubeAPIServer
1010
class JUnitExtensionKubeConfigUpdateTest {
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
1-
package io.javaoperatorsdk.jenvtest;
1+
package io.javaoperatorsdk.jenvtest.sample;
22

33
import org.junit.jupiter.api.Test;
44

55
import io.javaoperatorsdk.jenvtest.junit.EnableKubeAPIServer;
66
import io.javaoperatorsdk.jenvtest.junit.KubeConfig;
77

8-
import static io.javaoperatorsdk.jenvtest.TestUtils.simpleTest;
8+
import static io.javaoperatorsdk.jenvtest.sample.TestUtils.simpleTest;
99

1010
class JUnitExtensionOnMethodTest {
1111

@@ -14,13 +14,13 @@ class JUnitExtensionOnMethodTest {
1414

1515
@Test
1616
@EnableKubeAPIServer
17-
void testCommunication() {
18-
simpleTest(kubeConfigYaml);
17+
void simpleTest1() {
18+
TestUtils.simpleTest(kubeConfigYaml);
1919
}
2020

2121
@Test
2222
@EnableKubeAPIServer
23-
void testCommunication2() {
24-
simpleTest(kubeConfigYaml);
23+
void simpleTest2() {
24+
TestUtils.simpleTest(kubeConfigYaml);
2525
}
2626
}
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
package io.javaoperatorsdk.jenvtest.sample;
2+
3+
import org.junit.jupiter.api.Test;
4+
5+
import io.fabric8.kubernetes.client.Config;
6+
import io.fabric8.kubernetes.client.KubernetesClientBuilder;
7+
import io.javaoperatorsdk.jenvtest.junit.EnableKubeAPIServer;
8+
import io.javaoperatorsdk.jenvtest.junit.KubeConfig;
9+
10+
import static io.javaoperatorsdk.jenvtest.sample.TestUtils.simpleTest;
11+
12+
@EnableKubeAPIServer
13+
class JUnitExtensionSimpleCaseTest {
14+
15+
@KubeConfig
16+
static String kubeConfigYaml;
17+
18+
@Test
19+
void simpleTestWithTargetVersion() {
20+
var client = new KubernetesClientBuilder()
21+
.withConfig(Config.fromKubeconfig(kubeConfigYaml))
22+
.build();
23+
24+
simpleTest(client);
25+
}
26+
}

samples/src/test/java/io/javaoperatorsdk/jenvtest/JUnitExtensionTargetVersionTest.java renamed to core/src/test/java/io/javaoperatorsdk/jenvtest/sample/JUnitExtensionTargetVersionTest.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package io.javaoperatorsdk.jenvtest;
1+
package io.javaoperatorsdk.jenvtest.sample;
22

33
import org.junit.jupiter.api.Test;
44

@@ -7,7 +7,7 @@
77
import io.javaoperatorsdk.jenvtest.junit.EnableKubeAPIServer;
88
import io.javaoperatorsdk.jenvtest.junit.KubeConfig;
99

10-
import static io.javaoperatorsdk.jenvtest.TestUtils.simpleTest;
10+
import static io.javaoperatorsdk.jenvtest.sample.TestUtils.simpleTest;
1111
import static org.assertj.core.api.Assertions.assertThat;
1212

1313
@EnableKubeAPIServer(kubeAPIVersion = TestUtils.NON_LATEST_API_SERVER_VERSION)

samples/src/test/java/io/javaoperatorsdk/jenvtest/KubeApiServerTest.java renamed to core/src/test/java/io/javaoperatorsdk/jenvtest/sample/KubeApiServerTest.java

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,14 @@
1-
package io.javaoperatorsdk.jenvtest;
1+
package io.javaoperatorsdk.jenvtest.sample;
22

33
import org.junit.jupiter.api.Test;
44

55
import io.fabric8.kubernetes.client.Config;
66
import io.fabric8.kubernetes.client.KubernetesClientBuilder;
7+
import io.javaoperatorsdk.jenvtest.KubeAPIServer;
8+
import io.javaoperatorsdk.jenvtest.KubeAPIServerConfigBuilder;
79

8-
import static io.javaoperatorsdk.jenvtest.TestUtils.NON_LATEST_API_SERVER_VERSION;
9-
import static io.javaoperatorsdk.jenvtest.TestUtils.simpleTest;
10+
import static io.javaoperatorsdk.jenvtest.sample.TestUtils.NON_LATEST_API_SERVER_VERSION;
11+
import static io.javaoperatorsdk.jenvtest.sample.TestUtils.simpleTest;
1012
import static org.assertj.core.api.Assertions.assertThat;
1113

1214
class KubeApiServerTest {

samples/src/test/java/io/javaoperatorsdk/jenvtest/KubernetesMutationHookHandlingTest.java renamed to core/src/test/java/io/javaoperatorsdk/jenvtest/sample/KubernetesMutationHookHandlingTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package io.javaoperatorsdk.jenvtest;
1+
package io.javaoperatorsdk.jenvtest.sample;
22

33
import java.io.*;
44
import java.nio.charset.StandardCharsets;

samples/src/test/java/io/javaoperatorsdk/jenvtest/TestUtils.java renamed to core/src/test/java/io/javaoperatorsdk/jenvtest/sample/TestUtils.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package io.javaoperatorsdk.jenvtest;
1+
package io.javaoperatorsdk.jenvtest.sample;
22

33
import java.util.Map;
44

0 commit comments

Comments
 (0)