@@ -31,21 +31,9 @@ static void setUp() {
31
31
void checksIfDesiredValuesAreTheSame () {
32
32
var actual = createDeployment ();
33
33
final var desired = createDeployment ();
34
- final var matcher = GenericKubernetesResourceMatcher .matcherFor (Deployment .class ,
35
- new KubernetesDependentResource <>(Deployment .class ) {
36
- @ Override
37
- protected Deployment desired (HasMetadata primary , Context context ) {
38
- final var currentCase = Optional .ofNullable (primary )
39
- .map (p -> p .getMetadata ().getLabels ().get ("case" ))
40
- .orElse (null );
41
- var d = desired ;
42
- if ("removed" .equals (currentCase )) {
43
- d = createDeployment ();
44
- d .getSpec ().getTemplate ().getMetadata ().getLabels ().put ("new-key" , "val" );
45
- }
46
- return d ;
47
- }
48
- });
34
+ final var dependentResource = new TestDependentResource (desired );
35
+ final var matcher =
36
+ GenericKubernetesResourceMatcher .matcherFor (Deployment .class , dependentResource );
49
37
assertThat (matcher .match (actual , null , context ).matched ()).isTrue ();
50
38
assertThat (matcher .match (actual , null , context ).computedDesired ().isPresent ()).isTrue ();
51
39
assertThat (matcher .match (actual , null , context ).computedDesired ().get ()).isEqualTo (desired );
@@ -65,6 +53,21 @@ protected Deployment desired(HasMetadata primary, Context context) {
65
53
assertThat (matcher .match (actual , null , context ).matched ())
66
54
.withFailMessage ("Changed values are not ok" )
67
55
.isFalse ();
56
+
57
+ actual = new DeploymentBuilder (createDeployment ())
58
+ .editOrNewMetadata ()
59
+ .addToAnnotations ("test" , "value" )
60
+ .endMetadata ()
61
+ .build ();
62
+ assertThat (GenericKubernetesResourceMatcher
63
+ .match (dependentResource , actual , null , context , false ).matched ())
64
+ .withFailMessage ("Annotations shouldn't matter when metadata is not considered" )
65
+ .isTrue ();
66
+
67
+ assertThat (GenericKubernetesResourceMatcher
68
+ .match (dependentResource , actual , null , context , true ).matched ())
69
+ .withFailMessage ("Annotations should matter when metadata is not considered" )
70
+ .isFalse ();
68
71
}
69
72
70
73
Deployment createDeployment () {
@@ -79,4 +82,27 @@ HasMetadata createPrimary(String caseName) {
79
82
.endMetadata ()
80
83
.build ();
81
84
}
85
+
86
+ private class TestDependentResource extends KubernetesDependentResource <Deployment , HasMetadata > {
87
+
88
+ private final Deployment desired ;
89
+
90
+ public TestDependentResource (Deployment desired ) {
91
+ super (Deployment .class );
92
+ this .desired = desired ;
93
+ }
94
+
95
+ @ Override
96
+ protected Deployment desired (HasMetadata primary , Context context ) {
97
+ final var currentCase = Optional .ofNullable (primary )
98
+ .map (p -> p .getMetadata ().getLabels ().get ("case" ))
99
+ .orElse (null );
100
+ var d = desired ;
101
+ if ("removed" .equals (currentCase )) {
102
+ d = createDeployment ();
103
+ d .getSpec ().getTemplate ().getMetadata ().getLabels ().put ("new-key" , "val" );
104
+ }
105
+ return d ;
106
+ }
107
+ }
82
108
}
0 commit comments