java - how to mock ElasticSearch Client for unit testing in scala -
i want mock elasticsearch client test code without running es service trying
import java.nio.file.files class campaignestest val file= files.createtempdirectory("tempesdata") def getclient():mocktransportclient={ val settings = settings.builder() .put("http.enabled", "false") .put("path.data", file.tostring()).build(); val client = new mocktransportclient(settings); client } class campaigntestsearch extends playspec{ val campaignestest= new campaignestest val client=campaignestest.getclient val response = client.preparesearch("dbtest") .settypes(campaign_collection_name) .setsearchtype(searchtype.dfs_query_then_fetch) .addfields("uuid","campaignname","artworkid","activationdate","_source") .setquery(query) .execute() .actionget() }
getting exception these lines
campaignestest line no val client = new mocktransportclient(settings); campaigntestsearch line no 46 val client=campaignestest.getclient
exception encountered when attempting run suite class name:
org.scalatest.deferredabortedsuite *** aborted *** [info] java.lang.illegalstateexception: running tests failed invoke randomizedcontext#getrandom [info] @ org.elasticsearch.common.randomness.get(randomness.java:105) [info] @ org.elasticsearch.client.transport.transportclientnodesservice.<init>(transportclientnodesservice.java:100) [info] @ org.elasticsearch.client.transport.transportclient.buildtemplate(transportclient.java:159) [info] @ org.elasticsearch.client.transport.transportclient.<init>(transportclient.java:228) [info] @ org.elasticsearch.transport.mocktransportclient.<init>(mocktransportclient.java:34) [info] @ testcontrollers.campaign.campaignestest.getclient(campaignestest.scala:40) [info] @ testcontrollers.campaign.campaigntestsearch.<init>(campaigntestsearch.scala:46) [info] @ sun.reflect.nativeconstructoraccessorimpl.newinstance0(native method) [info] @ sun.reflect.nativeconstructoraccessorimpl.newinstance(nativeconstructoraccessorimpl.java:62) [info] @ sun.reflect.delegatingconstructoraccessorimpl.newinstance(delegatingconstructoraccessorimpl.java:45) [info] ... [info] cause: java.lang.reflect.invocationtargetexception: [info] @ sun.reflect.nativemethodaccessorimpl.invoke0(native method) [info] @ sun.reflect.nativemethodaccessorimpl.invoke(nativemethodaccessorimpl.java:62) [info] @ sun.reflect.delegatingmethodaccessorimpl.invoke(delegatingmethodaccessorimpl.java:43) [info] @ java.lang.reflect.method.invoke(method.java:498) [info] @ org.elasticsearch.common.randomness.get(randomness.java:101) [info] @ org.elasticsearch.client.transport.transportclientnodesservice.<init>(transportclientnodesservice.java:100) [info] @ org.elasticsearch.client.transport.transportclient.buildtemplate(transportclient.java:159) [info] @ org.elasticsearch.client.transport.transportclient.<init>(transportclient.java:228) [info] @ org.elasticsearch.transport.mocktransportclient.<init>(mocktransportclient.java:34) [info] @ testcontrollers.campaign.campaignestest.getclient(campaignestest.scala:40) [info] ... [info] cause: java.lang.illegalstateexception: no context information thread: thread[id=10, name=pool-1-thread-1, state=runnable, group=main]. thread running under class com.carrotsearch.randomizedtesting.randomizedrunner runner context? add @runwith(class com.carrotsearch.randomizedtesting.randomizedrunner.class) test class. make sure code accesses random contexts within @beforeclass , @afterclass boundary (for example, static test class initializers not permitted access random contexts). [info] @ com.carrotsearch.randomizedtesting.randomizedcontext.context(randomizedcontext.java:244) [info] @ com.carrotsearch.randomizedtesting.randomizedcontext.current(randomizedcontext.java:151) [info] @ sun.reflect.nativemethodaccessorimpl.invoke0(native method) [info] @ sun.reflect.nativemethodaccessorimpl.invoke(nativemethodaccessorimpl.java:62) [info] @ sun.reflect.delegatingmethodaccessorimpl.invoke(delegatingmethodaccessorimpl.java:43) [info] @ java.lang.reflect.method.invoke(method.java:498) [info] @ org.elasticsearch.common.randomness.get(randomness.java:101) [info] @ org.elasticsearch.client.transport.transportclientnodesservice.<init>(transportclientnodesservice.java:100) [info] @ org.elasticsearch.client.transport.transportclient.buildtemplate(transportclient.java:159) [info] @ org.elasticsearch.client.transport.transportclient.<init>(transportclient.java:228)
how resolve exception if there better method unit test elasticsearch code please guide thanks
Comments
Post a Comment