79522883470ae8f3bd7c7194ca2acd1ee79c84ea
[ccsdk/features.git] / sdnr / wt / apigateway / provider / src / test / java / org / onap / ccsdk / features / sdnr / wt / apigateway / test / TestDatabaseHttpClient.java
1 package org.onap.ccsdk.features.sdnr.wt.apigateway.test;
2
3 import static org.junit.Assert.*;
4 import static org.mockito.Mockito.mock;
5 import static org.junit.Assert.assertTrue;
6 import static org.mockito.Mockito.when;
7
8 import java.util.HashMap;
9 import java.util.Map;
10
11 import org.junit.Test;
12 import org.onap.ccsdk.features.sdnr.wt.apigateway.database.DatabaseEntryProvider;
13 import org.onap.ccsdk.features.sdnr.wt.apigateway.database.DatabaseHttpClient;
14 import org.onap.ccsdk.features.sdnr.wt.apigateway.database.MediatorServerInfo;
15 import org.onap.ccsdk.features.sdnr.wt.apigateway.database.http.BaseHTTPResponse;
16
17 public class TestDatabaseHttpClient {
18
19         private static final String ID_1="AWwscPepjf5-TrAFEdUD";
20         private static final String HOSTNAME_1="http://192.168.178.89:7070";
21         private static final String NAME_1="internal mediatorserver";
22         private static final String ID_2="AWwscSCWjf5-TrAFEdUE";
23         private static final String HOSTNAME_2="http://192.168.178.89:7071";
24         private static final String NAME_2="internal mediatorserver2";
25         private static final String ID_3="AWwscSCWjf5-TrAFEdsE";
26         private static final String HOSTNAME_3="http://192.168.178.88:7371";
27         private static final String NAME_3="test mediatorserver2";
28         
29         private static final String RESPONSE_VALID="{\n" + 
30                         "\"took\": 3,\n" + 
31                         "\"timed_out\": false,\n" + 
32                         "\"_shards\": {\n" + 
33                         "\"total\": 5,\n" + 
34                         "\"successful\": 5,\n" + 
35                         "\"failed\": 0\n" + 
36                         "},\n" + 
37                         "\"hits\": {\n" + 
38                         "\"total\": 2,\n" + 
39                         "\"max_score\": 1,\n" + 
40                         "\"hits\": [\n" + 
41                         "{\n" + 
42                         "\"_index\": \"mwtn_v1\",\n" + 
43                         "\"_type\": \"mediator-server\",\n" + 
44                         "\"_id\": \"AWwscPepjf5-TrAFEdUD\",\n" + 
45                         "\"_score\": 1,\n" + 
46                         "\"_source\": {\n" + 
47                         "\"name\": \"internal mediatorserver\",\n" + 
48                         "\"url\": \"http://192.168.178.89:7070\"\n" + 
49                         "}\n" + 
50                         "}\n" + 
51                         ",\n" + 
52                         "{\n" + 
53                         "\"_index\": \"mwtn_v1\",\n" + 
54                         "\"_type\": \"mediator-server\",\n" + 
55                         "\"_id\": \"AWwscSCWjf5-TrAFEdUE\",\n" + 
56                         "\"_score\": 1,\n" + 
57                         "\"_source\": {\n" + 
58                         "\"name\": \"internal mediatorserver2\",\n" + 
59                         "\"url\": \"http://192.168.178.89:7071\"\n" + 
60                         "}\n" + 
61                         "}\n" + 
62                         "]\n" + 
63                         "}\n" + 
64                         "}";
65         
66         private class PublicDatabaseHttpClient extends DatabaseHttpClient{
67
68                 public PublicDatabaseHttpClient(String base, boolean trustAllCerts) {
69                         super(base, trustAllCerts);
70                 }
71                 @Override
72                 public BaseHTTPResponse sendRequest(String uri, String method, String body, Map<String, String> headers) {
73                         return new BaseHTTPResponse(200, RESPONSE_VALID);
74                 }
75         }
76         public class PublicDatabaseEntryProvider extends DatabaseEntryProvider {
77
78                 protected PublicDatabaseEntryProvider() {
79                         super(new PublicDatabaseHttpClient("http://localhost/",false), 60);
80                 }
81
82         }
83         @Test
84         public void test() {
85                 
86                 final PublicDatabaseHttpClient client = new PublicDatabaseHttpClient("http://localhost/",false);
87                 Map<String, MediatorServerInfo> entries = client.requestEntries();
88                 assertEquals("result size is not correct",2,entries.size());
89                 assertEquals("hostname 1 is not correct",HOSTNAME_1,entries.get(ID_1).getHost());
90                 assertEquals("name 1 is not correct",NAME_1,entries.get(ID_1).getName());
91                 assertEquals("hostname 2 is not correct",HOSTNAME_2,entries.get(ID_2).getHost());
92                 assertEquals("name 2 is not correct",NAME_2,entries.get(ID_2).getName());
93         }
94         @Test
95         public void test2() {
96                 final PublicDatabaseEntryProvider provider  = new PublicDatabaseEntryProvider();
97                 boolean reloaded = provider.triggerReloadSync();
98                 assertTrue("data were not reloaded",reloaded);
99                 try {
100                         Thread.sleep(1500);
101                 } catch (InterruptedException e) {
102                         Thread.interrupted();
103                 }                       
104         
105                 System.out.println(provider.printEntries());
106                 assertEquals("provider has not loaded data",HOSTNAME_1,provider.getHostUrl(ID_1));
107                 assertEquals("provider has not loaded data",HOSTNAME_2,provider.getHostUrl(ID_2));
108                 Map<String, MediatorServerInfo> entries2 = new HashMap<String,MediatorServerInfo>();
109                 entries2.put(ID_3, new MediatorServerInfo(NAME_3, HOSTNAME_3));
110                 provider.setEntries(entries2);  
111                 assertEquals("provider has not loaded data",HOSTNAME_3,provider.getHostUrl(ID_3));
112                 try {
113                         provider.close();
114                 } catch (Exception e) {
115                         
116                 }
117                 
118                 
119         }
120 }