4545import com .marklogic .client .query .ValuesDefinition ;
4646
4747public class TransformTest {
48+ final static public String JS_NAME = "testsjs" ;
49+ final static public String JS_FILE = "testsjs.sjs" ;
4850 final static public String MLCP_TRANSFORM_ADAPTER = "MlcpTransformAdapter.xqy" ;
4951 final static public String TEST_NS =
5052 "http://marklogic.com/rest-api/test/transform" ;
5153
52- static private String xqueryTransform ;
53- static private String xslTransform ;
5454 static private String optionsName ;
5555 static private ServerConfigurationManager confMgr ;
5656 static private TransformExtensionsManager extensionMgr ;
57+ static private ExtensionLibrariesManager libMgr ;
5758
5859
5960 @ BeforeClass
@@ -64,31 +65,57 @@ public static void beforeClass()
6465 confMgr = Common .client .newServerConfigManager ();
6566
6667 extensionMgr = confMgr .newTransformExtensionsManager ();
67- xqueryTransform = Common .testFileToString (TransformExtensionsTest .XQUERY_FILE );
68- xslTransform = Common .testFileToString (TransformExtensionsTest .XSLT_FILE );
6968 optionsName = ValuesHandleTest .makeValuesOptions ();
70- extensionMgr .writeXQueryTransform (
71- TransformExtensionsTest .XQUERY_NAME ,
72- new StringHandle ().withFormat (Format .TEXT ).with (xqueryTransform ),
73- TransformExtensionsTest .makeXQueryMetadata ()
69+ libMgr = confMgr .newExtensionLibrariesManager ();
70+
71+ libMgr .write ("/ext/RestTransformAdapter.xqy" ,
72+ new StringHandle (Common .testFileToString ("RestTransformAdapter.xqy" )).withFormat (Format .TEXT ));
73+
74+ libMgr .write ("/ext/memory-operations.xqy" ,
75+ new StringHandle (Common .testFileToString ("memory-operations.xqy" )).withFormat (Format .TEXT ));
76+
77+ libMgr .write ("/ext/node-operations.xqy" ,
78+ new StringHandle (Common .testFileToString ("node-operations.xqy" )).withFormat (Format .TEXT ));
79+
80+ extensionMgr .writeXQueryTransformAs (
81+ TransformExtensionsTest .XQUERY_NAME ,
82+ TransformExtensionsTest .makeXQueryMetadata (),
83+ Common .testFileToString (TransformExtensionsTest .XQUERY_FILE )
84+ );
85+
86+ extensionMgr .writeJavascriptTransformAs (
87+ JS_NAME ,
88+ TransformExtensionsTest .makeXQueryMetadata (),
89+ Common .testFileToString (JS_FILE )
7490 );
7591
7692 extensionMgr .writeXQueryTransformAs (
7793 MLCP_TRANSFORM_ADAPTER ,
7894 TransformExtensionsTest .makeXQueryMetadata (),
7995 Common .testFileToString (MLCP_TRANSFORM_ADAPTER )
8096 );
97+
98+ extensionMgr .writeXSLTransform (
99+ TransformExtensionsTest .XSLT_NAME ,
100+ new StringHandle (Common .testFileToString (TransformExtensionsTest .XSLT_FILE )),
101+ TransformExtensionsTest .makeXSLTMetadata ()
102+ );
81103 }
82104
83105 @ AfterClass
84106 public static void afterClass ()
85107 throws ResourceNotFoundException , ForbiddenUserException , FailedRequestException {
86108 confMgr .newQueryOptionsManager ().deleteOptions (optionsName );
109+
87110 extensionMgr .deleteTransform (MLCP_TRANSFORM_ADAPTER );
88111 extensionMgr .deleteTransform (TransformExtensionsTest .XQUERY_NAME );
112+ extensionMgr .deleteTransform (TransformExtensionsTest .XSLT_NAME );
113+
114+ libMgr .delete ("/ext/RestTransformAdapter.xqy" );
115+ libMgr .delete ("/ext/memory-operations.xqy" );
116+ libMgr .delete ("/ext/node-operations.xqy" );
117+
89118 Common .release ();
90- xqueryTransform = null ;
91- xslTransform = null ;
92119 }
93120
94121 @ Test
@@ -97,51 +124,64 @@ public void testXQueryTransform()
97124 runTransform (new ServerTransform (TransformExtensionsTest .XQUERY_NAME ));
98125 }
99126
127+ @ Test
128+ public void testJavascriptTransform () throws Exception {
129+ runTransform (new ServerTransform (JS_NAME ));
130+ }
131+
100132 @ Test
101133 public void testXSLTransform ()
102134 throws ResourceNotFoundException , ForbiddenUserException , FailedRequestException , ResourceNotResendableException {
103- extensionMgr .writeXSLTransform (
104- TransformExtensionsTest .XSLT_NAME ,
105- new StringHandle ().with (xslTransform ),
106- TransformExtensionsTest .makeXSLTMetadata ()
107- );
108-
109135 runTransform (new ServerTransform (TransformExtensionsTest .XSLT_NAME ));
110-
111- extensionMgr .deleteTransform (TransformExtensionsTest .XSLT_NAME );
112136 }
113137
114138 @ Test
115139 public void testXQueryMlcpTransformAdapter () throws Exception {
116- ExtensionLibrariesManager libMgr = confMgr .newExtensionLibrariesManager ();
117- String transformContents = Common .testFileToString ("MlcpTransform.xqy" );
118- libMgr .write ("/ext/MlcpTransform.xqy" ,
140+ String transformContents = Common .testFileToString ("SampleMlcpTransform.xqy" );
141+ libMgr .write ("/ext/SampleMlcpTransform.xqy" ,
119142 new StringHandle (transformContents ).withFormat (Format .TEXT ));
120143
121144 ServerTransform transform = new ServerTransform (MLCP_TRANSFORM_ADAPTER );
122- transform .add ("ml.module" , "/ext/MlcpTransform .xqy" );
145+ transform .add ("ml.module" , "/ext/SampleMlcpTransform .xqy" );
123146 transform .add ("ml.namespace" , "http://marklogic.com/example" );
124147 transform .add ("attr-value" , "true" );
125148 runTransform (transform );
126149
127- libMgr .delete ("/ext/MlcpTransform .xqy" );
150+ // libMgr.delete("/ext/SampleMlcpTransform .xqy");
128151 }
129152
130153 @ Test
131154 public void testXQueryRestTransformAdapter () throws Exception {
132- ExtensionLibrariesManager libMgr = confMgr .newExtensionLibrariesManager ();
133- String transformContents = Common .testFileToString ("RestTransformAdapter.xqy" );
134- libMgr .write ("/ext/RestTransformAdapter.xqy" ,
135- new StringHandle (transformContents ).withFormat (Format .TEXT ));
136-
137155 ServerTransform transform = new ServerTransform (MLCP_TRANSFORM_ADAPTER );
138156 transform .add ("ml.module" , "/ext/RestTransformAdapter.xqy" );
139157 transform .add ("ml.namespace" , "http://marklogic.com/mlcp/transform/RestTransformAdapter.xqy" );
140158 transform .add ("ml.transform" , TransformExtensionsTest .XQUERY_NAME );
141159 transform .add ("value" , "true" );
142160 runTransform (transform );
161+ }
143162
144- libMgr .delete ("/ext/RestTransformAdapter.xqy" );
163+ @ Test
164+ public void testJavascriptMlcpTransformAdapter () throws Exception {
165+ String transformContents = Common .testFileToString ("SampleMlcpTransform.sjs" );
166+ libMgr .write ("/ext/SampleMlcpTransform.sjs" ,
167+ new StringHandle (transformContents ).withFormat (Format .TEXT ));
168+
169+ ServerTransform transform = new ServerTransform (MLCP_TRANSFORM_ADAPTER );
170+ transform .add ("ml.module" , "/ext/SampleMlcpTransform.sjs" );
171+ transform .add ("attr-value" , "true" );
172+ runTransform (transform );
173+
174+ //libMgr.delete("/ext/SampleMlcpTransform.sjs");
175+ }
176+
177+ @ Test
178+ public void testJavascriptRestTransformAdapter () throws Exception {
179+ ServerTransform transform = new ServerTransform (MLCP_TRANSFORM_ADAPTER );
180+ transform .add ("ml.module" , "/ext/RestTransformAdapter.xqy" );
181+ transform .add ("ml.namespace" , "http://marklogic.com/mlcp/transform/RestTransformAdapter.xqy" );
182+ transform .add ("ml.transform" , JS_NAME );
183+ transform .add ("value" , "true" );
184+ runTransform (transform );
145185 }
146186
147187 private void runTransform (ServerTransform transform )
@@ -156,15 +196,15 @@ private void runTransform(ServerTransform transform)
156196 String value = result .getDocumentElement ().getAttributeNS (TEST_NS , "transformed" );
157197 assertEquals ("Document read transform failed" ,"true" ,value );
158198
159- docMgr .delete (docId );
199+ // docMgr.delete(docId);
160200
161201 docId = "/test/testTransformable2.xml" ;
162202 docMgr .write (docId , new StringHandle ().with ("<document/>" ), transform );
163203 result = docMgr .read (docId , new DOMHandle ()).get ();
164204 value = result .getDocumentElement ().getAttributeNS (TEST_NS , "transformed" );
165205 assertEquals ("Document write transform failed" ,value ,"true" );
166206
167- docMgr .delete (docId );
207+ // docMgr.delete(docId);
168208
169209 QueryManager queryMgr = Common .client .newQueryManager ();
170210
@@ -174,15 +214,15 @@ private void runTransform(ServerTransform transform)
174214
175215 result = queryMgr .search (stringQuery , new DOMHandle ()).get ();
176216 value = result .getDocumentElement ().getAttributeNS (TEST_NS , "transformed" );
177- assertEquals ("String query read transform failed" ,value , "true" );
217+ assertEquals ("String query read transform failed" ,"true" , value );
178218
179219 KeyValueQueryDefinition keyValueQuery = queryMgr .newKeyValueDefinition ();
180220 keyValueQuery .put (queryMgr .newElementLocator (new QName ("leaf" )), "leaf3" );
181221 keyValueQuery .setResponseTransform (transform );
182222
183223 result = queryMgr .search (keyValueQuery , new DOMHandle ()).get ();
184224 value = result .getDocumentElement ().getAttributeNS (TEST_NS , "transformed" );
185- assertEquals ("Key-value query read transform failed" ,value , "true" );
225+ assertEquals ("Key-value query read transform failed" ,"true" , value );
186226
187227 ValuesDefinition vdef =
188228 queryMgr .newValuesDefinition ("double" , optionsName );
0 commit comments