Merge from ecomp 718fd196 - Integration Tests
[vid.git] / vid-automation / src / main / java / org / onap / simulator / presetGenerator / presets / aai / PresetAAIGetSubscribersGet.java
1 package org.onap.simulator.presetGenerator.presets.aai;
2
3 import com.fasterxml.jackson.core.type.TypeReference;
4 import com.fasterxml.jackson.databind.ObjectMapper;
5 import com.google.common.collect.ImmutableMap;
6 import org.onap.simulator.presetGenerator.presets.BasePresets.BaseAAIPreset;
7 import org.onap.simulator.presetGenerator.presets.model.Subscriber;
8 import org.springframework.http.HttpMethod;
9
10 import java.io.IOException;
11 import java.util.Collections;
12 import java.util.List;
13 import java.util.Map;
14
15 public class PresetAAIGetSubscribersGet extends BaseAAIPreset {
16
17     private static ObjectMapper objectMapper = new ObjectMapper();
18     private List<Subscriber> subscriberList;
19
20     public PresetAAIGetSubscribersGet(List<Subscriber> subscriberList) {
21         this.subscriberList = subscriberList;
22     }
23
24     public PresetAAIGetSubscribersGet() {
25         TypeReference<List<Subscriber>> typeRef
26                 = new TypeReference<List<Subscriber>>() {};
27
28         // like registration_to_simulator/create_new_instance/aai_get_full_subscribers.json
29         String subscribersString = "" +
30                 "[ " +
31                 "        { " +
32                 "          \"global-customer-id\":\"CAR_2020_ER\", " +
33                 "          \"subscriber-name\":\"CAR_2020_ER\", " +
34                 "          \"subscriber-type\":\"INFRA\", " +
35                 "          \"resource-version\":\"1494001902987\" " +
36                 "        }, " +
37                 "        { " +
38                 "          \"global-customer-id\":\"21014aa2-526b-11e6-beb8-9e71128cae77\", " +
39                 "          \"subscriber-name\":\"JULIO ERICKSON\", " +
40                 "          \"subscriber-type\":\"INFRA\", " +
41                 "          \"resource-version\":\"1494001776295\" " +
42                 "        }, " +
43                 "        { " +
44                 "          \"global-customer-id\":\"DHV1707-TestSubscriber-2\", " +
45                 "          \"subscriber-name\":\"DALE BRIDGES\", " +
46                 "          \"subscriber-type\":\"INFRA\", " +
47                 "          \"resource-version\":\"1498751754450\" " +
48                 "        }, " +
49                 "        { " +
50                 "          \"global-customer-id\":\"DHV1707-TestSubscriber-1\", " +
51                 "          \"subscriber-name\":\"LLOYD BRIDGES\", " +
52                 "          \"subscriber-type\":\"INFRA\", " +
53                 "          \"resource-version\":\"1498595633607\" " +
54                 "        }, " +
55                 "        { " +
56                 "          \"global-customer-id\":\"jimmy-example\", " +
57                 "          \"subscriber-name\":\"JimmyExampleCust-20161102\", " +
58                 "          \"subscriber-type\":\"INFRA\", " +
59                 "          \"resource-version\":\"1494001970063\" " +
60                 "        }, " +
61                 "        { " +
62                 "          \"global-customer-id\":\"jimmy-example2\", " +
63                 "          \"subscriber-name\":\"JimmyExampleCust-20161103\", " +
64                 "          \"subscriber-type\":\"INFRA\", " +
65                 "          \"resource-version\":\"1494001970225\" " +
66                 "        }, " +
67                 "        { " +
68                 "          \"global-customer-id\":\"ERICA5779-TestSub-PWT-102\", " +
69                 "          \"subscriber-name\":\"ERICA5779-TestSub-PWT-102\", " +
70                 "          \"subscriber-type\":\"INFRA\", " +
71                 "          \"resource-version\":\"1508852495058\" " +
72                 "        }, " +
73                 "        { " +
74                 "          \"global-customer-id\":\"ERICA5779-TestSub-PWT-101\", " +
75                 "          \"subscriber-name\":\"ERICA5779-TestSub-PWT-101\", " +
76                 "          \"subscriber-type\":\"INFRA\", " +
77                 "          \"resource-version\":\"1508179953733\" " +
78                 "        }, " +
79                 "        { " +
80                 "          \"global-customer-id\":\"a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb\", " +
81                 "          \"subscriber-name\":\"Emanuel\", " +
82                 "          \"subscriber-type\":\"INFRA\", " +
83                 "          \"resource-version\":\"1494001894192\" " +
84                 "        }, " +
85                 "        { " +
86                 "          \"global-customer-id\":\"ERICA5779-Subscriber-4\", " +
87                 "          \"subscriber-name\":\"ERICA5779-Subscriber-5\", " +
88                 "          \"subscriber-type\":\"INFRA\", " +
89                 "          \"resource-version\":\"1509134064531\" " +
90                 "        }, " +
91                 "        { " +
92                 "          \"global-customer-id\":\"ERICA5779-TestSub-PWT-103\", " +
93                 "          \"subscriber-name\":\"ERICA5779-TestSub-PWT-103\", " +
94                 "          \"subscriber-type\":\"INFRA\", " +
95                 "          \"resource-version\":\"1509045503736\" " +
96                 "        }, " +
97                 "        { " +
98                 "          \"global-customer-id\":\"ERICA5779-Subscriber-2\", " +
99                 "          \"subscriber-name\":\"ERICA5779-Subscriber-2\", " +
100                 "          \"subscriber-type\":\"INFRA\", " +
101                 "          \"resource-version\":\"1509122065439\" " +
102                 "        }, " +
103                 "        { " +
104                 "          \"global-customer-id\":\"e433710f-9217-458d-a79d-1c7aff376d89\", " +
105                 "          \"subscriber-name\":\"SILVIA ROBBINS\", " +
106                 "          \"subscriber-type\":\"INFRA\", " +
107                 "          \"resource-version\":\"1494001938080\" " +
108                 "        }, " +
109                 "        { " +
110                 "          \"global-customer-id\":\"ERICA5779-Subscriber-3\", " +
111                 "          \"subscriber-name\":\"ERICA5779-Subscriber-3\", " +
112                 "          \"subscriber-type\":\"INFRA\", " +
113                 "          \"resource-version\":\"1509122759407\" " +
114                 "        }, " +
115                 "        { " +
116                 "          \"global-customer-id\":\"31739f3e-526b-11e6-beb8-9e71128cae77\", " +
117                 "          \"subscriber-name\":\"CRAIG/ROBERTS\", " +
118                 "          \"subscriber-type\":\"INFRA\", " +
119                 "          \"resource-version\":\"1494001772223\" " +
120                 "        }, " +
121                 "        { " +
122                 "          \"global-customer-id\":\"global-customer-id\", " +
123                 "          \"subscriber-name\":\"global-customer-id\", " +
124                 "          \"subscriber-type\":\"INFRA\", " +
125                 "          \"resource-version\":\"1494001772226\", " +
126                 "          \"relationship-list\":{ " +
127                 "               \"relationship\":[ " +
128                 "                   { " +
129                 "                       \"related-to\":\"vpn-binding\", " +
130                 "                       \"relationship-label\":\"org.onap.relationships.inventory.Uses\", " +
131                 "                       \"related-link\":\"/aai/v14/network/vpn-bindings/vpn-binding/3e7834fb-a8e0-4243-a837-5352ccab4602\", " +
132                 "                       \"relationship-data\":[ " +
133                 "                           { " +
134                 "                               \"relationship-key\":\"vpn-binding.vpn-id\", " +
135                 "                               \"relationship-value\":\"3e7834fb-a8e0-4243-a837-5352ccab4602\" " +
136                 "                           } " +
137                 "                       ], " +
138                 "                       \"related-to-property\":[ " +
139                 "                           { " +
140                 "                               \"property-key\":\"vpn-binding.vpn-name\", " +
141                 "                               \"property-value\":\"LPPVPN\" " +
142                 "                           }, " +
143                 "                           { " +
144                 "                               \"property-key\":\"vpn-binding.vpn-type\", " +
145                 "                               \"property-value\":\"CUSTOMER\" " +
146                 "                           } " +
147                 "                       ] " +
148                 "                   } " +
149                 "               ] " +
150                 "           } " +
151                 "        }" +
152                 "      ] ";
153         try {
154             this.subscriberList = objectMapper.readValue(subscribersString, typeRef);
155         } catch (IOException e) {
156             throw new RuntimeException(e);
157         }
158     }
159
160     public List<Subscriber> getSubscriberList() {
161         return subscriberList;
162     }
163
164     public void setSubscriberList(List<Subscriber> subscriberList) {
165         this.subscriberList = subscriberList;
166     }
167
168     @Override
169     public Object getResponseBody() {
170         return ImmutableMap.of("customer", subscriberList);
171     }
172
173     @Override
174     public Map<String, List> getQueryParams() {
175         return ImmutableMap.of(
176                 "subscriber-type", Collections.singletonList("INFRA"),
177                 "depth",  Collections.singletonList("0"));
178     }
179
180     @Override
181     public HttpMethod getReqMethod() {
182         return HttpMethod.GET;
183     }
184
185     @Override
186     public String getReqPath() {
187         return getRootPath() + "/business/customers";
188     }
189
190 }