import { Verb } from '../../../../../models/bxml/Verb';
import { PhoneNumber } from '../../../../../models/bxml/verbs/PhoneNumber';
import { SipUri } from '../../../../../models/bxml/verbs/SipUri';
import { Transfer, TransferAttributes } from '../../../../../models/bxml/verbs/Transfer';
describe('Transfer', () => {
const attributes: TransferAttributes = {
transferCallerId: '+19195551234',
transferCallerDisplayName: 'initialDisplayName',
callTimeout: 5,
transferCompleteUrl: 'https://initial.com',
transferCompleteMethod: 'POST',
transferCompleteFallbackUrl: 'https://initial.com',
transferCompleteFallbackMethod: 'POST',
username: 'initialUsername',
password: 'initialPassword',
fallbackUsername: 'initialFallbackUsername',
fallbackPassword: 'initialFallbackPassword',
tag: 'initialTag',
diversionTreatment: 'propagate',
diversionReason: 'user-busy'
};
const phoneNumber = new PhoneNumber('+19195551234');
const sipUri = new SipUri('sip:1-999-123-4567@voip-provider.example.net');
test('should create a Transfer Verb', () => {
const transfer = new Transfer(attributes);
const expected = '';
expect(transfer).toBeInstanceOf(Transfer);
expect(transfer).toBeInstanceOf(Verb);
expect(transfer.toBxml()).toBe(expected);
});
test('should create a Transfer Verb with nested PhoneNumber and SipUri', () => {
let transfer = new Transfer(attributes, phoneNumber);
const expected = '+19195551234';
const expectedSingle = '+19195551234sip:1-999-123-4567@voip-provider.example.net';
const expectedMultiple = '+19195551234sip:1-999-123-4567@voip-provider.example.netsip:1-999-123-4567@voip-provider.example.net+19195551234';
expect(transfer).toBeInstanceOf(Transfer);
expect(transfer).toBeInstanceOf(Verb);
expect(transfer.toBxml()).toBe(expected);
transfer.addTransferRecipients(sipUri);
expect(transfer.toBxml()).toBe(expectedSingle);
transfer.addTransferRecipients([sipUri, phoneNumber]);
expect(transfer.toBxml()).toBe(expectedMultiple);
});
test('should test the addTransferRecipients method method when no verbs are initially nested', () => {
const transfer = new Transfer(attributes);
const expected = '+19195551234';
transfer.addTransferRecipients(phoneNumber);
expect(transfer.toBxml()).toBe(expected);
});
});