More license header changes to appc-client files
[appc.git] / appc-client / client-kit / src / test / java / org / onap / appc / client / lcm / model / TestModelPOJO.java
1 /*-
2  * ============LICENSE_START=======================================================
3  * ONAP : APPC
4  * ================================================================================
5  * Copyright (C) 2017-2018 AT&T Intellectual Property. All rights reserved.
6  * ================================================================================
7  * Copyright (C) 2017 Amdocs
8  * =============================================================================
9  * Licensed under the Apache License, Version 2.0 (the "License");
10  * you may not use this file except in compliance with the License.
11  * You may obtain a copy of the License at
12  * 
13  *      http://www.apache.org/licenses/LICENSE-2.0
14  * 
15  * Unless required by applicable law or agreed to in writing, software
16  * distributed under the License is distributed on an "AS IS" BASIS,
17  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
18  * See the License for the specific language governing permissions and
19  * limitations under the License.
20  * 
21  * ============LICENSE_END=========================================================
22  */
23
24 package org.onap.appc.client.lcm.model;
25
26 import org.junit.Assert;
27 import org.junit.Test;
28
29 import java.lang.reflect.Field;
30 import java.lang.reflect.Method;
31 import java.util.ArrayList;
32 import java.util.List;
33
34 public class TestModelPOJO {
35     static List<Class> pojoClassName;
36     static List<String> fields;
37     static{
38         pojoClassName = new ArrayList<>();
39         pojoClassName.add(AuditInput.class);
40         pojoClassName.add(AuditOutput.class);
41         pojoClassName.add(CheckLockInput.class);
42         pojoClassName.add(CheckLockOutput.class);
43         pojoClassName.add(ConfigBackupDeleteInput.class);
44         pojoClassName.add(ConfigBackupDeleteOutput.class);
45         pojoClassName.add(ConfigBackupInput.class);
46         pojoClassName.add(ConfigBackupOutput.class);
47         pojoClassName.add(ConfigExportInput.class);
48         pojoClassName.add(ConfigExportOutput.class);
49         pojoClassName.add(ConfigModifyInput.class);
50         pojoClassName.add(ConfigModifyOutput.class);
51         pojoClassName.add(ConfigScaleOutInput.class);
52         pojoClassName.add(ConfigScaleOutOutput.class);
53         pojoClassName.add(ConfigRestoreInput.class);
54         pojoClassName.add(ConfigRestoreOutput.class);
55         pojoClassName.add(ConfigureInput.class);
56         pojoClassName.add(ConfigureOutput.class);
57         pojoClassName.add(EvacuateInput.class);
58         pojoClassName.add(EvacuateOutput.class);
59         pojoClassName.add(HealthCheckInput.class);
60         pojoClassName.add(HealthCheckOutput.class);
61         pojoClassName.add(LiveUpgradeInput.class);
62         pojoClassName.add(LiveUpgradeOutput.class);
63         pojoClassName.add(LockInput.class);
64         pojoClassName.add(LockOutput.class);
65         pojoClassName.add(MigrateInput.class);
66         pojoClassName.add(MigrateOutput.class);
67         pojoClassName.add(RebuildInput.class);
68         pojoClassName.add(RebuildOutput.class);
69         pojoClassName.add(HealthCheckInput.class);
70         pojoClassName.add(RollbackInput.class);
71         pojoClassName.add(RollbackOutput.class);
72         pojoClassName.add(RestartInput.class);
73         pojoClassName.add(RestartOutput.class);
74         pojoClassName.add(SnapshotInput.class);
75         pojoClassName.add(SnapshotOutput.class);
76         pojoClassName.add(SoftwareUploadInput.class);
77         pojoClassName.add(SoftwareUploadOutput.class);
78         pojoClassName.add(StartApplicationInput.class);
79         pojoClassName.add(StartApplicationOutput.class);
80         pojoClassName.add(StartInput.class);
81         pojoClassName.add(StartOutput.class);
82         pojoClassName.add(StopApplicationInput.class);
83         pojoClassName.add(StopApplicationOutput.class);
84         pojoClassName.add(StopInput.class);
85         pojoClassName.add(SyncInput.class);
86         pojoClassName.add(SyncOutput.class);
87         pojoClassName.add(TerminateInput.class);
88         pojoClassName.add(TerminateOutput.class);
89         pojoClassName.add(TestInput.class);
90         pojoClassName.add(TestOutput.class);
91         pojoClassName.add(UnlockInput.class);
92         pojoClassName.add(UnlockOutput.class);
93
94         fields = new ArrayList<>();
95         fields.add("CommonHeader");
96         fields.add("Action");
97         fields.add("Payload");
98         fields.add("Status");
99     }
100     @Test
101     public void testModel() throws Exception{
102         for(String field: fields){
103             for(Class c: pojoClassName){
104                 Object instance = c.newInstance();
105                 Field[] fields =  c.getDeclaredFields();
106                 for(Field f: fields){
107                     if(f.getType() == getClassForString(field)){
108                         Method m = c.getDeclaredMethod("set"+field,getClassForString(field));
109                         Object argument = createArgument(field);
110                         m.invoke(instance,argument);
111
112                         Method getter = c.getDeclaredMethod("get"+field);
113                         Object getValue = getter.invoke(instance);
114                         Assert.assertEquals("POJO test failed for class:"+c.getCanonicalName()+" for method:"+m.getName(),argument, getValue);
115                     }
116                 }
117             }
118         }
119     }
120
121     private Object createArgument(String field){
122         if(field.equals("CommonHeader")){
123             return createHeader();
124         }
125         else if(field.equals("Action")){
126             return createAction();
127         }else if(field.equals("Payload")){
128             return createPayload();
129         }else if(field.equals("Status")){
130             return createStatus();
131         }
132
133         throw new IllegalArgumentException();
134     }
135
136     private Action createAction(){
137         return Action.Restart;
138     }
139     private Payload createPayload(){
140         return new Payload();
141     }
142     private CommonHeader createHeader(){
143         CommonHeader header = new CommonHeader();
144         header.setApiVer("apiver");
145         header.setOriginatorId("originator");
146         return header;
147     }
148     private Status createStatus() {
149         return new Status();
150     }
151
152     private Class getClassForString(String field){
153
154         if(field.equals("CommonHeader")){
155             return CommonHeader.class;
156         }else if(field.equals("Action")){
157             return Action.class;
158         }else if(field.equals("ActionIdentifiers")){
159             return ActionIdentifiers.class;
160         }else if(field.equals("Payload")){
161             return Payload.class;
162         }else if(field.equals("Status")){
163             return Status.class;
164         }
165         throw new IllegalArgumentException();
166     }
167 }