1 package org.onap.appc.client.lcm.model;
3 import org.junit.Assert;
6 import java.lang.reflect.Field;
7 import java.lang.reflect.Method;
8 import java.util.ArrayList;
11 public class TestModelPOJO {
12 static List<Class> pojoClassName;
13 static List<String> fields;
15 pojoClassName = new ArrayList<>();
16 pojoClassName.add(AuditInput.class);
17 pojoClassName.add(AuditOutput.class);
18 pojoClassName.add(CheckLockInput.class);
19 pojoClassName.add(CheckLockOutput.class);
20 pojoClassName.add(ConfigBackupDeleteInput.class);
21 pojoClassName.add(ConfigBackupDeleteOutput.class);
22 pojoClassName.add(ConfigBackupInput.class);
23 pojoClassName.add(ConfigBackupOutput.class);
24 pojoClassName.add(ConfigExportInput.class);
25 pojoClassName.add(ConfigExportOutput.class);
26 pojoClassName.add(ConfigModifyInput.class);
27 pojoClassName.add(ConfigModifyOutput.class);
28 pojoClassName.add(ConfigRestoreInput.class);
29 pojoClassName.add(ConfigRestoreOutput.class);
30 pojoClassName.add(ConfigScaleoutInput.class);
31 pojoClassName.add(ConfigScaleoutOutput.class);
32 pojoClassName.add(ConfigureInput.class);
33 pojoClassName.add(ConfigureOutput.class);
34 pojoClassName.add(EvacuateInput.class);
35 pojoClassName.add(EvacuateOutput.class);
36 pojoClassName.add(HealthCheckInput.class);
37 pojoClassName.add(HealthCheckOutput.class);
38 pojoClassName.add(LiveUpgradeInput.class);
39 pojoClassName.add(LiveUpgradeOutput.class);
40 pojoClassName.add(LockInput.class);
41 pojoClassName.add(LockOutput.class);
42 pojoClassName.add(MigrateInput.class);
43 pojoClassName.add(MigrateOutput.class);
44 pojoClassName.add(RebuildInput.class);
45 pojoClassName.add(RebuildOutput.class);
46 pojoClassName.add(HealthCheckInput.class);
47 pojoClassName.add(RollbackInput.class);
48 pojoClassName.add(RollbackOutput.class);
49 pojoClassName.add(RestartInput.class);
50 pojoClassName.add(RestartOutput.class);
51 pojoClassName.add(SnapshotInput.class);
52 pojoClassName.add(SnapshotOutput.class);
53 pojoClassName.add(SoftwareUploadInput.class);
54 pojoClassName.add(SoftwareUploadOutput.class);
55 pojoClassName.add(StartApplicationInput.class);
56 pojoClassName.add(StartApplicationOutput.class);
57 pojoClassName.add(StartInput.class);
58 pojoClassName.add(StartOutput.class);
59 pojoClassName.add(StopApplicationInput.class);
60 pojoClassName.add(StopApplicationOutput.class);
61 pojoClassName.add(StopInput.class);
62 pojoClassName.add(SyncInput.class);
63 pojoClassName.add(SyncOutput.class);
64 pojoClassName.add(TerminateInput.class);
65 pojoClassName.add(TerminateOutput.class);
66 pojoClassName.add(TestInput.class);
67 pojoClassName.add(TestOutput.class);
68 pojoClassName.add(UnlockInput.class);
69 pojoClassName.add(UnlockOutput.class);
71 fields = new ArrayList<>();
72 fields.add("CommonHeader");
74 fields.add("Payload");
78 public void testModel() throws Exception{
79 for(String field: fields){
80 for(Class c: pojoClassName){
81 Object instance = c.newInstance();
82 Field[] fields = c.getDeclaredFields();
84 if(f.getType() == getClassForString(field)){
85 Method m = c.getDeclaredMethod("set"+field,getClassForString(field));
86 Object argument = createArgument(field);
87 m.invoke(instance,argument);
89 Method getter = c.getDeclaredMethod("get"+field);
90 Object getValue = getter.invoke(instance);
91 Assert.assertEquals("POJO test failed for class:"+c.getCanonicalName()+" for method:"+m.getName(),argument, getValue);
98 private Object createArgument(String field){
99 if(field.equals("CommonHeader")){
100 return createHeader();
102 else if(field.equals("Action")){
103 return createAction();
104 }else if(field.equals("Payload")){
105 return createPayload();
106 }else if(field.equals("Status")){
107 return createStatus();
110 throw new IllegalArgumentException();
113 private Action createAction(){
114 return Action.Restart;
116 private Payload createPayload(){
117 return new Payload();
119 private CommonHeader createHeader(){
120 CommonHeader header = new CommonHeader();
121 header.setApiVer("apiver");
122 header.setOriginatorId("originator");
125 private Status createStatus() {
129 private Class getClassForString(String field){
131 if(field.equals("CommonHeader")){
132 return CommonHeader.class;
133 }else if(field.equals("Action")){
135 }else if(field.equals("ActionIdentifiers")){
136 return ActionIdentifiers.class;
137 }else if(field.equals("Payload")){
138 return Payload.class;
139 }else if(field.equals("Status")){
142 throw new IllegalArgumentException();