[AAF-21] Updated Copyright Headers for AAF
[aaf/authz.git] / authz-core / src / test / java / com / att / cssa / rserv / test / JU_BetterMatch.java
1 /*******************************************************************************\r
2  * ============LICENSE_START====================================================\r
3  * * org.onap.aaf\r
4  * * ===========================================================================\r
5  * * Copyright © 2017 AT&T Intellectual Property. All rights reserved.\r
6  * * ===========================================================================\r
7  * * Licensed under the Apache License, Version 2.0 (the "License");\r
8  * * you may not use this file except in compliance with the License.\r
9  * * You may obtain a copy of the License at\r
10  * * \r
11  *  *      http://www.apache.org/licenses/LICENSE-2.0\r
12  * * \r
13  *  * Unless required by applicable law or agreed to in writing, software\r
14  * * distributed under the License is distributed on an "AS IS" BASIS,\r
15  * * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
16  * * See the License for the specific language governing permissions and\r
17  * * limitations under the License.\r
18  * * ============LICENSE_END====================================================\r
19  * *\r
20  * * ECOMP is a trademark and service mark of AT&T Intellectual Property.\r
21  * *\r
22  ******************************************************************************/\r
23 package com.att.cssa.rserv.test;\r
24 \r
25 import static junit.framework.Assert.assertEquals;\r
26 import static junit.framework.Assert.assertFalse;\r
27 import static junit.framework.Assert.assertTrue;\r
28 \r
29 import org.junit.Test;\r
30 \r
31 import com.att.cssa.rserv.Match;\r
32 import com.att.inno.env.Env;\r
33 import com.att.inno.env.TimeTaken;\r
34 import com.att.inno.env.Trans;\r
35 import com.att.inno.env.impl.EnvFactory;\r
36 \r
37 \r
38 public class JU_BetterMatch {\r
39 \r
40         @Test\r
41         public void test() {\r
42                 Trans trans = EnvFactory.newTrans();\r
43                 // Bad Match\r
44                 Match bm = new Match("/req/1.0.0/:var");\r
45 \r
46                 assertTrue(bm.match("/req/1.0.0/fred"));\r
47                 assertTrue(bm.match("/req/1.0.0/wilma"));\r
48                 assertTrue(bm.match("/req/1.0.0/wilma/"));\r
49                 assertFalse(bm.match("/req/1.0.0/wilma/bambam"));\r
50                 assertFalse(bm.match("/not/valid/234"));\r
51                 assertFalse(bm.match(""));\r
52                 \r
53                 TimeTaken tt = trans.start("A", Env.SUB);\r
54                 TimeTaken tt2;\r
55                 int i = 0;\r
56                 try {\r
57                         bm = new Match(null);\r
58                         tt2 = trans.start(Integer.toString(++i), Env.SUB);\r
59                         assertTrue(bm.match(""));\r
60                         tt2.done();\r
61                         tt2 = trans.start(Integer.toString(++i), Env.SUB);\r
62                         assertTrue(bm.match(null));\r
63                         tt2.done();\r
64                 } finally {\r
65                         tt.done();\r
66                 }\r
67                 \r
68         \r
69                 tt = trans.start("B", Env.SUB);\r
70                 i = 0;\r
71                 try {\r
72                         bm = new Match("/req/1.0.0/:urn/:ref");\r
73                         tt2 = trans.start(Integer.toString(++i), Env.SUB);\r
74                         assertTrue(bm.match("/req/1.0.0/urn:fsdb,1.0,req,newreq/0x12345"));\r
75                         tt2.done();\r
76                         tt2 = trans.start(Integer.toString(++i), Env.SUB);\r
77                         assertFalse(bm.match("/req/1.0.0/urn"));\r
78                         tt2.done();\r
79                         tt2 = trans.start(Integer.toString(++i), Env.SUB);\r
80                         assertTrue(bm.match("/req/1.0.0/urn:fsdb,1.0,req,newreq/0x12345/"));\r
81                         tt2.done();\r
82                         tt2 = trans.start(Integer.toString(++i), Env.SUB);\r
83                         assertFalse(bm.match("/req/1.0.0/urn:fsdb,1.0,req,newreq/0x12345/x"));\r
84                         tt2.done();\r
85                         tt2 = trans.start(Integer.toString(++i), Env.SUB);\r
86                         assertFalse(bm.match("/req/1.0.0/urn:fsdb,1.0,req,newreq/0x12345/xyx"));\r
87                 } finally {\r
88                         tt2.done();\r
89                         tt.done();      \r
90                 }\r
91                 \r
92                 tt = trans.start("C", Env.SUB);\r
93                 i = 0;\r
94                 try {\r
95                         String url = "/req/1.0.0/";\r
96                         bm = new Match(url+":urn*");\r
97                         tt2 = trans.start(Integer.toString(++i), Env.SUB);\r
98                         String value = "urn:fsdb,1.0,req,newreq/0x12345";\r
99                         \r
100                         assertTrue(bm.match(url+value));\r
101                         assertEquals("urn:fsdb,1.0,req,newreq/0x12345",bm.param(url+value, ":urn"));\r
102                 } finally {\r
103                         tt2.done();\r
104                         tt.done();      \r
105                 }\r
106 \r
107                 tt = trans.start("D", Env.SUB);\r
108                 i = 0;\r
109                 try {\r
110                         bm = new Match("/req/1.0.0/:urn/:ref*");\r
111                         tt2 = trans.start(Integer.toString(++i), Env.SUB);\r
112                         assertTrue(bm.match("/req/1.0.0/urn:fsdb,1.0,req,newreq/0x12345"));\r
113                         tt2.done();\r
114                         tt2 = trans.start(Integer.toString(++i), Env.SUB);\r
115                         assertFalse(bm.match("/req/1.0.0/urn:fsdb,1.0,req,newreq/"));\r
116                 } finally {\r
117                         tt2.done();\r
118                         tt.done();      \r
119                 }\r
120 \r
121                 tt = trans.start("E", Env.SUB);\r
122                 i = 0;\r
123                 try {\r
124                         bm = new Match("this*");\r
125                         tt2 = trans.start(Integer.toString(++i), Env.SUB);\r
126                         assertTrue(bm.match("this"));\r
127                         tt2.done();\r
128                         tt2 = trans.start(Integer.toString(++i), Env.SUB);\r
129                         assertTrue(bm.match("thisandthat"));\r
130                         tt2.done();\r
131                         tt2 = trans.start(Integer.toString(++i), Env.SUB);\r
132                         assertTrue(bm.match("this/1.0.0/urn:fsdb,1.0,req,newreq/0x12345/"));\r
133                 } finally {\r
134                         tt2.done();\r
135                         tt.done();      \r
136                 }\r
137 \r
138                 tt = trans.start("F", Env.SUB);\r
139                 i = 0;\r
140                 try {\r
141                         bm = new Match("*");\r
142                         tt2 = trans.start(Integer.toString(++i), Env.SUB);\r
143                         assertTrue(bm.match("<pass>/this"));\r
144                 } finally {\r
145                         tt2.done();\r
146                         tt.done();      \r
147                 }\r
148                 \r
149                 StringBuilder sb = new StringBuilder();\r
150                 trans.auditTrail(0, sb);\r
151                 System.out.println(sb);\r
152                 \r
153         }\r
154         \r
155         @Test\r
156         public void specialTest() {\r
157                 Match match = new Match("/sample");\r
158                 assertTrue(match.match("/sample"));\r
159                 \r
160                 match = new Match("/lpeer//lpeer/:key/:item*");\r
161                 assertTrue(match.match("/lpeer//lpeer/x/y"));\r
162                 assertFalse(match.match("/lpeer/x/lpeer/x/y"));\r
163 \r
164         }\r
165 \r
166 }\r