import * as tsUnit from 'tsunit.external/tsUnit' import * as actions from '../libbadm/baDmActions' import {ContentItemType} from '../libbadm/baDmDataTypes' import {MediaType} from '../libbadm/baDmMediaObject'; import {DmInternal} from '../libbadm/baDmClasses' import {inspect} from 'util' export class MediaStateTests extends tsUnit.TestClass { testId = '12345678-1111-2222-3333-123456789ABC'; zoneContainer = new DmInternal.MediaStateContainer(this.testId); // default type is Zone contentItem1 = new DmInternal.MediaContentItem('ItemName1', '/testFiles/image1.jpg', MediaType.Image); contentItem2 = new DmInternal.MediaContentItem('ItemName2', '/testFiles/video1.mp4', MediaType.Video); testContentItem() { this.areIdentical(36, this.contentItem1.id.length); } testAddMediaState() { const testName = "NewState"; let action = actions.baAddMediaState(testName, this.zoneContainer, this.contentItem1); this.areIdentical(actions.ADD_MEDIA_STATE, action.type); // TODO - test action.id for valid BaDmId this.areIdentical(testName, action.payload.name, 'MediaState name is incorrect'); this.isTrue(action.payload.container instanceof DmInternal.MediaStateContainer); this.areIdentical(this.zoneContainer.id, action.payload.container.id); this.areIdentical(this.zoneContainer.type, action.payload.container.type); this.areIdentical(this.contentItem1.name, action.payload.contentItem.name); this.areIdentical(ContentItemType.Media, action.payload.contentItem.type); this.isTrue(action.payload.contentItem instanceof DmInternal.MediaContentItem); let mediaContentItem = action.payload.contentItem; this.areIdentical(this.contentItem1.media.path, mediaContentItem.media.path); this.areIdentical(this.contentItem1.media.mediaType, mediaContentItem.media.mediaType); console.log(inspect(action, {depth:null, colors:true})); } testUpdateMediaState() { const testName = "UpdatedState"; let params : actions.MediaStateParams = {name: testName, contentItem: this.contentItem2}; let action = actions.baUpdateMediaState(this.testId, params); this.areIdentical(actions.UPDATE_MEDIA_STATE, action.type); // TODO - test action.id for valid BaDmId this.areIdentical(testName, action.payload.name, 'MediaState name is incorrect'); this.isFalsey(action.payload.container); this.areIdentical(this.contentItem2.name, action.payload.contentItem.name); this.areIdentical(ContentItemType.Media, action.payload.contentItem.type); this.isTrue(action.payload.contentItem instanceof DmInternal.MediaContentItem); let mediaContentItem = action.payload.contentItem; this.areIdentical(this.contentItem2.media.path, mediaContentItem.media.path); this.areIdentical(this.contentItem2.media.mediaType, mediaContentItem.media.mediaType); console.log(inspect(action, {depth:null, colors:true})); } } var tap = new tsUnit.Test([MediaStateTests]).run().getTapResults(); console.log(tap);