Home Reference Source Test

test/specs/generic/consensus/base/primitive/Serializable.spec.js

describe('Serializable', () => {

    class SerializableTest extends Serializable {

        constructor(arg) {
            super();
            this._obj = arg;
        }

        serialize(buf) {
            buf = buf || new SerialBuffer(this.serializedSize);
            buf.write(this._obj);
            return buf;
        }
    }

    it('has an equals method', () => {
        const primitive1 = new SerializableTest(Dummy.hash1);
        primitive1.serialize = () => BufferUtils.fromBase64(Dummy.hash1);
        const primitive2 = new SerializableTest(Dummy.hash2);
        primitive2.serialize = () => BufferUtils.fromBase64(Dummy.hash2);

        expect(primitive1.equals(primitive1))
            .toBe(true, 'because primitive1 == primitive1');
        expect(primitive1.equals(primitive2))
            .toBe(false, 'because primitive1 !== primitive2');
        expect(primitive1.equals(null))
            .toBe(false, 'because primitive1 !== null');
        expect(primitive1.equals(1))
            .toBe(false, 'because primitive1 !== 1');
    });

    it('has a toBase64 method', () => {
        const primitive1 = new SerializableTest(Dummy.hash1);
        primitive1.serialize = () => BufferUtils.fromBase64(Dummy.hash1);

        expect(primitive1.toBase64())
            .toBe(Dummy.hash1, 'because it was initalized with this base64 string');
    });
});