here are a few helpers for finding a document by UUID in mongo a database
this first keyword converts a UUID a Binary with a subtype 0x04(required for java/groovy).
@Keyword
def createReadableUUID(String strUUID){
UUID strConUUID = UUID.fromString(strUUID)
long msb = strConUUID.getMostSignificantBits()
long lsb = strConUUID.getLeastSignificantBits()
byte uuidBytes = new byte[16];
for (int i = 15; i >= 8; i–) {
uuidBytes[i] = (byte) (lsb & 0xFFL)
lsb >>= 8;
}
for (int i = 7; i >= 0; i–) {
uuidBytes[i] = (byte) (msb & 0xFFL)
msb >>= 8;
}
return new Binary((byte) 0x04, uuidBytes)
}
this second keyword finds the document based on the above returned UUID
@Keyword
def findMongoDocumentUsingUUID(String strCollection,String strLabel, Binary binUUID)
{
MongoCollection collection= db.getCollection(strCollection)
BasicDBObject dbObj = new BasicDBObject(strLabel,binUUID)
FindIterable doc =collection.find(dbObj)
println(doc)
}
To find a document from a mongo collection called ‘testcollection’, with an ‘_id’ of UUID(“a6359605-000a-000a-000a-66f8b86b96af”), invoke the the above keywords like this,
CustomKeywords.‘gloMethods.dataBaseMethods.findMongoDocumentUsingUUID’(“testcollection”, “_id”,CustomKeywords.‘gloMethods.dataBaseMethods.createReadableUUID’(“a6359605-000a-000a-000a-66f8b86b96af”) )
hope this helps…this was a bit of a head scratcher for me!!!