Skip to content

Commit d47ba90

Browse files
Ajit GeorgeAjit George
authored andcommitted
Git 396 - Added a test method to verify that write method passes along
serverTransform.
1 parent df86098 commit d47ba90

File tree

1 file changed

+86
-0
lines changed

1 file changed

+86
-0
lines changed

test-complete/src/test/java/com/marklogic/client/functionaltest/TestBulkWriteWithTransformations.java

Lines changed: 86 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@
3737
import com.marklogic.client.DatabaseClient;
3838
import com.marklogic.client.DatabaseClientFactory;
3939
import com.marklogic.client.DatabaseClientFactory.Authentication;
40+
import com.marklogic.client.Transaction;
4041
import com.marklogic.client.admin.ExtensionMetadata;
4142
import com.marklogic.client.admin.TransformExtensionsManager;
4243
import com.marklogic.client.document.DocumentPage;
@@ -185,6 +186,91 @@ public void testBulkLoadWithXQueryTransform() throws Exception {
185186
assertEquals("document count", 102,count);
186187

187188
}
189+
190+
/* This test is similar to testBulkLoadWithXQueryTransform and is used to validate Git Issue 396.
191+
*
192+
* Verify that a ServerTransform object is passed along when in transactions.
193+
*/
194+
195+
@Test
196+
public void testBulkXQYTransformWithTrans() throws Exception {
197+
198+
TransformExtensionsManager transMgr =
199+
client.newServerConfigManager().newTransformExtensionsManager();
200+
Transaction tRollback = client.openTransaction();
201+
ExtensionMetadata metadata = new ExtensionMetadata();
202+
metadata.setTitle("Adding attribute xquery Transform");
203+
metadata.setDescription("This plugin transforms an XML document by adding attribute to root node");
204+
metadata.setProvider("MarkLogic");
205+
metadata.setVersion("0.1");
206+
// get the transform file
207+
File transformFile = new File("src/test/java/com/marklogic/client/functionaltest/transforms/add-attr-xquery-transform.xqy");
208+
FileHandle transformHandle = new FileHandle(transformFile);
209+
transMgr.writeXQueryTransform("add-attr-xquery-transform", transformHandle, metadata);
210+
ServerTransform transform = new ServerTransform("add-attr-xquery-transform");
211+
transform.put("name", "Lang");
212+
transform.put("value", "English");
213+
int count=1;
214+
XMLDocumentManager docMgr = client.newXMLDocumentManager();
215+
HashMap<String,String> map= new HashMap<String,String>();
216+
DocumentWriteSet writesetRollback = docMgr.newWriteSet();
217+
// Verify rollback with a smaller number of documents.
218+
for(int i = 0;i<12;i++){
219+
220+
writesetRollback.add(DIRECTORY+"fooWithTrans"+i+".xml", new DOMHandle(getDocumentContent("This is so foo"+i)));
221+
map.put(DIRECTORY+"fooWithTrans"+i+".xml", convertXMLDocumentToString(getDocumentContent("This is so foo"+i)));
222+
if(count%10 == 0){
223+
docMgr.write(writesetRollback, transform, tRollback);
224+
writesetRollback = docMgr.newWriteSet();
225+
}
226+
count++;
227+
}
228+
if(count%10 > 0){
229+
docMgr.write(writesetRollback, transform, tRollback);
230+
}
231+
String uris[] = new String[102];
232+
for(int i =0;i<102;i++){
233+
uris[i]=DIRECTORY+"fooWithTrans"+i+".xml";
234+
}
235+
236+
try {
237+
// Verify rollback on DocumentManager write method with transform.
238+
tRollback.rollback();
239+
DocumentPage pageRollback = docMgr.read(uris);
240+
assertEquals("Document count is not zero. Transaction did not rollback", 0, pageRollback.size());
241+
242+
// Perform write with a commit.
243+
Transaction tCommit = client.openTransaction();
244+
DocumentWriteSet writeset = docMgr.newWriteSet();
245+
for(int i =0;i<102;i++){
246+
247+
writeset.add(DIRECTORY+"fooWithTrans"+i+".xml", new DOMHandle(getDocumentContent("This is so foo"+i)));
248+
map.put(DIRECTORY+"fooWithTrans"+i+".xml", convertXMLDocumentToString(getDocumentContent("This is so foo"+i)));
249+
if(count%BATCH_SIZE == 0){
250+
docMgr.write(writeset, transform, tCommit);
251+
writeset = docMgr.newWriteSet();
252+
}
253+
count++;
254+
}
255+
if(count%BATCH_SIZE > 0){
256+
docMgr.write(writeset, transform, tCommit);
257+
}
258+
tCommit.commit();
259+
count=0;
260+
DocumentPage page = docMgr.read(uris);
261+
DOMHandle dh = new DOMHandle();
262+
while(page.hasNext()){
263+
DocumentRecord rec = page.next();
264+
rec.getContent(dh);
265+
assertTrue("Element has attribure ? :",dh.get().getElementsByTagName("foo").item(0).hasAttributes());
266+
count++;
267+
}
268+
}catch(Exception e) {
269+
System.out.println(e.getMessage());throw e;
270+
}
271+
assertEquals("document count", 102,count);
272+
}
273+
188274
@Test
189275
public void testBulkReadWithXQueryTransform() throws Exception {
190276

0 commit comments

Comments
 (0)