Corda - Как вы реализуете параллельные предикаты ожидаемые события, используя Java - PullRequest
0 голосов
/ 06 февраля 2020

Я ищу пример Java, аналогичный коду Kotlin, показанному в следующем примере (взят из учебного руководства по интеграционному тестированию Corda по адресу: https://docs.corda.net/releases/release-M6.0/tutorial-integration-testing.html)

bobVaultUpdates.expectEvents {
     parallel(
         (1 .. 10).map { i ->
             expect(
                 match = { update: Vault.Update ->
                                    (update.produced.first().state.data as Cash.State).amount.quantity == i * 100L
                 }
             ) { update ->
                 println("Bob vault update of $update")
             }
         }
     )
}

Мне также любопытно, если этот метод все еще рекомендуется, так как он, кажется, был удален из последней версии этого урока (https://docs.corda.net/releases/release-V4.3/tutorial-integration-testing.html).

1 Ответ

1 голос
/ 08 апреля 2020

Страница, на которую вы ссылаетесь, не работает, однако существует версия учебника по Corda 4.4.

вот ссылка:

https://docs.corda.net/docs/corda-os/4.4/tutorial-integration-testing.html

Есть некоторый код java, похожий на то, что вы поделились здесь, но примеры были изменены немного.

Class<Vault.Update<Cash.State>> cashVaultUpdateClass = (Class<Vault.Update<Cash.State>>)(Class<?>)Vault.Update.class;

expectEvents(bobVaultUpdates, true, () ->
        expect(cashVaultUpdateClass, update -> true, update -> {
            System.out.println("Bob got vault update of " + update);
            Amount<Issued<Currency>> amount = update.getProduced().iterator().next().getState().getData().getAmount();
            assertEquals(DOLLARS(1000), Structures.withoutIssuer(amount));
            return null;
        })
);

Спасибо!

...