Skip to content

Commit b6d68ae

Browse files
committed
fix: unit test, formatting
1 parent b297f43 commit b6d68ae

File tree

4 files changed

+61
-79
lines changed

4 files changed

+61
-79
lines changed

core/src/main/java/io/javaoperatorsdk/admissioncontroller/AdmissionUtils.java

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,15 @@
11
package io.javaoperatorsdk.admissioncontroller;
22

3-
import com.fasterxml.jackson.databind.ObjectMapper;
3+
import java.nio.charset.StandardCharsets;
4+
import java.util.Base64;
5+
46
import io.fabric8.kubernetes.api.model.KubernetesResource;
57
import io.fabric8.kubernetes.api.model.Status;
68
import io.fabric8.kubernetes.api.model.admission.v1.AdmissionRequest;
79
import io.fabric8.kubernetes.api.model.admission.v1.AdmissionResponse;
810
import io.fabric8.zjsonpatch.JsonDiff;
911

10-
import java.nio.charset.StandardCharsets;
11-
import java.util.Base64;
12+
import com.fasterxml.jackson.databind.ObjectMapper;
1213

1314
public class AdmissionUtils {
1415

@@ -33,15 +34,16 @@ public static KubernetesResource getTargetResource(AdmissionRequest admissionReq
3334
}
3435

3536
public static AdmissionResponse admissionResponseFromMutation(KubernetesResource originalResource,
36-
KubernetesResource mutatedResource) {
37+
KubernetesResource mutatedResource) {
3738
AdmissionResponse admissionResponse = new AdmissionResponse();
3839
admissionResponse.setAllowed(true);
3940
admissionResponse.setPatchType(JSON_PATCH);
4041
var originalResNode = mapper.valueToTree(originalResource);
4142
var mutatedResNode = mapper.valueToTree(mutatedResource);
4243

4344
var diff = JsonDiff.asJson(originalResNode, mutatedResNode);
44-
String base64Diff = Base64.getEncoder().encodeToString(diff.toString().getBytes(StandardCharsets.UTF_8));
45+
String base64Diff =
46+
Base64.getEncoder().encodeToString(diff.toString().getBytes(StandardCharsets.UTF_8));
4547
admissionResponse.setPatch(base64Diff);
4648
return admissionResponse;
4749
}
Lines changed: 54 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -1,73 +1,77 @@
11
package io.javaoperatorsdk.admissioncontroller;
22

3+
import java.io.IOException;
4+
import java.io.InputStream;
5+
import java.util.Base64;
6+
import java.util.UUID;
7+
8+
import org.junit.jupiter.api.Test;
9+
310
import io.fabric8.kubernetes.api.model.HasMetadata;
411
import io.fabric8.kubernetes.api.model.admission.v1.AdmissionRequest;
512
import io.fabric8.kubernetes.api.model.admission.v1.AdmissionReview;
613
import io.fabric8.kubernetes.api.model.apps.Deployment;
714
import io.fabric8.kubernetes.client.utils.Serialization;
8-
import org.junit.jupiter.api.Test;
9-
10-
import java.io.IOException;
11-
import java.io.InputStream;
12-
import java.util.Base64;
13-
import java.util.UUID;
1415

1516
import static org.assertj.core.api.Assertions.assertThat;
16-
import static org.assertj.core.api.Assertions.in;
1717

1818
class AdmissionControllerTest {
1919

20-
public static final String MISSING_REQUIRED_LABEL = "Missing required label.";
21-
public static final String LABEL_KEY = "app.kubernetes.io/name";
22-
public static final String LABEL_TEST_VALUE = "mutation-test";
20+
public static final String MISSING_REQUIRED_LABEL = "Missing required label.";
21+
public static final String LABEL_KEY = "app.kubernetes.io/name";
22+
public static final String LABEL_TEST_VALUE = "mutation-test";
2323

24-
@Test
25-
public void validatesResource() {
26-
AdmissionController<HasMetadata> admissionController = new AdmissionController<>((resource, operation) -> {
27-
if (resource.getMetadata().getLabels().get(LABEL_KEY) == null) {
28-
throw new NotAllowedException(MISSING_REQUIRED_LABEL);
29-
}
24+
@Test
25+
public void validatesResource() {
26+
AdmissionController<HasMetadata> admissionController =
27+
new AdmissionController<>((resource, operation) -> {
28+
if (resource.getMetadata().getLabels().get(LABEL_KEY) == null) {
29+
throw new NotAllowedException(MISSING_REQUIRED_LABEL);
30+
}
3031
});
31-
var inputAdmissionReview = createTestAdmissionReview();
32+
var inputAdmissionReview = createTestAdmissionReview();
3233

33-
var response = admissionController.handle(inputAdmissionReview);
34+
var response = admissionController.handle(inputAdmissionReview);
3435

35-
assertThat(response.getResponse().getUid()).isEqualTo(inputAdmissionReview.getRequest().getUid());
36-
assertThat(response.getResponse().getStatus().getCode()).isEqualTo(403);
37-
assertThat(response.getResponse().getStatus().getMessage()).isEqualTo(MISSING_REQUIRED_LABEL);
38-
assertThat(response.getResponse().getAllowed()).isFalse();
39-
}
36+
assertThat(response.getResponse().getUid())
37+
.isEqualTo(inputAdmissionReview.getRequest().getUid());
38+
assertThat(response.getResponse().getStatus().getCode()).isEqualTo(403);
39+
assertThat(response.getResponse().getStatus().getMessage()).isEqualTo(MISSING_REQUIRED_LABEL);
40+
assertThat(response.getResponse().getAllowed()).isFalse();
41+
}
4042

41-
@Test
42-
public void mutatesResource() {
43-
AdmissionController<HasMetadata> admissionController = new AdmissionController<>((resource, operation) -> {
44-
resource.getMetadata().getLabels().putIfAbsent(LABEL_KEY, LABEL_TEST_VALUE);
45-
return resource;
43+
@Test
44+
public void mutatesResource() {
45+
AdmissionController<HasMetadata> admissionController =
46+
new AdmissionController<>((resource, operation) -> {
47+
resource.getMetadata().getLabels().putIfAbsent(LABEL_KEY, LABEL_TEST_VALUE);
48+
return resource;
4649
});
47-
var inputAdmissionReview = createTestAdmissionReview();
50+
var inputAdmissionReview = createTestAdmissionReview();
4851

49-
var response = admissionController.handle(inputAdmissionReview);
52+
var response = admissionController.handle(inputAdmissionReview);
5053

51-
assertThat(response.getResponse().getAllowed()).isTrue();
52-
String patch = new String(Base64.getDecoder().decode(response.getResponse().getPatch()));
53-
assertThat(patch)
54-
.isEqualTo("[{\"op\":\"add\",\"path\":\"/metadata/labels/app.kubernetes.io~1name\",\"value\":\"mutation-test\"}]");
55-
}
54+
assertThat(response.getResponse().getAllowed()).isTrue();
55+
String patch = new String(Base64.getDecoder().decode(response.getResponse().getPatch()));
56+
assertThat(patch)
57+
.isEqualTo(
58+
"[{\"op\":\"add\",\"path\":\"/metadata/labels/app.kubernetes.io~1name\",\"value\":\"mutation-test\"}]");
59+
}
5660

57-
private AdmissionReview createTestAdmissionReview() {
58-
AdmissionReview admissionReview = new AdmissionReview();
59-
AdmissionRequest request = new AdmissionRequest();
60-
admissionReview.setRequest(request);
61-
request.setOperation(Operation.CREATE.name());
62-
request.setUid(UUID.randomUUID().toString());
63-
Deployment deployment = null;
64-
try(InputStream is = getClass().getResourceAsStream("deployment.yaml")) {
65-
deployment = Serialization.unmarshal(is, Deployment.class);
66-
request.setObject(deployment);
67-
} catch (IOException e) {
68-
throw new IllegalStateException(e);
69-
}
70-
return admissionReview;
61+
private AdmissionReview createTestAdmissionReview() {
62+
AdmissionReview admissionReview = new AdmissionReview();
63+
AdmissionRequest request = new AdmissionRequest();
64+
admissionReview.setRequest(request);
65+
request.setOperation(Operation.CREATE.name());
66+
request.setUid(UUID.randomUUID().toString());
67+
Deployment deployment = null;
68+
try (InputStream is = getClass().getResourceAsStream("deployment.yaml")) {
69+
deployment = Serialization.unmarshal(is, Deployment.class);
70+
request.setObject(deployment);
71+
} catch (IOException e) {
72+
throw new IllegalStateException(e);
7173
}
74+
return admissionReview;
75+
}
7276

73-
}
77+
}
Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,5 @@
11
package io.javaoperatorsdk.admissioncontroller.sample;
22

3-
import io.fabric8.kubernetes.api.model.admission.v1.AdmissionReview;
4-
53
public class SampleMutationHook {
64

7-
public AdmissionReview validate(AdmissionReview request) {
8-
9-
return null;
10-
}
11-
125
}
Lines changed: 0 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,5 @@
11
package io.javaoperatorsdk.admissioncontroller.sample;
22

3-
import io.fabric8.kubernetes.api.model.admission.v1.AdmissionRequest;
4-
import io.fabric8.kubernetes.api.model.admission.v1.AdmissionResponse;
5-
import io.fabric8.kubernetes.api.model.admission.v1.AdmissionReview;
6-
73
public class SampleValidationWebhook {
84

9-
10-
11-
public AdmissionReview validate(AdmissionReview request) {
12-
13-
14-
return null;
15-
}
16-
17-
private AdmissionResponse validate(AdmissionRequest admissionRequest) {
18-
return null;
19-
}
20-
21-
225
}

0 commit comments

Comments
 (0)