a807a11790385a56d536596b6b2df27caf2cbf98
[policy/clamp.git] /
1 /*-
2  * ============LICENSE_START=======================================================
3  *  Copyright (C) 2023-2024 Nordix Foundation.
4  * ================================================================================
5  * Licensed under the Apache License, Version 2.0 (the "License");
6  * you may not use this file except in compliance with the License.
7  * You may obtain a copy of the License at
8  *
9  *      http://www.apache.org/licenses/LICENSE-2.0
10  *
11  * Unless required by applicable law or agreed to in writing, software
12  * distributed under the License is distributed on an "AS IS" BASIS,
13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  * See the License for the specific language governing permissions and
15  * limitations under the License.
16  *
17  * SPDX-License-Identifier: Apache-2.0
18  * ============LICENSE_END=========================================================
19  */
20
21 package org.onap.policy.clamp.models.acm.persistence.provider;
22
23 import static org.assertj.core.api.Assertions.assertThat;
24
25 import org.junit.jupiter.api.Test;
26 import org.onap.policy.clamp.models.acm.concepts.DeployState;
27 import org.onap.policy.clamp.models.acm.concepts.LockState;
28 import org.onap.policy.clamp.models.acm.concepts.StateChangeResult;
29 import org.onap.policy.clamp.models.acm.concepts.SubState;
30 import org.onap.policy.clamp.models.acm.messages.rest.instantiation.DeployOrder;
31 import org.onap.policy.clamp.models.acm.messages.rest.instantiation.LockOrder;
32 import org.onap.policy.clamp.models.acm.messages.rest.instantiation.SubOrder;
33
34 class AcInstanceStateResolverTest {
35
36     @Test
37     void testResolve() {
38         var acTypeStateResolver = new AcInstanceStateResolver();
39         // deploy
40         var result = acTypeStateResolver.resolve(DeployOrder.DEPLOY, LockOrder.NONE, SubOrder.NONE,
41             DeployState.UNDEPLOYED, LockState.NONE, SubState.NONE, StateChangeResult.NO_ERROR);
42         assertThat(result).isEqualTo(AcInstanceStateResolver.DEPLOY);
43
44         // undeploy
45         result = acTypeStateResolver.resolve(DeployOrder.UNDEPLOY, LockOrder.NONE, SubOrder.NONE,
46             DeployState.DEPLOYED, LockState.LOCKED, SubState.NONE, StateChangeResult.NO_ERROR);
47         assertThat(result).isEqualTo(AcInstanceStateResolver.UNDEPLOY);
48
49         // unlock
50         result = acTypeStateResolver.resolve(DeployOrder.NONE, LockOrder.UNLOCK, SubOrder.NONE,
51             DeployState.DEPLOYED, LockState.LOCKED, SubState.NONE, StateChangeResult.NO_ERROR);
52         assertThat(result).isEqualTo(AcInstanceStateResolver.UNLOCK);
53
54         // lock
55         result = acTypeStateResolver.resolve(DeployOrder.NONE, LockOrder.LOCK, SubOrder.NONE,
56             DeployState.DEPLOYED, LockState.UNLOCKED, SubState.NONE, StateChangeResult.NO_ERROR);
57         assertThat(result).isEqualTo(AcInstanceStateResolver.LOCK);
58
59         // migrate
60         result = acTypeStateResolver.resolve(DeployOrder.MIGRATE, LockOrder.NONE, SubOrder.NONE,
61             DeployState.DEPLOYED, LockState.LOCKED, SubState.NONE, StateChangeResult.NO_ERROR);
62         assertThat(result).isEqualTo(AcInstanceStateResolver.MIGRATE);
63
64         // migrate-precheck
65         result = acTypeStateResolver.resolve(DeployOrder.NONE, LockOrder.NONE, SubOrder.MIGRATE_PRECHECK,
66             DeployState.DEPLOYED, LockState.LOCKED, SubState.NONE, StateChangeResult.NO_ERROR);
67         assertThat(result).isEqualTo(AcInstanceStateResolver.MIGRATE_PRECHECK);
68
69         // prepare
70         result = acTypeStateResolver.resolve(DeployOrder.NONE, LockOrder.NONE, SubOrder.PREPARE,
71             DeployState.UNDEPLOYED, LockState.NONE, SubState.NONE, StateChangeResult.NO_ERROR);
72         assertThat(result).isEqualTo(AcInstanceStateResolver.PREPARE);
73
74         // review
75         result = acTypeStateResolver.resolve(DeployOrder.NONE, LockOrder.NONE, SubOrder.REVIEW,
76             DeployState.DEPLOYED, LockState.LOCKED, SubState.NONE, StateChangeResult.NO_ERROR);
77         assertThat(result).isEqualTo(AcInstanceStateResolver.REVIEW);
78     }
79
80     @Test
81     void testResolveWrongOrder() {
82         var acTypeStateResolver = new AcInstanceStateResolver();
83
84         var result = acTypeStateResolver.resolve(DeployOrder.NONE, LockOrder.NONE, SubOrder.NONE,
85             DeployState.UNDEPLOYED, LockState.NONE, SubState.NONE, StateChangeResult.NO_ERROR);
86         assertThat(result).isEqualTo(AcInstanceStateResolver.NONE);
87
88         result = acTypeStateResolver.resolve(DeployOrder.UNDEPLOY, LockOrder.UNLOCK, SubOrder.NONE,
89             DeployState.DEPLOYED, LockState.LOCKED, SubState.NONE, StateChangeResult.NO_ERROR);
90         assertThat(result).isEqualTo(AcInstanceStateResolver.NONE);
91
92         result = acTypeStateResolver.resolve(DeployOrder.NONE, LockOrder.UNLOCK, SubOrder.NONE,
93             DeployState.UNDEPLOYED, LockState.NONE, SubState.NONE, StateChangeResult.NO_ERROR);
94         assertThat(result).isEqualTo(AcInstanceStateResolver.NONE);
95
96         result = acTypeStateResolver.resolve(DeployOrder.UNDEPLOY, LockOrder.NONE, SubOrder.NONE,
97             DeployState.DEPLOYING, LockState.NONE, SubState.NONE, StateChangeResult.NO_ERROR);
98         assertThat(result).isEqualTo(AcInstanceStateResolver.NONE);
99
100         result = acTypeStateResolver.resolve(null, null, null, null, null, null, null);
101         assertThat(result).isEqualTo(AcInstanceStateResolver.NONE);
102     }
103 }