Divide the MSB source codes into two repos
[msb/apigateway.git] / apiroute / apiroute-service / src / test / java / org / onap / msb / apiroute / wrapper / consulextend / expose / ServiceModifyIndexFilterTest.java
1 package org.onap.msb.apiroute.wrapper.consulextend.expose;
2
3 import java.math.BigInteger;
4 import java.util.ArrayList;
5 import java.util.List;
6
7 import org.junit.Assert;
8 import org.junit.Test;
9 import org.onap.msb.apiroute.wrapper.consulextend.expose.ServiceModifyIndexFilter;
10 import org.onap.msb.apiroute.wrapper.consulextend.model.health.ImmutableService;
11 import org.onap.msb.apiroute.wrapper.consulextend.model.health.ImmutableServiceHealth;
12 import org.onap.msb.apiroute.wrapper.consulextend.model.health.Service;
13 import org.onap.msb.apiroute.wrapper.consulextend.model.health.ServiceHealth;
14
15 import com.orbitz.consul.model.ConsulResponse;
16 import com.orbitz.consul.model.health.ImmutableNode;
17
18 public class ServiceModifyIndexFilterTest {
19         
20         @Test
21         public void testfilter()
22         {
23                 ServiceModifyIndexFilter filter = new ServiceModifyIndexFilter();
24                 
25                 
26                 List<ServiceHealth> list0 = new ArrayList<ServiceHealth>();
27                 
28                 //id:huangleibo1,name:huangleibo,modifyIndex:1,createIndex:1
29                 Service service0 = ImmutableService.builder().id("huangleibo1").port(0).address("")
30                                 .service("huangleibo").addTags("").createIndex(1).modifyIndex(1).build();
31                 ServiceHealth serviceHealth0 = ImmutableServiceHealth.builder()
32                                 .service(service0)
33                                 .node(ImmutableNode.builder().node("").address("").build())
34                                 .build();       
35                 list0.add(serviceHealth0);
36                 
37                 ConsulResponse<List<ServiceHealth>> object0 = new ConsulResponse<List<ServiceHealth>>(list0,1,true,BigInteger.valueOf(1));
38
39                 //list-size:1,id:huangleibo1,name:huangleibo,modifyIndex:1;the first time:return true
40                 Assert.assertTrue(filter.filter(object0));
41                 
42                 //list-size:1,id:huangleibo1,name:huangleibo,modifyIndex:1;same index:return false
43                 Assert.assertFalse(filter.filter(object0));
44                 
45                 /////////////////////////////////////////////////////////////////////////////////
46                 
47                 List<ServiceHealth> list1 = new ArrayList<ServiceHealth>();
48                 
49                 //id:huangleibo2,name:huangleibo,modifyIndex:1,createIndex:1
50                 Service service1 = ImmutableService.builder().id("huangleibo2").port(0).address("")
51                                 .service("huangleibo").addTags("").createIndex(1).modifyIndex(1).build();
52                 ServiceHealth serviceHealth1 = ImmutableServiceHealth.builder()
53                                 .service(service1)
54                                 .node(ImmutableNode.builder().node("").address("").build())
55                                 .build();
56                 
57                 list1.add(serviceHealth0);
58                 list1.add(serviceHealth1);
59                 
60                 ConsulResponse<List<ServiceHealth>> object1 = new ConsulResponse<List<ServiceHealth>>(list1,1,true,BigInteger.valueOf(1));
61
62                 //list-size:2,
63                 //id:huangleibo1,name:huangleibo,modifyIndex:1,createIndex:1
64                 //id:huangleibo2,name:huangleibo,modifyIndex:1,createIndex:1
65                 //size different,return true
66                 Assert.assertTrue(filter.filter(object1));
67                 
68                 //////////////////////////////////////////////////////////////////////////
69                 List<ServiceHealth> list2 = new ArrayList<ServiceHealth>();
70                 
71                 //id:huangleibo3,name:huangleibo,modifyIndex:1,createIndex:1
72                 ImmutableService service2 = ImmutableService.builder().id("huangleibo3").port(0).address("")
73                                 .service("huangleibo").addTags("").createIndex(1).modifyIndex(1).build();
74                 ServiceHealth serviceHealth2 = ImmutableServiceHealth.builder()
75                                 .service(service2)
76                                 .node(ImmutableNode.builder().node("").address("").build())
77                                 .build();
78                 list2.add(serviceHealth0);
79                 list2.add(serviceHealth2);
80                 
81                 ConsulResponse<List<ServiceHealth>> object2 = new ConsulResponse<List<ServiceHealth>>(list2,1,true,BigInteger.valueOf(1));
82                 
83                 //list-size:2,
84                 //id:huangleibo1,name:huangleibo,modifyIndex:1,createIndex:1
85                 //id:huangleibo3,name:huangleibo,modifyIndex:1,createIndex:1
86                 //instance id different,return true
87                 Assert.assertTrue(filter.filter(object2));
88                 
89                 
90                 //////////////////////////////////////////////////////////////////////////
91                 List<ServiceHealth> list3 = new ArrayList<ServiceHealth>();
92                 
93                 //edit modifyindex 1 to 2
94                 Service service3 = service2.withModifyIndex(2);
95                 ServiceHealth serviceHealth3 = ImmutableServiceHealth.builder()
96                                 .service(service3)
97                                 .node(ImmutableNode.builder().node("").address("").build())
98                                 .build();
99                 list3.add(serviceHealth0);
100                 list3.add(serviceHealth3);
101                 
102                 ConsulResponse<List<ServiceHealth>> object3 = new ConsulResponse<List<ServiceHealth>>(list3,1,true,BigInteger.valueOf(1));
103                 
104                 //list-size:2,
105                 //id:huangleibo1,name:huangleibo,modifyIndex:1,createIndex:1
106                 //id:huangleibo3,name:huangleibo,modifyIndex:2,createIndex:1
107                 //modifyIndex different,return true
108                 Assert.assertTrue(filter.filter(object3));
109                 
110                 //the same content,return false
111                 Assert.assertFalse(filter.filter(object3));
112                 
113         }
114 }