Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[WIP] Migrate method tests to scenario test cases #4717

Closed
wants to merge 28 commits into from

Conversation

ghubstan
Copy link
Contributor

@ghubstan ghubstan commented Oct 27, 2020

The reason for doing this is to cut test time by reducing scaffold setup repetitions while not moving or changing method test code.

method tests can be enabled and run at any time by commenting out their class level @Disabled annotations.

The first test cases to be migrated are wallet tests:

  • FundWalletScenarioTest is renamed WalletTest

  • GetBalanceTest was @Disabled at the class level

  • All GetBalanceTest unit tests are run from WalletTest

PR #4716 should be reviewed & merged before this PR.

This PR is not marked draft so codacy will run after each commit.

The API is going to need some desktop trade utilities, which should be
shared between :desktop and :core.api.
Scope of this refactoring is small;  more can be done, but the short
term goal is to share trade util logic with core api.

- Removed unused method getCurrencyCode()
- Made minor style changes
- Removed duplicated code block
API users will need to see their role as maker/taker when looking at trade details.

- Add getRole(trade) to TradeUtil.
- Add getTradeRole(tradeId) to CoreApi, CoreTradesService.
- Add role field to TradeInfo proto and its wrapper class.
- Move output column header specs to its own shared constants class.

- Add new TradeFormat class for printing trade details in the console.

- Print formatted trade in api trade tests -- to see output before
  using formatter in CLI (in next PR).
Optionally print the json contract for a given trade id.
This PR adds trade closing method stubs to keep funds in the
Bisq wallet or send them to an external BTC wallet.

- Add grpc protos
- Add new methods to GrpcTradesService, CoreApi
- Stub out implementations in CoreTradesService
- Add methods to CLI
The CoreTradesService was refactored to work for newly added api methods:

- keepfunds -- close trade, keep funds in bisq wallet

- withdrawfunds -- close trade, withdraw funds to external btc wallet

A getKey accessor was added to CoreWalletsService (needed by withdrawfunds impl).
Some refactoring of the api test case hierarchy is included in this commit.
This commit fixes non-trade tests broken by the last refactoring.
The implementation will be added to CoreOffersService in the next PR.
The reason for doing this is to cut test time by reducing scaffold
setup repetitions.

- FundWalletScenarioTest was renamed WalletTest

- GetBalanceTest was @disabled at the class level

- All GetBalanceTest unit tests are run from WalletTest
- Offer 'method' test cases are now disabled.

- All offer 'method' tests are now run from a new 'scenario' OfferTest.

- Some refactoring of MethodTest and AbstractOfferTest was needed.
@ghubstan
Copy link
Contributor Author

In commit 9df122c, offer method test cases were @Disabled, and all are run from a single OfferTest in the scenario pkg.

Some refactoring of MethodTest and AbstractOfferTest was needed.

@ghubstan
Copy link
Contributor Author

Closing this PR while seeing some odd logging behaviour when running from cmd line.

@ghubstan ghubstan closed this Oct 28, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant