import { Verb } from '../../../../../models/bxml/Verb'; import { StartStream, StartStreamAttributes } from '../../../../../models/bxml/verbs/StartStream'; import { StreamParam } from '../../../../../models/bxml/verbs/StreamParam'; describe('StartStream', () => { const attributes: StartStreamAttributes = { name: 'initialName', mode: 'unidirectional', tracks: 'inbound', destination: 'https://initial.com', destinationUsername: 'initialDestUsername', destinationPassword: 'initialDestPassword', streamEventUrl: 'https://initial.com', streamEventMethod: 'POST', username: 'initialUsername', password: 'initialPassword' }; const streamParam1 = new StreamParam({ name: 'streamParamName1', value: 'streamParamValue1' }); const streamParam2 = new StreamParam({ name: 'streamParamName2', value: 'streamParamValue2' }); test('should create a StartStream Verb', () => { const startStream = new StartStream(attributes); const expected = ''; expect(startStream).toBeInstanceOf(StartStream); expect(startStream).toBeInstanceOf(Verb); expect(startStream.toBxml()).toBe(expected); }); test('should create a StartStream Verb with nested StreamParams', () => { let startStream = new StartStream(attributes, streamParam1); const expected = ''; const expectedSingle = ''; const expectedMultiple = ''; expect(startStream).toBeInstanceOf(StartStream); expect(startStream).toBeInstanceOf(Verb); expect(startStream.toBxml()).toBe(expected); startStream.addStreamParams(streamParam2); expect(startStream.toBxml()).toBe(expectedSingle); startStream.addStreamParams([streamParam1, streamParam2]); expect(startStream.toBxml()).toBe(expectedMultiple); }); test('should test the addStreamParams method when no verbs are initially nested', () => { const startStream = new StartStream(attributes); const expected = ''; startStream.addStreamParams(streamParam1); expect(startStream.toBxml()).toBe(expected); }); });