1+ package io .javaoperatorsdk .operator .api .reconciler .dependent .managed ;
2+
3+ import io .javaoperatorsdk .operator .processing .dependent .workflow .WorkflowReconcileResult ;
4+ import org .junit .jupiter .api .Test ;
5+
6+ import java .util .List ;
7+ import java .util .Map ;
8+ import java .util .Optional ;
9+
10+ import static io .javaoperatorsdk .operator .api .reconciler .dependent .managed .DefaultManagedDependentResourceContext .RECONCILE_RESULT_KEY ;
11+ import static org .assertj .core .api .Assertions .assertThat ;
12+ import static org .assertj .core .api .Assertions .assertThatThrownBy ;
13+
14+ class DefaultManagedDependentResourceContextTest {
15+
16+ private ManagedDependentResourceContext context = new DefaultManagedDependentResourceContext ();
17+
18+ @ Test
19+ void getWhenEmpty () {
20+ Optional <String > actual = context .get ("key" , String .class );
21+ assertThat (actual ).isEmpty ();
22+ }
23+
24+ @ Test
25+ void get () {
26+ context .put ("key" , "value" );
27+ Optional <String > actual = context .get ("key" , String .class );
28+ assertThat (actual ).contains ("value" );
29+ }
30+
31+ @ Test
32+ void putNewValueOverwrites () {
33+ context .put ("key" , "value" );
34+ context .put ("key" , "valueB" );
35+ Optional <String > actual = context .get ("key" , String .class );
36+ assertThat (actual ).contains ("valueB" );
37+ }
38+
39+ @ Test
40+ void putNewValueReturnsPriorValue () {
41+ context .put ("key" , "value" );
42+ Optional <String > actual = (Optional <String >) (Object )context .put ("key" , "valueB" );
43+ assertThat (actual ).contains ("value" );
44+ }
45+
46+ @ Test
47+ void putNullRemoves () {
48+ context .put ("key" , "value" );
49+ context .put ("key" , null );
50+ Optional <String > actual = context .get ("key" , String .class );
51+ assertThat (actual ).isEmpty ();
52+ }
53+
54+ @ Test
55+ void putNullReturnsPriorValue () {
56+ context .put ("key" , "value" );
57+ Optional <String > actual = context .put ("key" , null );
58+ assertThat (actual ).contains ("value" );
59+ }
60+
61+ @ Test
62+ void getMandatory () {
63+ context .put ("key" , "value" );
64+ String actual = context .getMandatory ("key" , String .class );
65+ assertThat (actual ).isEqualTo ("value" );
66+ }
67+
68+ @ Test
69+ void getMandatoryWhenEmpty () {
70+ assertThatThrownBy (() -> {
71+ context .getMandatory ("key" , String .class );
72+ }).isInstanceOf (IllegalStateException .class )
73+ .hasMessage ("Mandatory attribute (key: key, type: java.lang.String) is missing or not of the expected type" );
74+ }
75+
76+ @ Test
77+ void getWorkflowReconcileResult () {
78+ WorkflowReconcileResult result = new WorkflowReconcileResult (List .of (), List .of (), Map .of (), Map .of ());
79+ context .put (RECONCILE_RESULT_KEY , result );
80+ Optional <WorkflowReconcileResult > actual = context .getWorkflowReconcileResult ();
81+ assertThat (actual ).containsSame (result );
82+ }
83+
84+ }
0 commit comments