/* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ "use strict"; const test = require("tape"); const thrift = require("../lib/thrift/thrift.js"); const InputBufferUnderrunError = require("../lib/thrift/input_buffer_underrun_error"); test("TApplicationException", function t(assert) { const e = new thrift.TApplicationException(1, "foo"); assert.ok( e instanceof thrift.TApplicationException, "is instanceof TApplicationException" ); assert.ok(e instanceof thrift.TException, "is instanceof TException"); assert.ok(e instanceof Error, "is instanceof Error"); assert.equal(typeof e.stack, "string", "has stack trace"); assert.ok( /^TApplicationException: foo/.test(e.stack), "Stack trace has correct error name and message" ); assert.ok( e.stack.indexOf("test/exceptions.js:7:11") !== -1, "stack trace starts on correct line and column" ); assert.equal( e.name, "TApplicationException", "has function name TApplicationException" ); assert.equal(e.message, "foo", 'has error message "foo"'); assert.equal(e.type, 1, "has type 1"); assert.end(); }); test("unexpected TApplicationException ", function t(assert) { const e = new thrift.TApplicationException(1, 100); assert.ok( e instanceof thrift.TApplicationException, "is instanceof TApplicationException" ); assert.ok(e instanceof thrift.TException, "is instanceof TException"); assert.ok(e instanceof Error, "is instanceof Error"); assert.equal(typeof e.stack, "string", "has stack trace"); assert.ok( /^TApplicationException: 100/.test(e.stack), "Stack trace has correct error name and message" ); assert.ok( e.stack.indexOf("test/exceptions.js:7:11") !== -1, "stack trace starts on correct line and column" ); assert.equal( e.name, "TApplicationException", "has function name TApplicationException" ); assert.equal(e.message, 100, "has error message 100"); assert.equal(e.type, 1, "has type 1"); assert.end(); }); test("TException", function t(assert) { const e = new thrift.TException("foo"); assert.ok(e instanceof thrift.TException, "is instanceof TException"); assert.ok(e instanceof Error, "is instanceof Error"); assert.equal(typeof e.stack, "string", "has stack trace"); assert.ok( /^TException: foo/.test(e.stack), "Stack trace has correct error name and message" ); assert.ok( e.stack.indexOf("test/exceptions.js:21:11") !== -1, "stack trace starts on correct line and column" ); assert.equal(e.name, "TException", "has function name TException"); assert.equal(e.message, "foo", 'has error message "foo"'); assert.end(); }); test("TProtocolException", function t(assert) { const e = new thrift.TProtocolException(1, "foo"); assert.ok( e instanceof thrift.TProtocolException, "is instanceof TProtocolException" ); assert.ok(e instanceof Error, "is instanceof Error"); assert.equal(typeof e.stack, "string", "has stack trace"); assert.ok( /^TProtocolException: foo/.test(e.stack), "Stack trace has correct error name and message" ); assert.ok( e.stack.indexOf("test/exceptions.js:33:11") !== -1, "stack trace starts on correct line and column" ); assert.equal( e.name, "TProtocolException", "has function name TProtocolException" ); assert.equal(e.message, "foo", 'has error message "foo"'); assert.equal(e.type, 1, "has type 1"); assert.end(); }); test("InputBufferUnderrunError", function t(assert) { const e = new InputBufferUnderrunError("foo"); assert.ok( e instanceof InputBufferUnderrunError, "is instanceof InputBufferUnderrunError" ); assert.ok(e instanceof Error, "is instanceof Error"); assert.equal(typeof e.stack, "string", "has stack trace"); assert.ok( /^InputBufferUnderrunError: foo/.test(e.stack), "Stack trace has correct error name and message" ); assert.ok( e.stack.indexOf("test/exceptions.js:46:11") !== -1, "stack trace starts on correct line and column" ); assert.equal( e.name, "InputBufferUnderrunError", "has function name InputBufferUnderrunError" ); assert.equal(e.message, "foo", 'has error message "foo"'); assert.end(); });