import { expect } from 'chai';
import { parseListObjectsByBucketNameResponse } from '../src/clients/spclient/spApis/listObjectsByBucket';
import { parseGetUserBucketsResponse } from '../src/clients/spclient/spApis/getUserBuckets';
describe('parseListObjectsByBucketNameResponse', () => {
test('parse CommonPrefixes contains 2 element at least', async () => {
const data = `
xxx
yyy
36
50
false
foo
`;
const res = await parseListObjectsByBucketNameResponse(data);
expect(res.GfSpListObjectsByBucketNameResponse).to.have.deep.property('CommonPrefixes', [
'xxx',
'yyy',
]);
});
test('parse CommonPrefixes contains 1 element', async () => {
const data = `
xxx
36
50
false
foo
`;
const res = await parseListObjectsByBucketNameResponse(data);
expect(res.GfSpListObjectsByBucketNameResponse).to.have.deep.property('CommonPrefixes', [
'xxx',
]);
});
test('parse empty CommonPrefixes', async () => {
const data = `
36
50
false
foo
`;
const res = await parseListObjectsByBucketNameResponse(data);
expect(res.GfSpListObjectsByBucketNameResponse).to.have.deep.property('CommonPrefixes', []);
});
test('parse empty Objects', async () => {
const data = `
36
50
false
foo
`;
const res = await parseListObjectsByBucketNameResponse(data);
expect(res.GfSpListObjectsByBucketNameResponse).to.have.deep.property('Objects', []);
});
test('parse Objects contains 1 element', async () => {
const data = `
0x1C893441AB6c1A75E01887087ea508bE8e07AAae
0x1C893441AB6c1A75E01887087ea508bE8e07AAae
true
obk
739112
1
205
1
application/x-yaml
1692971564
1
0
0
a7554caa696d4db8c8ea4500ad2eac6244bca79e3c3193db8cc699a7e89cf341
b054fd20d637bfa706182288d687f2c0f0ef5afaa4114170bc18699b268e9c28
0x0000000000000000000000000000000000000000000000000000000000000000
false
232480
0
0x8b97D152149309C15B1C339F547a9aca9Bf629D2
0x42d854103bc83359b86b55b8a0452895865c2de1ac51f26d551fca0e2a587214
0x704ba83349018ddcdd0774fb4a01e84eda3d32d8577d958cfa272fbcc2892f75
0x704ba83349018ddcdd0774fb4a01e84eda3d32d8577d958cfa272fbcc2892f75
36
50
false
foo
`;
const res = await parseListObjectsByBucketNameResponse(data);
expect(res.GfSpListObjectsByBucketNameResponse).to.have.deep.property('Objects', [
{
ObjectInfo: {
Owner: '0x1C893441AB6c1A75E01887087ea508bE8e07AAae',
Creator: '0x1C893441AB6c1A75E01887087ea508bE8e07AAae',
BucketName: 'true',
ObjectName: 'obk',
Id: 739112,
LocalVirtualGroupId: 1,
PayloadSize: 205,
Visibility: 1,
ContentType: 'application/x-yaml',
CreateAt: 1692971564,
ObjectStatus: 1,
RedundancyType: 0,
SourceType: 0,
Checksums: [
'a7554caa696d4db8c8ea4500ad2eac6244bca79e3c3193db8cc699a7e89cf341',
'b054fd20d637bfa706182288d687f2c0f0ef5afaa4114170bc18699b268e9c28',
],
},
LockedBalance: '0x0000000000000000000000000000000000000000000000000000000000000000',
Removed: false,
UpdateAt: 232480,
DeleteAt: 0,
DeleteReason: '',
Operator: '0x8b97D152149309C15B1C339F547a9aca9Bf629D2',
CreateTxHash: '0x42d854103bc83359b86b55b8a0452895865c2de1ac51f26d551fca0e2a587214',
UpdateTxHash: '0x704ba83349018ddcdd0774fb4a01e84eda3d32d8577d958cfa272fbcc2892f75',
SealTxHash: '0x704ba83349018ddcdd0774fb4a01e84eda3d32d8577d958cfa272fbcc2892f75',
},
]);
});
test('parse Objects contains 2 element at least', async () => {
const data = `
0x1C893441AB6c1A75E01887087ea508bE8e07AAae
0x1C893441AB6c1A75E01887087ea508bE8e07AAae
foo
obk
739112
1
205
1
application/x-yaml
1692971564
1
0
0
a7554caa696d4db8c8ea4500ad2eac6244bca79e3c3193db8cc699a7e89cf341
b054fd20d637bfa706182288d687f2c0f0ef5afaa4114170bc18699b268e9c28
0x0000000000000000000000000000000000000000000000000000000000000000
false
232480
0
0x8b97D152149309C15B1C339F547a9aca9Bf629D2
0x42d854103bc83359b86b55b8a0452895865c2de1ac51f26d551fca0e2a587214
0x704ba83349018ddcdd0774fb4a01e84eda3d32d8577d958cfa272fbcc2892f75
0x704ba83349018ddcdd0774fb4a01e84eda3d32d8577d958cfa272fbcc2892f75
0x1C893441AB6c1A75E01887087ea508bE8e07AAae
0x1C893441AB6c1A75E01887087ea508bE8e07AAae
foo
obk
739112
1
205
1
application/x-yaml
1692971564
1
0
0
a7554caa696d4db8c8ea4500ad2eac6244bca79e3c3193db8cc699a7e89cf341
b054fd20d637bfa706182288d687f2c0f0ef5afaa4114170bc18699b268e9c28
0x0000000000000000000000000000000000000000000000000000000000000000
false
232480
0
0x8b97D152149309C15B1C339F547a9aca9Bf629D2
0x42d854103bc83359b86b55b8a0452895865c2de1ac51f26d551fca0e2a587214
0x704ba83349018ddcdd0774fb4a01e84eda3d32d8577d958cfa272fbcc2892f75
0x704ba83349018ddcdd0774fb4a01e84eda3d32d8577d958cfa272fbcc2892f75
36
50
false
foo
`;
const res = await parseListObjectsByBucketNameResponse(data);
expect(res.GfSpListObjectsByBucketNameResponse).to.have.deep.property('Objects', [
{
ObjectInfo: {
Owner: '0x1C893441AB6c1A75E01887087ea508bE8e07AAae',
Creator: '0x1C893441AB6c1A75E01887087ea508bE8e07AAae',
BucketName: 'foo',
ObjectName: 'obk',
Id: 739112,
LocalVirtualGroupId: 1,
PayloadSize: 205,
Visibility: 1,
ContentType: 'application/x-yaml',
CreateAt: 1692971564,
ObjectStatus: 1,
RedundancyType: 0,
SourceType: 0,
Checksums: [
'a7554caa696d4db8c8ea4500ad2eac6244bca79e3c3193db8cc699a7e89cf341',
'b054fd20d637bfa706182288d687f2c0f0ef5afaa4114170bc18699b268e9c28',
],
},
LockedBalance: '0x0000000000000000000000000000000000000000000000000000000000000000',
Removed: false,
UpdateAt: 232480,
DeleteAt: 0,
DeleteReason: '',
Operator: '0x8b97D152149309C15B1C339F547a9aca9Bf629D2',
CreateTxHash: '0x42d854103bc83359b86b55b8a0452895865c2de1ac51f26d551fca0e2a587214',
UpdateTxHash: '0x704ba83349018ddcdd0774fb4a01e84eda3d32d8577d958cfa272fbcc2892f75',
SealTxHash: '0x704ba83349018ddcdd0774fb4a01e84eda3d32d8577d958cfa272fbcc2892f75',
},
{
ObjectInfo: {
Owner: '0x1C893441AB6c1A75E01887087ea508bE8e07AAae',
Creator: '0x1C893441AB6c1A75E01887087ea508bE8e07AAae',
BucketName: 'foo',
ObjectName: 'obk',
Id: 739112,
LocalVirtualGroupId: 1,
PayloadSize: 205,
Visibility: 1,
ContentType: 'application/x-yaml',
CreateAt: 1692971564,
ObjectStatus: 1,
RedundancyType: 0,
SourceType: 0,
Checksums: [
'a7554caa696d4db8c8ea4500ad2eac6244bca79e3c3193db8cc699a7e89cf341',
'b054fd20d637bfa706182288d687f2c0f0ef5afaa4114170bc18699b268e9c28',
],
},
LockedBalance: '0x0000000000000000000000000000000000000000000000000000000000000000',
Removed: false,
UpdateAt: 232480,
DeleteAt: 0,
DeleteReason: '',
Operator: '0x8b97D152149309C15B1C339F547a9aca9Bf629D2',
CreateTxHash: '0x42d854103bc83359b86b55b8a0452895865c2de1ac51f26d551fca0e2a587214',
UpdateTxHash: '0x704ba83349018ddcdd0774fb4a01e84eda3d32d8577d958cfa272fbcc2892f75',
SealTxHash: '0x704ba83349018ddcdd0774fb4a01e84eda3d32d8577d958cfa272fbcc2892f75',
},
]);
});
});
describe('parseGetUserBucketsResponse', () => {
test('parse Buckets containers 2 element at least', async () => {
const data = `
0x1C893441AB6c1A75E01887087ea508bE8e07AAae
false
1
1156769
0
1693279149
0x1C893441AB6c1A75E01887087ea508bE8e07AAae
8
0
0
false
0
0x1C893441AB6c1A75E01887087ea508bE8e07AAae
0xea5f91a6ba8e558e35ecc416579b4585cc494d5dcc99bce519cc54968b0b1292
0xea5f91a6ba8e558e35ecc416579b4585cc494d5dcc99bce519cc54968b0b1292
363707
1693279149
30
6
0x3dBB43836cF80F141C338Cba7709aBffAfB8F4bC
0x1C893441AB6c1A75E01887087ea508bE8e07AAae
false
1
1156769
0
1693279149
0x1C893441AB6c1A75E01887087ea508bE8e07AAae
8
0
0
false
0
0x1C893441AB6c1A75E01887087ea508bE8e07AAae
0xea5f91a6ba8e558e35ecc416579b4585cc494d5dcc99bce519cc54968b0b1292
0xea5f91a6ba8e558e35ecc416579b4585cc494d5dcc99bce519cc54968b0b1292
363707
1693279149
31
6
0x3dBB43836cF80F141C338Cba7709aBffAfB8F4bC
`;
const res = await parseGetUserBucketsResponse(data);
expect(res.GfSpGetUserBucketsResponse).to.have.deep.property('Buckets', [
{
BucketInfo: {
Owner: '0x1C893441AB6c1A75E01887087ea508bE8e07AAae',
BucketName: 'false',
Visibility: 1,
Id: '1156769',
SourceType: 0,
CreateAt: 1693279149,
PaymentAddress: '0x1C893441AB6c1A75E01887087ea508bE8e07AAae',
GlobalVirtualGroupFamilyId: 8,
ChargedReadQuota: 0,
BucketStatus: 0,
},
Removed: false,
DeleteAt: 0,
DeleteReason: '',
Operator: '0x1C893441AB6c1A75E01887087ea508bE8e07AAae',
CreateTxHash: '0xea5f91a6ba8e558e35ecc416579b4585cc494d5dcc99bce519cc54968b0b1292',
UpdateTxHash: '0xea5f91a6ba8e558e35ecc416579b4585cc494d5dcc99bce519cc54968b0b1292',
UpdateAt: 363707,
UpdateTime: 1693279149,
Vgf: {
Id: 30,
PrimarySpId: 6,
VirtualPaymentAddress: '0x3dBB43836cF80F141C338Cba7709aBffAfB8F4bC',
},
},
{
BucketInfo: {
Owner: '0x1C893441AB6c1A75E01887087ea508bE8e07AAae',
BucketName: 'false',
Visibility: 1,
Id: '1156769',
SourceType: 0,
CreateAt: 1693279149,
PaymentAddress: '0x1C893441AB6c1A75E01887087ea508bE8e07AAae',
GlobalVirtualGroupFamilyId: 8,
ChargedReadQuota: 0,
BucketStatus: 0,
},
Removed: false,
DeleteAt: 0,
DeleteReason: '',
Operator: '0x1C893441AB6c1A75E01887087ea508bE8e07AAae',
CreateTxHash: '0xea5f91a6ba8e558e35ecc416579b4585cc494d5dcc99bce519cc54968b0b1292',
UpdateTxHash: '0xea5f91a6ba8e558e35ecc416579b4585cc494d5dcc99bce519cc54968b0b1292',
UpdateAt: 363707,
UpdateTime: 1693279149,
Vgf: {
Id: 31,
PrimarySpId: 6,
VirtualPaymentAddress: '0x3dBB43836cF80F141C338Cba7709aBffAfB8F4bC',
},
},
]);
});
test('parse Buckets containers 1 element', async () => {
const data = `
0x1C893441AB6c1A75E01887087ea508bE8e07AAae
false
1
1156769
0
1693279149
0x1C893441AB6c1A75E01887087ea508bE8e07AAae
8
0
0
false
0
0x1C893441AB6c1A75E01887087ea508bE8e07AAae
0xea5f91a6ba8e558e35ecc416579b4585cc494d5dcc99bce519cc54968b0b1292
0xea5f91a6ba8e558e35ecc416579b4585cc494d5dcc99bce519cc54968b0b1292
363707
1693279149
30
6
0x3dBB43836cF80F141C338Cba7709aBffAfB8F4bC
`;
const res = await parseGetUserBucketsResponse(data);
expect(res.GfSpGetUserBucketsResponse).to.have.deep.property('Buckets', [
{
BucketInfo: {
Owner: '0x1C893441AB6c1A75E01887087ea508bE8e07AAae',
BucketName: 'false',
Visibility: 1,
Id: '1156769',
SourceType: 0,
CreateAt: 1693279149,
PaymentAddress: '0x1C893441AB6c1A75E01887087ea508bE8e07AAae',
GlobalVirtualGroupFamilyId: 8,
ChargedReadQuota: 0,
BucketStatus: 0,
},
Removed: false,
DeleteAt: 0,
DeleteReason: '',
Operator: '0x1C893441AB6c1A75E01887087ea508bE8e07AAae',
CreateTxHash: '0xea5f91a6ba8e558e35ecc416579b4585cc494d5dcc99bce519cc54968b0b1292',
UpdateTxHash: '0xea5f91a6ba8e558e35ecc416579b4585cc494d5dcc99bce519cc54968b0b1292',
UpdateAt: 363707,
UpdateTime: 1693279149,
Vgf: {
Id: 30,
PrimarySpId: 6,
VirtualPaymentAddress: '0x3dBB43836cF80F141C338Cba7709aBffAfB8F4bC',
},
},
]);
});
test('parse empty Buckets', async () => {
const data = ``;
const res = await parseGetUserBucketsResponse(data);
expect(res.GfSpGetUserBucketsResponse).to.have.deep.property('Buckets', []);
});
});