@caict/bop-typescript-sdk
Version:
1,575 lines (1,510 loc) • 48 kB
text/typescript
import { BopByBop } from "../service/3rd";
import { expect } from "chai";
import * as sinon from "sinon";
import { BopInterface, Config } from "../../../bop/bop-base";
import {
ApplyRequest,
ApplyResponse,
ApplyStatusRequest,
ApplyStatusResponse,
DetailRequest,
DetailResponse,
DiscardRequest,
DiscardResponse,
GetTransactionCachePlatResponse,
GetTransactionCacheRequest,
QueryRequest,
QueryResponse,
QueryRequest_TxType,
} from "../../../bop/bop-proto/bop";
// 使用 Sinon 创建模拟对象
const sandbox = sinon.createSandbox();
const apiKey = "xxx";
const apiSecret = "xxx";
describe("provider-bop-test", () => {
let bop: BopByBop;
let baseServiceMock: sinon.SinonMock;
let bopInterface: BopInterface;
let config: Config;
beforeEach(() => {
config = new Config("https://bif-mainnet.bitfactory.cn", apiKey, apiSecret);
bopInterface = new BopInterface(config);
bop = new BopByBop(bopInterface);
baseServiceMock = sandbox.mock(bopInterface.getBaseService());
});
afterEach(() => {
// 重置模拟对象
sandbox.restore();
});
describe("bop test", () => {
it("bop.apply", async () => {
const request: ApplyRequest = {
data: [
{
bid: "did:bid:efC5REiFesaBuu1UXbMJWvEsqFRkQKiq",
status: "1",
},
],
};
let response: ApplyResponse;
response = await bop.apply(request);
console.log(response);
expect(response.errorCode).to.equal(0);
expect(response.errorDesc).to.equal("ok");
});
it("bop.apply more than 100", async () => {
const request: ApplyRequest = {
data: [
{
bid: "did:bid:efC5REiFesaBuu1UXbMJWvEsqFRkQKiq",
status: "1",
},
{
bid: "did:bid:efC5REiFesaBuu1UXbMJWvEsqFRkQKiq",
status: "1",
},
{
bid: "did:bid:efC5REiFesaBuu1UXbMJWvEsqFRkQKiq",
status: "1",
},
{
bid: "did:bid:efC5REiFesaBuu1UXbMJWvEsqFRkQKiq",
status: "1",
},
{
bid: "did:bid:efC5REiFesaBuu1UXbMJWvEsqFRkQKiq",
status: "1",
},
{
bid: "did:bid:efC5REiFesaBuu1UXbMJWvEsqFRkQKiq",
status: "1",
},
{
bid: "did:bid:efC5REiFesaBuu1UXbMJWvEsqFRkQKiq",
status: "1",
},
{
bid: "did:bid:efC5REiFesaBuu1UXbMJWvEsqFRkQKiq",
status: "1",
},
{
bid: "did:bid:efC5REiFesaBuu1UXbMJWvEsqFRkQKiq",
status: "1",
},
{
bid: "did:bid:efC5REiFesaBuu1UXbMJWvEsqFRkQKiq",
status: "1",
},
{
bid: "did:bid:efC5REiFesaBuu1UXbMJWvEsqFRkQKiq",
status: "1",
},
{
bid: "did:bid:efC5REiFesaBuu1UXbMJWvEsqFRkQKiq",
status: "1",
},
{
bid: "did:bid:efC5REiFesaBuu1UXbMJWvEsqFRkQKiq",
status: "1",
},
{
bid: "did:bid:efC5REiFesaBuu1UXbMJWvEsqFRkQKiq",
status: "1",
},
{
bid: "did:bid:efC5REiFesaBuu1UXbMJWvEsqFRkQKiq",
status: "1",
},
{
bid: "did:bid:efC5REiFesaBuu1UXbMJWvEsqFRkQKiq",
status: "1",
},
{
bid: "did:bid:efC5REiFesaBuu1UXbMJWvEsqFRkQKiq",
status: "1",
},
{
bid: "did:bid:efC5REiFesaBuu1UXbMJWvEsqFRkQKiq",
status: "1",
},
{
bid: "did:bid:efC5REiFesaBuu1UXbMJWvEsqFRkQKiq",
status: "1",
},
{
bid: "did:bid:efC5REiFesaBuu1UXbMJWvEsqFRkQKiq",
status: "1",
},
{
bid: "did:bid:efC5REiFesaBuu1UXbMJWvEsqFRkQKiq",
status: "1",
},
{
bid: "did:bid:efC5REiFesaBuu1UXbMJWvEsqFRkQKiq",
status: "1",
},
{
bid: "did:bid:efC5REiFesaBuu1UXbMJWvEsqFRkQKiq",
status: "1",
},
{
bid: "did:bid:efC5REiFesaBuu1UXbMJWvEsqFRkQKiq",
status: "1",
},
{
bid: "did:bid:efC5REiFesaBuu1UXbMJWvEsqFRkQKiq",
status: "1",
},
{
bid: "did:bid:efC5REiFesaBuu1UXbMJWvEsqFRkQKiq",
status: "1",
},
{
bid: "did:bid:efC5REiFesaBuu1UXbMJWvEsqFRkQKiq",
status: "1",
},
{
bid: "did:bid:efC5REiFesaBuu1UXbMJWvEsqFRkQKiq",
status: "1",
},
{
bid: "did:bid:efC5REiFesaBuu1UXbMJWvEsqFRkQKiq",
status: "1",
},
{
bid: "did:bid:efC5REiFesaBuu1UXbMJWvEsqFRkQKiq",
status: "1",
},
{
bid: "did:bid:efC5REiFesaBuu1UXbMJWvEsqFRkQKiq",
status: "1",
},
{
bid: "did:bid:efC5REiFesaBuu1UXbMJWvEsqFRkQKiq",
status: "1",
},
{
bid: "did:bid:efC5REiFesaBuu1UXbMJWvEsqFRkQKiq",
status: "1",
},
{
bid: "did:bid:efC5REiFesaBuu1UXbMJWvEsqFRkQKiq",
status: "1",
},
{
bid: "did:bid:efC5REiFesaBuu1UXbMJWvEsqFRkQKiq",
status: "1",
},
{
bid: "did:bid:efC5REiFesaBuu1UXbMJWvEsqFRkQKiq",
status: "1",
},
{
bid: "did:bid:efC5REiFesaBuu1UXbMJWvEsqFRkQKiq",
status: "1",
},
{
bid: "did:bid:efC5REiFesaBuu1UXbMJWvEsqFRkQKiq",
status: "1",
},
{
bid: "did:bid:efC5REiFesaBuu1UXbMJWvEsqFRkQKiq",
status: "1",
},
{
bid: "did:bid:efC5REiFesaBuu1UXbMJWvEsqFRkQKiq",
status: "1",
},
{
bid: "did:bid:efC5REiFesaBuu1UXbMJWvEsqFRkQKiq",
status: "1",
},
{
bid: "did:bid:efC5REiFesaBuu1UXbMJWvEsqFRkQKiq",
status: "1",
},
{
bid: "did:bid:efC5REiFesaBuu1UXbMJWvEsqFRkQKiq",
status: "1",
},
{
bid: "did:bid:efC5REiFesaBuu1UXbMJWvEsqFRkQKiq",
status: "1",
},
{
bid: "did:bid:efC5REiFesaBuu1UXbMJWvEsqFRkQKiq",
status: "1",
},
{
bid: "did:bid:efC5REiFesaBuu1UXbMJWvEsqFRkQKiq",
status: "1",
},
{
bid: "did:bid:efC5REiFesaBuu1UXbMJWvEsqFRkQKiq",
status: "1",
},
{
bid: "did:bid:efC5REiFesaBuu1UXbMJWvEsqFRkQKiq",
status: "1",
},
{
bid: "did:bid:efC5REiFesaBuu1UXbMJWvEsqFRkQKiq",
status: "1",
},
{
bid: "did:bid:efC5REiFesaBuu1UXbMJWvEsqFRkQKiq",
status: "1",
},
{
bid: "did:bid:efC5REiFesaBuu1UXbMJWvEsqFRkQKiq",
status: "1",
},
{
bid: "did:bid:efC5REiFesaBuu1UXbMJWvEsqFRkQKiq",
status: "1",
},
{
bid: "did:bid:efC5REiFesaBuu1UXbMJWvEsqFRkQKiq",
status: "1",
},
{
bid: "did:bid:efC5REiFesaBuu1UXbMJWvEsqFRkQKiq",
status: "1",
},
{
bid: "did:bid:efC5REiFesaBuu1UXbMJWvEsqFRkQKiq",
status: "1",
},
{
bid: "did:bid:efC5REiFesaBuu1UXbMJWvEsqFRkQKiq",
status: "1",
},
{
bid: "did:bid:efC5REiFesaBuu1UXbMJWvEsqFRkQKiq",
status: "1",
},
{
bid: "did:bid:efC5REiFesaBuu1UXbMJWvEsqFRkQKiq",
status: "1",
},
{
bid: "did:bid:efC5REiFesaBuu1UXbMJWvEsqFRkQKiq",
status: "1",
},
{
bid: "did:bid:efC5REiFesaBuu1UXbMJWvEsqFRkQKiq",
status: "1",
},
{
bid: "did:bid:efC5REiFesaBuu1UXbMJWvEsqFRkQKiq",
status: "1",
},
{
bid: "did:bid:efC5REiFesaBuu1UXbMJWvEsqFRkQKiq",
status: "1",
},
{
bid: "did:bid:efC5REiFesaBuu1UXbMJWvEsqFRkQKiq",
status: "1",
},
{
bid: "did:bid:efC5REiFesaBuu1UXbMJWvEsqFRkQKiq",
status: "1",
},
{
bid: "did:bid:efC5REiFesaBuu1UXbMJWvEsqFRkQKiq",
status: "1",
},
{
bid: "did:bid:efC5REiFesaBuu1UXbMJWvEsqFRkQKiq",
status: "1",
},
{
bid: "did:bid:efC5REiFesaBuu1UXbMJWvEsqFRkQKiq",
status: "1",
},
{
bid: "did:bid:efC5REiFesaBuu1UXbMJWvEsqFRkQKiq",
status: "1",
},
{
bid: "did:bid:efC5REiFesaBuu1UXbMJWvEsqFRkQKiq",
status: "1",
},
{
bid: "did:bid:efC5REiFesaBuu1UXbMJWvEsqFRkQKiq",
status: "1",
},
{
bid: "did:bid:efC5REiFesaBuu1UXbMJWvEsqFRkQKiq",
status: "1",
},
{
bid: "did:bid:efC5REiFesaBuu1UXbMJWvEsqFRkQKiq",
status: "1",
},
{
bid: "did:bid:efC5REiFesaBuu1UXbMJWvEsqFRkQKiq",
status: "1",
},
{
bid: "did:bid:efC5REiFesaBuu1UXbMJWvEsqFRkQKiq",
status: "1",
},
{
bid: "did:bid:efC5REiFesaBuu1UXbMJWvEsqFRkQKiq",
status: "1",
},
{
bid: "did:bid:efC5REiFesaBuu1UXbMJWvEsqFRkQKiq",
status: "1",
},
{
bid: "did:bid:efC5REiFesaBuu1UXbMJWvEsqFRkQKiq",
status: "1",
},
{
bid: "did:bid:efC5REiFesaBuu1UXbMJWvEsqFRkQKiq",
status: "1",
},
{
bid: "did:bid:efC5REiFesaBuu1UXbMJWvEsqFRkQKiq",
status: "1",
},
{
bid: "did:bid:efC5REiFesaBuu1UXbMJWvEsqFRkQKiq",
status: "1",
},
{
bid: "did:bid:efC5REiFesaBuu1UXbMJWvEsqFRkQKiq",
status: "1",
},
{
bid: "did:bid:efC5REiFesaBuu1UXbMJWvEsqFRkQKiq",
status: "1",
},
{
bid: "did:bid:efC5REiFesaBuu1UXbMJWvEsqFRkQKiq",
status: "1",
},
{
bid: "did:bid:efC5REiFesaBuu1UXbMJWvEsqFRkQKiq",
status: "1",
},
{
bid: "did:bid:efC5REiFesaBuu1UXbMJWvEsqFRkQKiq",
status: "1",
},
{
bid: "did:bid:efC5REiFesaBuu1UXbMJWvEsqFRkQKiq",
status: "1",
},
{
bid: "did:bid:efC5REiFesaBuu1UXbMJWvEsqFRkQKiq",
status: "1",
},
{
bid: "did:bid:efC5REiFesaBuu1UXbMJWvEsqFRkQKiq",
status: "1",
},
{
bid: "did:bid:efC5REiFesaBuu1UXbMJWvEsqFRkQKiq",
status: "1",
},
{
bid: "did:bid:efC5REiFesaBuu1UXbMJWvEsqFRkQKiq",
status: "1",
},
{
bid: "did:bid:efC5REiFesaBuu1UXbMJWvEsqFRkQKiq",
status: "1",
},
{
bid: "did:bid:efC5REiFesaBuu1UXbMJWvEsqFRkQKiq",
status: "1",
},
{
bid: "did:bid:efC5REiFesaBuu1UXbMJWvEsqFRkQKiq",
status: "1",
},
{
bid: "did:bid:efC5REiFesaBuu1UXbMJWvEsqFRkQKiq",
status: "1",
},
{
bid: "did:bid:efC5REiFesaBuu1UXbMJWvEsqFRkQKiq",
status: "1",
},
{
bid: "did:bid:efC5REiFesaBuu1UXbMJWvEsqFRkQKiq",
status: "1",
},
{
bid: "did:bid:efC5REiFesaBuu1UXbMJWvEsqFRkQKiq",
status: "1",
},
{
bid: "did:bid:efC5REiFesaBuu1UXbMJWvEsqFRkQKiq",
status: "1",
},
{
bid: "did:bid:efC5REiFesaBuu1UXbMJWvEsqFRkQKiq",
status: "1",
},
{
bid: "did:bid:efC5REiFesaBuu1UXbMJWvEsqFRkQKiq",
status: "1",
},
{
bid: "did:bid:efC5REiFesaBuu1UXbMJWvEsqFRkQKiq",
status: "1",
},
{
bid: "did:bid:efC5REiFesaBuu1UXbMJWvEsqFRkQKiq",
status: "1",
},
{
bid: "did:bid:efC5REiFesaBuu1UXbMJWvEsqFRkQKiq",
status: "1",
},
{
bid: "did:bid:efC5REiFesaBuu1UXbMJWvEsqFRkQKiq",
status: "1",
},
{
bid: "did:bid:efC5REiFesaBuu1UXbMJWvEsqFRkQKiq",
status: "1",
},
{
bid: "did:bid:efC5REiFesaBuu1UXbMJWvEsqFRkQKiq",
status: "1",
},
{
bid: "did:bid:efC5REiFesaBuu1UXbMJWvEsqFRkQKiq",
status: "1",
},
{
bid: "did:bid:efC5REiFesaBuu1UXbMJWvEsqFRkQKiq",
status: "1",
},
{
bid: "did:bid:efC5REiFesaBuu1UXbMJWvEsqFRkQKiq",
status: "1",
},
{
bid: "did:bid:efC5REiFesaBuu1UXbMJWvEsqFRkQKiq",
status: "1",
},
{
bid: "did:bid:efC5REiFesaBuu1UXbMJWvEsqFRkQKiq",
status: "1",
},
{
bid: "did:bid:efC5REiFesaBuu1UXbMJWvEsqFRkQKiq",
status: "1",
},
{
bid: "did:bid:efC5REiFesaBuu1UXbMJWvEsqFRkQKiq",
status: "1",
},
{
bid: "did:bid:efC5REiFesaBuu1UXbMJWvEsqFRkQKiq",
status: "1",
},
{
bid: "did:bid:efC5REiFesaBuu1UXbMJWvEsqFRkQKiq",
status: "1",
},
{
bid: "did:bid:efC5REiFesaBuu1UXbMJWvEsqFRkQKiq",
status: "1",
},
{
bid: "did:bid:efC5REiFesaBuu1UXbMJWvEsqFRkQKiq",
status: "1",
},
{
bid: "did:bid:efC5REiFesaBuu1UXbMJWvEsqFRkQKiq",
status: "1",
},
{
bid: "did:bid:efC5REiFesaBuu1UXbMJWvEsqFRkQKiq",
status: "1",
},
{
bid: "did:bid:efC5REiFesaBuu1UXbMJWvEsqFRkQKiq",
status: "1",
},
{
bid: "did:bid:efC5REiFesaBuu1UXbMJWvEsqFRkQKiq",
status: "1",
},
{
bid: "did:bid:efC5REiFesaBuu1UXbMJWvEsqFRkQKiq",
status: "1",
},
{
bid: "did:bid:efC5REiFesaBuu1UXbMJWvEsqFRkQKiq",
status: "1",
},
{
bid: "did:bid:efC5REiFesaBuu1UXbMJWvEsqFRkQKiq",
status: "1",
},
{
bid: "did:bid:efC5REiFesaBuu1UXbMJWvEsqFRkQKiq",
status: "1",
},
{
bid: "did:bid:efC5REiFesaBuu1UXbMJWvEsqFRkQKiq",
status: "1",
},
],
};
let response: ApplyResponse;
response = await bop.apply(request);
console.log(response);
expect(response.errorCode).to.equal(-9);
});
it("bop.apply less than 100", async () => {
const request: ApplyRequest = {
data: [
{
bid: "did:bid:efC5REiFesaBuu1UXbMJWvEsqFRkQKiq",
status: "1",
},
{
bid: "did:bid:efC5REiFesaBuu1UXbMJWvEsqFRkQKiq",
status: "1",
},
{
bid: "did:bid:efC5REiFesaBuu1UXbMJWvEsqFRkQKiq",
status: "1",
},
{
bid: "did:bid:efC5REiFesaBuu1UXbMJWvEsqFRkQKiq",
status: "1",
},
{
bid: "did:bid:efC5REiFesaBuu1UXbMJWvEsqFRkQKiq",
status: "1",
},
{
bid: "did:bid:efC5REiFesaBuu1UXbMJWvEsqFRkQKiq",
status: "1",
},
{
bid: "did:bid:efC5REiFesaBuu1UXbMJWvEsqFRkQKiq",
status: "1",
},
{
bid: "did:bid:efC5REiFesaBuu1UXbMJWvEsqFRkQKiq",
status: "1",
},
{
bid: "did:bid:efC5REiFesaBuu1UXbMJWvEsqFRkQKiq",
status: "1",
},
{
bid: "did:bid:efC5REiFesaBuu1UXbMJWvEsqFRkQKiq",
status: "1",
},
{
bid: "did:bid:efC5REiFesaBuu1UXbMJWvEsqFRkQKiq",
status: "1",
},
{
bid: "did:bid:efC5REiFesaBuu1UXbMJWvEsqFRkQKiq",
status: "1",
},
{
bid: "did:bid:efC5REiFesaBuu1UXbMJWvEsqFRkQKiq",
status: "1",
},
{
bid: "did:bid:efC5REiFesaBuu1UXbMJWvEsqFRkQKiq",
status: "1",
},
{
bid: "did:bid:efC5REiFesaBuu1UXbMJWvEsqFRkQKiq",
status: "1",
},
{
bid: "did:bid:efC5REiFesaBuu1UXbMJWvEsqFRkQKiq",
status: "1",
},
{
bid: "did:bid:efC5REiFesaBuu1UXbMJWvEsqFRkQKiq",
status: "1",
},
{
bid: "did:bid:efC5REiFesaBuu1UXbMJWvEsqFRkQKiq",
status: "1",
},
{
bid: "did:bid:efC5REiFesaBuu1UXbMJWvEsqFRkQKiq",
status: "1",
},
{
bid: "did:bid:efC5REiFesaBuu1UXbMJWvEsqFRkQKiq",
status: "1",
},
{
bid: "did:bid:efC5REiFesaBuu1UXbMJWvEsqFRkQKiq",
status: "1",
},
{
bid: "did:bid:efC5REiFesaBuu1UXbMJWvEsqFRkQKiq",
status: "1",
},
{
bid: "did:bid:efC5REiFesaBuu1UXbMJWvEsqFRkQKiq",
status: "1",
},
{
bid: "did:bid:efC5REiFesaBuu1UXbMJWvEsqFRkQKiq",
status: "1",
},
{
bid: "did:bid:efC5REiFesaBuu1UXbMJWvEsqFRkQKiq",
status: "1",
},
{
bid: "did:bid:efC5REiFesaBuu1UXbMJWvEsqFRkQKiq",
status: "1",
},
{
bid: "did:bid:efC5REiFesaBuu1UXbMJWvEsqFRkQKiq",
status: "1",
},
{
bid: "did:bid:efC5REiFesaBuu1UXbMJWvEsqFRkQKiq",
status: "1",
},
{
bid: "did:bid:efC5REiFesaBuu1UXbMJWvEsqFRkQKiq",
status: "1",
},
{
bid: "did:bid:efC5REiFesaBuu1UXbMJWvEsqFRkQKiq",
status: "1",
},
{
bid: "did:bid:efC5REiFesaBuu1UXbMJWvEsqFRkQKiq",
status: "1",
},
{
bid: "did:bid:efC5REiFesaBuu1UXbMJWvEsqFRkQKiq",
status: "1",
},
{
bid: "did:bid:efC5REiFesaBuu1UXbMJWvEsqFRkQKiq",
status: "1",
},
{
bid: "did:bid:efC5REiFesaBuu1UXbMJWvEsqFRkQKiq",
status: "1",
},
{
bid: "did:bid:efC5REiFesaBuu1UXbMJWvEsqFRkQKiq",
status: "1",
},
{
bid: "did:bid:efC5REiFesaBuu1UXbMJWvEsqFRkQKiq",
status: "1",
},
{
bid: "did:bid:efC5REiFesaBuu1UXbMJWvEsqFRkQKiq",
status: "1",
},
{
bid: "did:bid:efC5REiFesaBuu1UXbMJWvEsqFRkQKiq",
status: "1",
},
{
bid: "did:bid:efC5REiFesaBuu1UXbMJWvEsqFRkQKiq",
status: "1",
},
{
bid: "did:bid:efC5REiFesaBuu1UXbMJWvEsqFRkQKiq",
status: "1",
},
{
bid: "did:bid:efC5REiFesaBuu1UXbMJWvEsqFRkQKiq",
status: "1",
},
{
bid: "did:bid:efC5REiFesaBuu1UXbMJWvEsqFRkQKiq",
status: "1",
},
{
bid: "did:bid:efC5REiFesaBuu1UXbMJWvEsqFRkQKiq",
status: "1",
},
{
bid: "did:bid:efC5REiFesaBuu1UXbMJWvEsqFRkQKiq",
status: "1",
},
{
bid: "did:bid:efC5REiFesaBuu1UXbMJWvEsqFRkQKiq",
status: "1",
},
{
bid: "did:bid:efC5REiFesaBuu1UXbMJWvEsqFRkQKiq",
status: "1",
},
{
bid: "did:bid:efC5REiFesaBuu1UXbMJWvEsqFRkQKiq",
status: "1",
},
{
bid: "did:bid:efC5REiFesaBuu1UXbMJWvEsqFRkQKiq",
status: "1",
},
{
bid: "did:bid:efC5REiFesaBuu1UXbMJWvEsqFRkQKiq",
status: "1",
},
{
bid: "did:bid:efC5REiFesaBuu1UXbMJWvEsqFRkQKiq",
status: "1",
},
{
bid: "did:bid:efC5REiFesaBuu1UXbMJWvEsqFRkQKiq",
status: "1",
},
{
bid: "did:bid:efC5REiFesaBuu1UXbMJWvEsqFRkQKiq",
status: "1",
},
{
bid: "did:bid:efC5REiFesaBuu1UXbMJWvEsqFRkQKiq",
status: "1",
},
{
bid: "did:bid:efC5REiFesaBuu1UXbMJWvEsqFRkQKiq",
status: "1",
},
{
bid: "did:bid:efC5REiFesaBuu1UXbMJWvEsqFRkQKiq",
status: "1",
},
{
bid: "did:bid:efC5REiFesaBuu1UXbMJWvEsqFRkQKiq",
status: "1",
},
{
bid: "did:bid:efC5REiFesaBuu1UXbMJWvEsqFRkQKiq",
status: "1",
},
{
bid: "did:bid:efC5REiFesaBuu1UXbMJWvEsqFRkQKiq",
status: "1",
},
{
bid: "did:bid:efC5REiFesaBuu1UXbMJWvEsqFRkQKiq",
status: "1",
},
{
bid: "did:bid:efC5REiFesaBuu1UXbMJWvEsqFRkQKiq",
status: "1",
},
{
bid: "did:bid:efC5REiFesaBuu1UXbMJWvEsqFRkQKiq",
status: "1",
},
{
bid: "did:bid:efC5REiFesaBuu1UXbMJWvEsqFRkQKiq",
status: "1",
},
{
bid: "did:bid:efC5REiFesaBuu1UXbMJWvEsqFRkQKiq",
status: "1",
},
{
bid: "did:bid:efC5REiFesaBuu1UXbMJWvEsqFRkQKiq",
status: "1",
},
{
bid: "did:bid:efC5REiFesaBuu1UXbMJWvEsqFRkQKiq",
status: "1",
},
{
bid: "did:bid:efC5REiFesaBuu1UXbMJWvEsqFRkQKiq",
status: "1",
},
{
bid: "did:bid:efC5REiFesaBuu1UXbMJWvEsqFRkQKiq",
status: "1",
},
{
bid: "did:bid:efC5REiFesaBuu1UXbMJWvEsqFRkQKiq",
status: "1",
},
{
bid: "did:bid:efC5REiFesaBuu1UXbMJWvEsqFRkQKiq",
status: "1",
},
{
bid: "did:bid:efC5REiFesaBuu1UXbMJWvEsqFRkQKiq",
status: "1",
},
{
bid: "did:bid:efC5REiFesaBuu1UXbMJWvEsqFRkQKiq",
status: "1",
},
{
bid: "did:bid:efC5REiFesaBuu1UXbMJWvEsqFRkQKiq",
status: "1",
},
{
bid: "did:bid:efC5REiFesaBuu1UXbMJWvEsqFRkQKiq",
status: "1",
},
{
bid: "did:bid:efC5REiFesaBuu1UXbMJWvEsqFRkQKiq",
status: "1",
},
{
bid: "did:bid:efC5REiFesaBuu1UXbMJWvEsqFRkQKiq",
status: "1",
},
{
bid: "did:bid:efC5REiFesaBuu1UXbMJWvEsqFRkQKiq",
status: "1",
},
{
bid: "did:bid:efC5REiFesaBuu1UXbMJWvEsqFRkQKiq",
status: "1",
},
{
bid: "did:bid:efC5REiFesaBuu1UXbMJWvEsqFRkQKiq",
status: "1",
},
{
bid: "did:bid:efC5REiFesaBuu1UXbMJWvEsqFRkQKiq",
status: "1",
},
{
bid: "did:bid:efC5REiFesaBuu1UXbMJWvEsqFRkQKiq",
status: "1",
},
{
bid: "did:bid:efC5REiFesaBuu1UXbMJWvEsqFRkQKiq",
status: "1",
},
{
bid: "did:bid:efC5REiFesaBuu1UXbMJWvEsqFRkQKiq",
status: "1",
},
],
};
let response: ApplyResponse;
response = await bop.apply(request);
console.log(response);
expect(response.errorCode).to.equal(0);
expect(response.errorDesc).to.equal("ok");
});
it("bop.apply bid empty", async () => {
const request: ApplyRequest = {
data: [
{
bid: "",
status: "1",
},
],
};
let response: ApplyResponse;
response = await bop.apply(request);
console.log(response);
expect(response.errorCode).to.equal(1106);
});
it("bop.apply bid invalid", async () => {
const request: ApplyRequest = {
data: [
{
bid: "xxx",
status: "1",
},
],
};
let response: ApplyResponse;
response = await bop.apply(request);
console.log(response);
expect(response.errorCode).to.equal(1106);
});
it("bop.apply status empty", async () => {
const request: ApplyRequest = {
data: [
{
bid: "did:bid:efC5REiFesaBuu1UXbMJWvEsqFRkQKiq",
},
],
};
let response: ApplyResponse;
response = await bop.apply(request);
console.log(response);
expect(response.errorCode).to.equal(1106);
});
it("bop.apply status negative", async () => {
const request: ApplyRequest = {
data: [
{
bid: "did:bid:efC5REiFesaBuu1UXbMJWvEsqFRkQKiq",
status: "-1",
},
],
};
let response: ApplyResponse;
response = await bop.apply(request);
console.log(response);
expect(response.errorCode).to.equal(1106);
});
it("bop.apply status more then 1", async () => {
const request: ApplyRequest = {
data: [
{
bid: "did:bid:efC5REiFesaBuu1UXbMJWvEsqFRkQKiq",
status: "2",
},
],
};
let response: ApplyResponse;
response = await bop.apply(request);
console.log(response);
expect(response.errorCode).to.equal(1106);
});
it("bop.apply status invalid", async () => {
const request: ApplyRequest = {
data: [
{
bid: "did:bid:efC5REiFesaBuu1UXbMJWvEsqFRkQKiq",
status: "xx",
},
],
};
let response: ApplyResponse;
response = await bop.apply(request);
console.log(response);
expect(response.errorCode).to.equal(1106);
});
it("bop.status", async () => {
const request: ApplyStatusRequest = {
requestNo: "ca3d2fa2-28ab-4322-b9f7-b018667acf87",
};
let response: ApplyStatusResponse;
response = await bop.status(request);
console.log(response);
expect(response.errorCode).to.equal(0);
expect(response.errorDesc).to.equal("ok");
});
it("bop.status requestNo empty", async () => {
const request: ApplyStatusRequest = {
requestNo: "",
};
let response: ApplyStatusResponse;
response = await bop.status(request);
console.log(response);
expect(response.errorCode).to.equal(1106);
});
it("bop.status requestNo not exist", async () => {
const request: ApplyStatusRequest = {
requestNo: "ca3d2fa2-28ab-4322-b9f7-b018667acf86",
};
let response: ApplyStatusResponse;
response = await bop.status(request);
console.log(response);
expect(response.errorCode).to.equal(1106);
});
it("bop.status requestNo invalid", async () => {
const request: ApplyStatusRequest = {
requestNo: "xxx",
};
let response: ApplyStatusResponse;
response = await bop.status(request);
console.log(response);
expect(response.errorCode).to.equal(1106);
});
it("bop.detail", async () => {
const request: DetailRequest = {
requestNo: "ca3d2fa2-28ab-4322-b9f7-b018667acf87",
};
let response: DetailResponse;
response = await bop.detail(request);
console.log(response);
expect(response.errorCode).to.equal(0);
expect(response.errorDesc).to.equal("ok");
});
it("bop.detail requestNo empty", async () => {
const request: DetailRequest = {
requestNo: "",
};
let response: DetailResponse;
response = await bop.detail(request);
console.log(response);
expect(response.errorCode).to.equal(1106);
});
it("bop.detail requestNo invalid", async () => {
const request: DetailRequest = {
requestNo: "xxx",
};
let response: DetailResponse;
response = await bop.detail(request);
console.log(response);
expect(response.errorCode).to.equal(1106);
});
it("bop.detail requestNo not exist", async () => {
const request: DetailRequest = {
requestNo: "ca3d2fa2-28ab-4322-b9f7-b018667acf86",
};
let response: DetailResponse;
response = await bop.detail(request);
console.log(response);
expect(response.errorCode).to.equal(1106);
});
it("bop.getTransactionCache", async () => {
let platResponseJson = {
trace: "9d1450d34aac419b887b84567300050f",
result: {
total_count: 1,
transactions: [
{
blob: "0A286469643A6269643A6566433552456946657361427575315558624D4A577645737146526B514B697110F6880322330807522F0A296469643A6269643A65663262374A386141375044326D77535243754B4B4276423873726A4A7A32596F1080B51830C0843D3801",
hash: "e6366d3ae7231e8f59d44b710521dce671abd9d1c37c2e2b23736b12665e6547",
error_code: 1311,
signatures: [
{
sign_data:
"4BAC56FCF51A90CDD9DC30D7E13072FCFD3181BB861FA34457FD47E4515AC168013E17A8887F1A8EAE8DD42D42447B0644043DAFCF5C007DECF62D05033B1B03",
public_key:
"b065665b6fa23dc1c00b17b8d2cd86093c86bbae4c011247310f9160351bd64bc580cc",
},
],
transaction: {
operations: [
{
type: 7,
pay_coin: {
dest_address: "did:bid:ef2b7J8aA7PD2mwSRCuKKBvB8srjJz2Yo",
amount: 400000,
},
},
],
source_address: "did:bid:efC5REiFesaBuu1UXbMJWvEsqFRkQKiq",
nonce: 50294,
},
},
],
},
success: true,
error_code: 0,
error_desc: "ok",
};
// 设置模拟对象的行为
baseServiceMock
.expects("getTransactionCachePlat")
.withArgs(sinon.match.any)
.resolves(GetTransactionCachePlatResponse.fromJSON(platResponseJson));
let request: GetTransactionCacheRequest;
let response: GetTransactionCachePlatResponse;
response = await bop.getTransactionCache(request);
console.log(response);
console.log(response.result?.transactions[0]);
expect(response.result?.transactions[0].hash).to.equal(
"e6366d3ae7231e8f59d44b710521dce671abd9d1c37c2e2b23736b12665e6547",
);
expect(response.result?.totalCount).to.equal(1);
// 验证模拟对象的方法调用
baseServiceMock.verify();
});
it("bop.getTransactionCache address empty", async () => {
let request: GetTransactionCacheRequest = {
address: "",
};
let response: GetTransactionCachePlatResponse;
response = await bop.getTransactionCache(request);
console.log(response);
});
it("bop.getTransactionCache address invalid", async () => {
let request: GetTransactionCacheRequest = {
address: "xxx",
};
let response: GetTransactionCachePlatResponse;
response = await bop.getTransactionCache(request);
console.log(response);
expect(response.errorCode).to.equal(4);
});
it("bop.getTransactionCache hash invalid", async () => {
let request: GetTransactionCacheRequest = {
hash: "xxx",
};
let response: GetTransactionCachePlatResponse;
response = await bop.getTransactionCache(request);
console.log(response);
});
it("bop.getTransactionCache limit negative", async () => {
let request: GetTransactionCacheRequest = {
limit: -1,
};
let response: GetTransactionCachePlatResponse;
response = await bop.getTransactionCache(request);
console.log(response);
expect(response.errorCode).to.equal(-9);
});
it("bop.getTransactionCache limit 0", async () => {
let request: GetTransactionCacheRequest = {
limit: 0,
};
let response: GetTransactionCachePlatResponse;
response = await bop.getTransactionCache(request);
console.log(response);
expect(response.errorCode).to.equal(-9);
});
it("bop.getTransactionCache request null", async () => {
let request: GetTransactionCacheRequest = {};
let response: GetTransactionCachePlatResponse;
response = await bop.getTransactionCache(request);
console.log(response);
});
it("bop.discard default", async () => {
const request: DiscardRequest = {};
let response: DiscardResponse;
response = await bop.discard(request);
console.log(response);
expect(response.errorCode).to.equal(0);
});
it("bop.discard with hash", async () => {
const request: DiscardRequest = {
hash: "18c9c9af526d2fa884e7e9def698bdf346c39e95566bfe68a5eff600dcd9ef28",
};
let response: DiscardResponse;
response = await bop.discard(request);
console.log(response);
console.log(response.result?.transactionBases[0]);
expect(response.errorCode).to.equal(0);
expect(response.errorDesc).to.equal("ok");
expect(response.success).to.equal(true);
expect(response.result?.count).to.equal(1);
expect(response.result?.transactionBases[0]?.hash).to.equal(
"18c9c9af526d2fa884e7e9def698bdf346c39e95566bfe68a5eff600dcd9ef28",
);
});
it("bop.discard with page and pagesize", async () => {
const request: DiscardRequest = {
page: 2,
pageSize: 1,
};
let response: DiscardResponse;
response = await bop.discard(request);
console.log(response);
expect(response.errorCode).to.equal(0);
});
it("bop.discard with invalid hash", async () => {
const request: DiscardRequest = {
hash: "xx",
};
let response: DiscardResponse;
response = await bop.discard(request);
console.log(response);
expect(response.errorCode).to.equal(0);
});
it("bop.discard with empty hash", async () => {
const request: DiscardRequest = {
hash: "",
};
let response: DiscardResponse;
response = await bop.discard(request);
console.log(response);
console.log(response.result?.transactionBases[0]);
expect(response.errorCode).to.equal(0);
});
it("bop.discard page negative", async () => {
const request: DiscardRequest = {
page: -1,
};
let response: DiscardResponse;
response = await bop.discard(request);
console.log(response);
expect(response.errorCode).to.equal(-9);
});
it("bop.discard pagesize negative", async () => {
const request: DiscardRequest = {
pageSize: -1,
};
let response: DiscardResponse;
response = await bop.discard(request);
console.log(response);
expect(response.errorCode).to.equal(-6);
});
it("bop.query default", async () => {
const request: QueryRequest = {};
let response: QueryResponse;
response = await bop.query(request);
console.log(response);
expect(response.errorCode).to.equal(0);
});
it("bop.query with hash", async () => {
const request: QueryRequest = {
hash: "1b96779dab06c39c5a4d173bf0033000bd25076c7007dd03623a764ae60c9b48",
};
let response: QueryResponse;
response = await bop.query(request);
console.log(response);
console.log(response.result?.transactionBases[0]);
expect(response.errorCode).to.equal(0);
expect(response.errorDesc).to.equal("ok");
expect(response.success).to.equal(true);
expect(response.result?.count).to.equal(1);
expect(response.result?.totalPage).to.equal(1);
expect(response.result?.transactionBases[0]?.hash).to.equal(
"1b96779dab06c39c5a4d173bf0033000bd25076c7007dd03623a764ae60c9b48",
);
});
it("bop.query tx_type and hash", async () => {
const request: QueryRequest = {
txType: QueryRequest_TxType.BASE_TX,
hash: "6e12c6b6dfec2bd743e07d93467cad5c7b9810593ea42de1fcb4d7481921d311",
};
let response: QueryResponse;
response = await bop.query(request);
console.log(response);
console.log(response.result?.transactionBases[0]);
expect(response.errorCode).to.equal(0);
expect(response.errorDesc).to.equal("ok");
expect(response.success).to.equal(true);
expect(response.result?.count).to.equal(1);
expect(response.result?.totalPage).to.equal(1);
expect(response.result?.transactionBases[0]?.hash).to.equal(
"6e12c6b6dfec2bd743e07d93467cad5c7b9810593ea42de1fcb4d7481921d311",
);
});
it("bop.query tx_type and page & pagesize", async () => {
const request: QueryRequest = {
txType: QueryRequest_TxType.BASE_TX,
page: 1,
pageSize: 1,
};
let response: QueryResponse;
response = await bop.query(request);
console.log(response);
expect(response.errorCode).to.equal(0);
});
it("bop.query tx_type and bid", async () => {
const request: QueryRequest = {
txType: QueryRequest_TxType.BASE_TX,
bid: "did:bid:zfDzx5mNsB5JREptjkcGz8h4TCsAPniD",
};
let response: QueryResponse;
response = await bop.query(request);
console.log(response);
expect(response.errorCode).to.equal(0);
});
it("bop.query tx_type and starttime & endtime", async () => {
const request: QueryRequest = {
txType: QueryRequest_TxType.BASE_TX,
startTime: "2025-02-11 15:07:46",
endTime: "2025-02-11 15:09:35",
};
let response: QueryResponse;
response = await bop.query(request);
console.log(response);
expect(response.errorCode).to.equal(0);
expect(response.result?.transactionBases[0]?.hash).to.equal(
"17b5fc65f69599452f63dd13a1ae04c494ba5fb5232e5d6e7a9ace47b56fb2ba",
);
});
it("bop.query tx_type and ledgerseq", async () => {
const request: QueryRequest = {
txType: QueryRequest_TxType.BASE_TX,
ledgerSeq: 5844781,
};
let response: QueryResponse;
response = await bop.query(request);
console.log(response);
expect(response.errorCode).to.equal(0);
expect(response.result?.transactionBases[0]?.hash).to.equal(
"17b5fc65f69599452f63dd13a1ae04c494ba5fb5232e5d6e7a9ace47b56fb2ba",
);
});
it("bop.query tx_type and bid invalid", async () => {
const request: QueryRequest = {
txType: QueryRequest_TxType.BASE_TX,
bid: "xxx",
};
let response: QueryResponse;
response = await bop.query(request);
console.log(response);
expect(response.errorCode).to.equal(0);
});
it("bop.query tx_type and bid empty", async () => {
const request: QueryRequest = {
txType: QueryRequest_TxType.BASE_TX,
bid: "",
};
let response: QueryResponse;
response = await bop.query(request);
console.log(response);
expect(response.errorCode).to.equal(0);
});
it("bop.query tx_type and ledgerseq 0", async () => {
const request: QueryRequest = {
txType: QueryRequest_TxType.BASE_TX,
ledgerSeq: 0,
};
let response: QueryResponse;
response = await bop.query(request);
console.log(response);
expect(response.errorCode).to.equal(0);
});
it("bop.query tx_type and ledgerseq negative", async () => {
const request: QueryRequest = {
txType: QueryRequest_TxType.BASE_TX,
ledgerSeq: -1,
};
let response: QueryResponse;
response = await bop.query(request);
console.log(response);
expect(response.errorCode).to.equal(0);
});
it("bop.query tx_type and ledgerseq more than max", async () => {
const request: QueryRequest = {
txType: QueryRequest_TxType.BASE_TX,
ledgerSeq: 9999999999999,
};
let response: QueryResponse;
response = await bop.query(request);
console.log(response);
expect(response.errorCode).to.equal(0);
});
it("bop.query tx_type and hash invalid", async () => {
const request: QueryRequest = {
txType: QueryRequest_TxType.BASE_TX,
hash: "xxx",
};
let response: QueryResponse;
response = await bop.query(request);
console.log(response);
expect(response.errorCode).to.equal(0);
});
it("bop.query tx_type and hash empty", async () => {
const request: QueryRequest = {
txType: QueryRequest_TxType.BASE_TX,
hash: "",
};
let response: QueryResponse;
response = await bop.query(request);
console.log(response);
expect(response.errorCode).to.equal(0);
});
it("bop.query tx_type and txid invalid", async () => {
const request: QueryRequest = {
txType: QueryRequest_TxType.BASE_TX,
txId: "xxx",
};
let response: QueryResponse;
response = await bop.query(request);
console.log(response);
expect(response.errorCode).to.equal(0);
});
it("bop.query tx_type and txid empty", async () => {
const request: QueryRequest = {
txType: QueryRequest_TxType.BASE_TX,
txId: "",
};
let response: QueryResponse;
response = await bop.query(request);
console.log(response);
expect(response.errorCode).to.equal(0);
});
it("bop.query tx_type and endtime > starttime", async () => {
const request: QueryRequest = {
txType: QueryRequest_TxType.BASE_TX,
startTime: "2025-02-11 15:07:46",
endTime: "2025-02-11 15:06:46",
};
let response: QueryResponse;
response = await bop.query(request);
console.log(response);
expect(response.errorCode).to.equal(0);
});
it("bop.query tx_type and starttime & endtime invalid", async () => {
const request: QueryRequest = {
txType: QueryRequest_TxType.BASE_TX,
startTime: "xxx",
};
let response: QueryResponse;
response = await bop.query(request);
console.log(response);
expect(response.errorCode).to.equal(-1);
});
it("bop.query tx_type and starttime & endtime empty", async () => {
const request: QueryRequest = {
txType: QueryRequest_TxType.BASE_TX,
startTime: "",
};
let response: QueryResponse;
response = await bop.query(request);
console.log(response);
expect(response.errorCode).to.equal(0);
});
it("bop.query tx_type and txtype UNRECOGNIZED", async () => {
const request: QueryRequest = {
txType: QueryRequest_TxType.UNRECOGNIZED,
};
let response: QueryResponse;
response = await bop.query(request);
console.log(response);
expect(response.errorCode).to.equal(1105);
});
it("bop.query tx_type and page negative", async () => {
const request: QueryRequest = {
txType: QueryRequest_TxType.BASE_TX,
page: -1,
};
let response: QueryResponse;
response = await bop.query(request);
console.log(response);
expect(response.errorCode).to.equal(-9);
});
it("bop.query tx_type and page more than max", async () => {
const request: QueryRequest = {
txType: QueryRequest_TxType.BASE_TX,
page: 99999999,
};
let response: QueryResponse;
response = await bop.query(request);
console.log(response);
expect(response.errorCode).to.equal(-1);
});
it("bop.query tx_type and pagesize more than max", async () => {
const request: QueryRequest = {
txType: QueryRequest_TxType.BASE_TX,
pageSize: 99999999,
};
let response: QueryResponse;
response = await bop.query(request);
console.log(response);
expect(response.errorCode).to.equal(-9);
});
it("bop.query tx_type and pagesize zero", async () => {
const request: QueryRequest = {
txType: QueryRequest_TxType.BASE_TX,
pageSize: 0,
};
let response: QueryResponse;
response = await bop.query(request);
console.log(response);
expect(response.errorCode).to.equal(-6);
});
it("bop.query tx_type and pagesize negative", async () => {
const request: QueryRequest = {
txType: QueryRequest_TxType.BASE_TX,
pageSize: -1,
};
let response: QueryResponse;
response = await bop.query(request);
console.log(response);
expect(response.errorCode).to.equal(-6);
});
});
});