каков формат pagingstate (в виде строки) в Datastax - PullRequest
0 голосов
/ 30 апреля 2019

Для моего модульного теста мне нужно создать фиктивное значение PagingState.

https://docs.datastax.com/en/latest-java-driver-api/com/datastax/driver/core/PagingState.html

Я вижу, что существует метод fromString, который может создать для меня объект PagingState. Но мне нужно предоставить строку в правильном формате.

В каком формате PagingState?

Я прочитал это The paging state is a array of 16 bytes. Я попытался сделать следующее

val pagingStateByteArray = Array[Byte](1.toByte,2.toByte,3.toByte,4.toByte,5.toByte,6.toByte,7.toByte,8.toByte,9.toByte,10.toByte,11.toByte,12.toByte,13.toByte,14.toByte,15.toByte,16.toByte)
  val pagingState = PagingState.fromBytes(pagingStateByteArray) //make this more accurate. instance of PagingState

но получил ошибку

Cannot deserialize paging state, invalid format. The serialized form was corrupted, or not initially generated from a PagingState object.
com.datastax.driver.core.exceptions.PagingStateException: Cannot deserialize paging state, invalid format. The serialized form was corrupted, or not initially generated from a PagingState object.
    at com.datastax.driver.core.PagingState.<init>(PagingState.java:60)
    at com.datastax.driver.core.PagingState.fromBytes(PagingState.java:170)

1 Ответ

1 голос
/ 30 апреля 2019

Состояние пейджинга имеет значение для драйвера ( исходный код ), поэтому вам необходимо предоставить значимые значения.

Но для теста вы можете использовать то же значение, которое используется в Тесты драйвера Java :

PagingState emptyStatement = PagingState.fromString("00000000");;
...