Groovy Snippets - gregstretton/Transfer GitHub Wiki

/ Loop until transitioned /

def jobState = context.expand( '${GetSmartSampleJobState#ResponseAsXml#//Results[1]/ResultSet[1]/Row[1]/JOB_STATE}' )

def delayCounter = context.expand( '${#TestCase#delayCounter}' ) delayCounter = delayCounter.toInteger() delayCounter++

testRunner.testCase.setPropertyValue("delayCounter", delayCounter.toString())

if ((jobState == "FAILED")){ testRunner.fail("Smart Sample Job failed") }

if ((jobState != "TRANSITIONED") && (delayCounter < 30) ){ sleep 10000 testRunner.gotoStepByName("GetSmartSampleJobState")

} else if ((jobState != "TRANSITIONED") && (delayCounter >= 30) ){ testRunner.fail("Smart Sample Generation timed out") }


/ Get docGuid to String /

import trsl.PropertyTransfer import trsl.RunTest def transfer = new PropertyTransfer(context)

def i = 1 def DocGuidString = "" def DocSetGuidString = ""

def requiredDocCount = context.expand( '${#TestCase#requiredDocCount}' ) def groovyUtils = new com.eviware.soapui.support.GroovyUtils( context ) def responseAsXml = context.expand( '${GetDocGUIDs#ResponseAsXml#//Results[1]}' ) def holder = groovyUtils.getXmlHolder(responseAsXml ) for( item in holder.getNodeValues( "//DOCUMENT_GUID" )){ DocGuidString = DocGuidString + '"' + "$item" + '",' i++ if (i>requiredDocCount.toInteger()) break

}

DocGuidString = DocGuidString.substring(0, DocGuidString.length()-1) testRunner.testCase.setPropertyValue("DocumentString" , DocGuidString)


/ Create Files Under Directory /

import org.apache.commons.io.FileUtils; import java.io.File; import java.io.IOException; def uploadDirectory = context.expand( '${GetNasPathForUploadJob#ResponseAsXml#//Results[1]/ResultSet[1]/Row[1]/NATIVE_PATH}' ) log.info "The UploadDirectory is: " + uploadDirectory

//if GetNasPath step returns no results, fail the test step with the below assertion assert uploadDirectory != ""

testRunner.testCase.setPropertyValue("UploadNasLocation", uploadDirectory) def inputDir = context.expand( '${DataSource_SourceDir#sourceDir}' )

log.info("The Input Directory is " + inputDir) File srcDir = new File(inputDir); File destDir = new File(uploadDirectory);

    try {
       
        FileUtils.copyDirectory(srcDir, destDir);
    } 
    
    catch (IOException e) 
    {
        e.printStackTrace();
    }

//Step is for making sure documents are ingested into DB. If not ingested would wait for 50 seconds def delayCounter = context.expand( '${#TestCase#delayCounter}' ) delayCounter = delayCounter.toInteger()

def ActualDocCount = context.expand( '${CheckDBForIngestedDocuments#ResponseAsXml#//COUNTDOCUMENT_GUID}' ).toInteger() def ExpectedDocCount = context.expand( '${#TestCase#NumberOfDocumentsUploaded}' ).toInteger() if((ActualDocCount < ExpectedDocCount) && (delayCounter < 10)) { delayCounter++ sleep (5000) testRunner.testCase.setPropertyValue("delayCounter", delayCounter.toString()) testRunner.gotoStepByName("DelayBeforeDBCheck") }

if(delayCounter == 6) { log.Error("The ingestion of documents took longer than 50 seconds. Upload ingestion Failed") assert(ActualDocCount == ExpectedDocCount) } testRunner.testCase.setPropertyValue("delayCounter", "0")