mirror of
https://github.com/bisq-network/bisq.git
synced 2025-02-28 17:15:14 +01:00
This change fixes the recently bloated wallet balances api. Now there is one CLI getbalance [bsq|btc] method that calls a getbalances(currency-code) on the server. The server returns full wallet balance information for BSQ, BTC, or both if the CLI's currency argument is absent. - grpc.proto: Reduced number of getbalance(s) proto services from four to one. - GrpcWalletsService: Reduced number of getbalance(s) gRPC service boilerplate methods from four to one. - CoreApi, CoreWalletsService: Reduced number of getbalance(s) gRPC service implementation methods from four to one. - CliMain: Reduced number of getbalance(s) commands from four to one. - BalancesInfo: Changed BsqBalanceInfo & BtcBalanceInfo field names to bsq and btc, respectively, to make calling their accessors more readable, less verbose. - BtcBalanceInfo, BsqBalanceInfo: Defined static final EMPTY instances as place holders in a BalancesInfo returned by the gRPC server, when one or the other balance types is not requested. Would be nice to serve Optional.empty() instead, but protobuf does not support it or null. - Adjusted affected api tests and build doc.
68 lines
2.7 KiB
Markdown
68 lines
2.7 KiB
Markdown
# Build and Run API Test Harness
|
|
|
|
## Linux & OSX
|
|
|
|
The API test harness uses the GNU Bourne-Again SHell `bash`, and is not supported on Windows.
|
|
|
|
## Predefined DAO / Regtest Setup
|
|
|
|
The API test harness depends on the contents of https://github.com/bisq-network/bisq/raw/master/docs/dao-setup.zip.
|
|
The files contained in dao-setup.zip include a bitcoin-core wallet, a regtest genesis tx and chain of 111 blocks, plus
|
|
data directories for Bob and Alice Bisq instances. Bob & Alice wallets are pre-configured with 10 BTC each, and the
|
|
equivalent of 2.5 BTC in BSQ distributed among Bob & Alice's BSQ wallets.
|
|
|
|
See https://github.com/bisq-network/bisq/blob/master/docs/dao-setup.md for details.
|
|
|
|
## Install DAO / Regtest Setup Files
|
|
|
|
Bisq's gradle build file defines a task for downloading dao-setup.zip and extracting its contents to the
|
|
`apitest/src/main/resources` folder, and the test harness will install a fresh set of data files to the
|
|
`apitest/build/resources/main` folder during a test case's scaffold setup phase -- normally a static `@BeforeAll` method.
|
|
|
|
The dao-setup files can be downloaded during a normal build:
|
|
|
|
$ ./gradlew clean build :apitest:installDaoSetup
|
|
|
|
Or by running a single task:
|
|
|
|
$ ./gradlew :apitest:installDaoSetup
|
|
|
|
The `:apitest:installDaoSetup` task does not need to be run again until after the next time you run the gradle `clean` task.
|
|
|
|
## Run API Tests
|
|
|
|
The API test harness supports narrow & broad functional and full end to end test cases requiring
|
|
long setup and teardown times -- for example, to start a bitcoind instance, seednode, arbnode, plus Bob & Alice
|
|
Bisq instances, then shut everything down in proper order. For this reason, API test cases do not run during a normal
|
|
gradle build.
|
|
|
|
To run API test cases, pass system property`-DrunApiTests=true`.
|
|
|
|
To run all existing test cases:
|
|
|
|
$ ./gradlew :apitest:test -DrunApiTests=true
|
|
|
|
To run all test cases in a package:
|
|
|
|
$ ./gradlew :apitest:test --tests "bisq.apitest.method.*" -DrunApiTests=true
|
|
|
|
To run a single test case:
|
|
|
|
$ ./gradlew :apitest:test --tests "bisq.apitest.scenario.WalletTest" -DrunApiTests=true
|
|
|
|
To run test cases from Intellij, add two JVM arguments to your JUnit launchers:
|
|
|
|
-DrunApiTests=true -Dlogback.configurationFile=apitest/build/resources/main/logback.xml
|
|
|
|
The `-Dlogback.configurationFile` property will prevent `logback` from printing warnings about multiple `logback.xml`
|
|
files it will find in Bisq jars `cli.jar`, `daemon.jar`, and `seednode.jar`.
|
|
|
|
## Gradle Test Reports
|
|
|
|
To see detailed test results, logs, and full stack traces for test failures, open
|
|
`apitest/build/reports/tests/test/index.html` in a browser.
|
|
|
|
## See also
|
|
|
|
- [test-categories.md](test-categories.md)
|
|
|