2d263fc7dcc8a562d759180070823e506f45c597
[policy/common.git] /
1 /*-
2  * ============LICENSE_START=======================================================
3  *  Copyright (C) 2018 Ericsson. All rights reserved.
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.common.parameters.testclasses;
22
23 import org.onap.policy.common.parameters.GroupValidationResult;
24 import org.onap.policy.common.parameters.ParameterConstants;
25 import org.onap.policy.common.parameters.ParameterGroup;
26 import org.onap.policy.common.parameters.ValidationStatus;
27
28 public class TestParametersLGeneric implements ParameterGroup {
29     private String name;
30     private int lgenericIntField = 0;
31     private String lgenericStringField = "Legal " + this.getClass().getCanonicalName();
32     
33     /**
34      * Default constructor.
35      */
36     public TestParametersLGeneric() {
37         // Default Constructor
38     }
39     
40     /**
41      * Create a test parameter group.
42      * 
43      * @param name the parameter group name
44      */
45     public TestParametersLGeneric(final String name) {
46         this.name = name;
47     }
48
49     public int getLgenericIntField() {
50         return lgenericIntField;
51     }
52
53     public String getLgenericStringField() {
54         return lgenericStringField;
55     }
56
57     public void setName(String name) {
58         this.name = name;
59     }
60
61     public void setLgenericIntField(int lgenericIntField) {
62         this.lgenericIntField = lgenericIntField;
63     }
64
65     public void setLgenericStringField(String lgenericStringField) {
66         this.lgenericStringField = lgenericStringField;
67     }
68
69     /**
70      * Trigger a validation message.
71      * 
72      * @param level Number of levels to recurse before stopping
73      */
74     public void triggerValidationStatus(final ValidationStatus triggerStatus, int level) {
75         if (level == 0) {
76             return;
77         }
78         else {
79             level--;
80         }
81
82         switch (triggerStatus) {
83             case CLEAN:
84                 lgenericStringField = "Legal " + this.getClass().getCanonicalName();
85                 lgenericIntField = 0;
86                 break;
87             case OBSERVATION:
88                 lgenericStringField = "aString";
89                 lgenericIntField = 2;
90                 break;
91             case WARNING:
92                 lgenericStringField = "lgenericStringField";
93                 lgenericIntField = 3;
94                 break;
95             case INVALID:
96                 lgenericStringField = "";
97                 lgenericIntField = -1;
98                 break;
99             default:
100                 break;
101         }
102
103     }
104
105     @Override
106     public String getName() {
107         return this.name;
108     }
109
110     @Override
111     public GroupValidationResult validate() {
112         GroupValidationResult validationResult = new GroupValidationResult(this);
113
114         if (lgenericStringField == null || lgenericStringField.trim().length() == 0) {
115             validationResult.setResult("lgenericStringField", ValidationStatus.INVALID,
116                             "lgenericStringField must be a non-blank string");
117         } else if (lgenericStringField.equals("lgenericStringField")) {
118             validationResult.setResult("lgenericStringField", ValidationStatus.WARNING,
119                             "using the field name for the parameter value is dangerous");
120         } else if (lgenericStringField.equals("aString")) {
121             validationResult.setResult("lgenericStringField", ValidationStatus.OBSERVATION,
122                             "this value for name is unhelpful");
123         } else {
124             validationResult.setResult("lgenericStringField", ValidationStatus.CLEAN,
125                             ParameterConstants.PARAMETER_HAS_STATUS_MESSAGE + ValidationStatus.CLEAN.toString());
126         }
127
128         if (lgenericIntField < 0) {
129             validationResult.setResult("lgenericIntField", ValidationStatus.INVALID,
130                             "lgenericIntField must be a positive integer");
131         } else if (lgenericIntField > 2) {
132             validationResult.setResult("lgenericIntField", ValidationStatus.WARNING,
133                             "values greater than 2 are not recommended");
134         } else if (lgenericIntField == 2) {
135             validationResult.setResult("lgenericIntField", ValidationStatus.OBSERVATION,
136                             "this field has been set to 2");
137         } else {
138             validationResult.setResult("lgenericIntField", ValidationStatus.CLEAN,
139                             ParameterConstants.PARAMETER_HAS_STATUS_MESSAGE + ValidationStatus.CLEAN.toString());
140         }
141
142         return validationResult;
143     }
144 }