[AAF-23] Initial code import
[aaf/inno.git] / rosetta / src / test / java / com / data / test / JU_RosettaDF.java
1 /*******************************************************************************\r
2  * ============LICENSE_START====================================================\r
3  * * org.onap.aai\r
4  * * ===========================================================================\r
5  * * Copyright © 2017 AT&T Intellectual Property. All rights reserved.\r
6  * * Copyright © 2017 Amdocs\r
7  * * ===========================================================================\r
8  * * Licensed under the Apache License, Version 2.0 (the "License");\r
9  * * you may not use this file except in compliance with the License.\r
10  * * You may obtain a copy of the License at\r
11  * * \r
12  *  *      http://www.apache.org/licenses/LICENSE-2.0\r
13  * * \r
14  *  * Unless required by applicable law or agreed to in writing, software\r
15  * * distributed under the License is distributed on an "AS IS" BASIS,\r
16  * * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
17  * * See the License for the specific language governing permissions and\r
18  * * limitations under the License.\r
19  * * ============LICENSE_END====================================================\r
20  * *\r
21  * * ECOMP is a trademark and service mark of AT&T Intellectual Property.\r
22  * *\r
23  ******************************************************************************/\r
24 package com.data.test;\r
25 \r
26 import java.io.StringReader;\r
27 \r
28 import org.junit.Assert;\r
29 import org.junit.Test;\r
30 \r
31 import com.att.inno.env.Data;\r
32 import com.att.inno.env.Data.TYPE;\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 import com.att.inno.env.jaxb.JAXBmar;\r
37 import com.att.inno.env.util.StringBuilderWriter;\r
38 import com.att.rosetta.env.RosettaDF;\r
39 import com.att.rosetta.env.RosettaData;\r
40 import com.att.rosetta.env.RosettaEnv;\r
41 \r
42 import s.xsd.LargerData;\r
43 import s.xsd.Multi;\r
44 import s.xsd.SampleData;\r
45 \r
46 public class JU_RosettaDF {\r
47         public static int ITERATIONS = 1;\r
48 \r
49         @Test\r
50         public void testCached() throws Exception {\r
51                 RosettaEnv env = new RosettaEnv();\r
52                 RosettaDF<LargerData> df = env.newDataFactory(LargerData.class);\r
53                 JAXBmar jmar = new JAXBmar(LargerData.class);\r
54 \r
55                 StringBuilderWriter sbw = new StringBuilderWriter(1024);\r
56                 Trans trans = EnvFactory.newTrans();\r
57 \r
58                 Report report = new Report(ITERATIONS,"Load JSON","Extract JAXB", "JAXB Marshal", "Cached to XML", "Cached to JSON");\r
59                 do {\r
60                         sbw.reset();\r
61                         trans = EnvFactory.newTrans();\r
62                         Data<LargerData> data;\r
63                         TimeTaken tt = trans.start("Load JSON", 1);\r
64                         try {\r
65                                 data = df.newData(trans).out(Data.TYPE.JSON).in(Data.TYPE.JSON).load(JU_FromJSON.str);\r
66                         } finally {\r
67                                 tt.done();\r
68                         }\r
69                         LargerData ld;\r
70                         tt = trans.start("Extract JAXB", 2);\r
71                         try {\r
72                                 ld = data.asObject();\r
73                         } finally {\r
74                                 tt.done();\r
75                         }\r
76 \r
77                         tt = trans.start("JAXB marshal", 3);\r
78                         try {\r
79                                 jmar.marshal(trans.debug(), ld, sbw);\r
80                         } finally {\r
81                                 tt.done();\r
82                         }\r
83                         sbw.append('\n');\r
84                         \r
85                         tt = trans.start("To XML from Cache",4);\r
86                         try {\r
87                                 data.out(Data.TYPE.XML).to(sbw);\r
88                         } finally {\r
89                                 tt.done();\r
90                         }\r
91                         \r
92                         sbw.append('\n');\r
93                         \r
94                         tt = trans.start("To JSON from Cache",5);\r
95                         try {\r
96                                 data.out(Data.TYPE.JSON).to(sbw);\r
97                         } finally {\r
98                                 tt.done();\r
99                         }\r
100                         report.glean(trans, 1,2,3,4,5);\r
101                 } while(report.go());\r
102                 \r
103                 report.report(sbw);\r
104                 System.out.println(sbw);\r
105                 \r
106         }\r
107 \r
108         @Test\r
109         public void testDirect() throws Exception {\r
110                 RosettaEnv env = new RosettaEnv();\r
111                 RosettaDF<LargerData> df = env.newDataFactory(LargerData.class);\r
112 \r
113                 StringBuilderWriter sbw = new StringBuilderWriter(1024);\r
114                 Trans trans = EnvFactory.newTrans();\r
115 \r
116                 Report report = new Report(ITERATIONS);\r
117                 do {\r
118                         sbw.reset();\r
119                         trans = EnvFactory.newTrans();\r
120                         RosettaData<?> data = df.newData(trans).in(Data.TYPE.JSON).out(Data.TYPE.XML);\r
121                         data.direct(new StringReader(JU_FromJSON.str), sbw);\r
122                         report.glean(trans);\r
123                 } while(report.go());\r
124                 \r
125                 report.report(sbw);\r
126                 System.out.println(sbw);\r
127                 \r
128         }\r
129         \r
130         @Test\r
131         public void testMulti() throws Exception {\r
132                 RosettaEnv env = new RosettaEnv();\r
133                 RosettaDF<Multi> df = env.newDataFactory(Multi.class);\r
134 \r
135 //              StringBuilderWriter sbw = new StringBuilderWriter(1024);\r
136 //              Trans trans = EnvFactory.newTrans();\r
137 \r
138                 Multi m = new Multi();\r
139                 m.getF1().add("String1");\r
140                 m.getF2().add("String2");\r
141                 \r
142                 System.out.println(df.newData().load(m).out(TYPE.RAW).asString());\r
143                 System.out.println(df.newData().load(m).out(TYPE.JSON).asString());\r
144                 \r
145         }\r
146 \r
147         @Test\r
148         public void testQuotes() throws Exception {\r
149                 RosettaEnv env = new RosettaEnv();\r
150                 RosettaDF<SampleData> df = env.newDataFactory(SampleData.class);\r
151 \r
152                 SampleData sd = new SampleData();\r
153                 sd.setId("\"AT&T Services, Inc.\"");\r
154                 System.out.println(sd.getId());\r
155                 String out =df.newData().load(sd).out(TYPE.JSON).asString();\r
156                 System.out.println(out);\r
157                 Assert.assertEquals(\r
158                                 "{\"id\":\"\\\"AT&T Services, Inc.\\\"\",\"date\":0}",\r
159                                 out);\r
160                 \r
161                 SampleData sd2 = df.newData().in(TYPE.JSON).load(out).asObject();\r
162                 System.out.println(sd2.getId());\r
163                 Assert.assertEquals(sd.getId(),sd2.getId());\r
164         }\r
165 }\r