# Quidem UT Enables to write sql level tests easily. Can be used to write tests against existing test backends (ComponentSupplier) - by doing so the testcases can be moved closer to the exercised codes. ## Usage ### Install java&maven (if needed) If you don't have java&maven - one way to set that up is by using sdkman like this: ```bash # install sdkman curl -s "https://get.sdkman.io" | bash # at the end of installation either open a new terminal; or follow the instructions at the end # install java&maven sdk install java 11.0.23-zulu sdk install maven # run mvn to see if it works mvn --version # download druid sources git clone https://github.com/apache/druid ``` ### Running these tests * CI execution happens by a standard JUnit test `QTest` in this module * the `dev/quidem` script can be used to run these tests (after the project is built) ### Launching a test generating broker * make sure to build the project first; one way to do that is: ```bash mvn install -pl quidem-ut/ -am -DskipTests -Pskip-static-checks ``` * launch the broker instance with: ```bash mvn exec:exec -pl quidem-ut -Dquidem.record.autostart=true ``` * the broker will be running at http://localhost:12345 * the used test configuration backend can configured by supplying `quidem.uri` ```bash mvn exec:exec -pl quidem-ut -Dquidem.uri=druidtest:///?componentSupplier=ThetaSketchComponentSupplier ``` * new record files can be started by calling http://localhost:12345/quidem/start * if `quidem.record.autostart` is omitted recording will not start * after finished with the usage of the broker ; a new `record-123.iq` file will be in the project's worktree - it will contain all the executed statements * running `dev/quidem -Dquidem.overwrite` updates the resultsets of all `iq` files around there * rename the testfile to have a more descriptive name