UNPKG

clwoz-models

Version:
196 lines 8.37 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); /** * Copyright (c) Microsoft Corporation. All rights reserved. * Licensed under the MIT License. */ var _1 = require("./"); var createFilledEntity = function (values) { return { entityId: '', values: values.map(function (v) { return ({ builtinType: '', resolution: {}, displayText: v, userText: v }); }) }; }; describe('filledEntity', function () { describe('FilledEntity', function () { describe('filledEntityValueAsString', function () { test('given filled entity with single value return single value', function () { // Arrange var filledEntity = createFilledEntity(['d1']); var expected = 'd1'; // Assert expect(_1.filledEntityValueAsString(filledEntity)).toEqual(expected); }); test('given filled entity with two values return two values separated by "and"', function () { // Arrange var filledEntity = createFilledEntity(['d1', 'd2']); var expected = 'd1 and d2'; // Assert expect(_1.filledEntityValueAsString(filledEntity)).toEqual(expected); }); test('given filled entity with three values return values separated by commas and "and"', function () { // Arrange var filledEntity = createFilledEntity(['d1', 'd2', 'd3']); var expected = 'd1, d2 and d3'; // Assert expect(_1.filledEntityValueAsString(filledEntity)).toEqual(expected); }); }); }); describe('FilledEntityMap', function () { var memoryValues = [ { userText: 'e1u1', displayText: 'e1d1', builtinType: 'none', resolution: {} }, { userText: 'e1u2', displayText: 'e1d2', builtinType: 'none', resolution: {} }, { userText: 'e1u3', displayText: 'e1d3', builtinType: 'none', resolution: {} } ]; var filledEntityMap = new _1.FilledEntityMap({ map: { entityName1: { entityId: 'entityId1', values: memoryValues } } }); var entity1 = { entityId: 'entityId1', values: [ { userText: '3', displayText: '3', builtinType: 'none', resolution: {} } ] }; var entity2 = { entityId: 'entityId2', values: [ { userText: '3', displayText: '3', builtinType: 'none', resolution: {} } ] }; var newEntityMap = function () { return new _1.FilledEntityMap({ map: { entityName1: entity1, entityName2: entity2 } }); }; describe('getEntityDisplayValueMap', function () { test('given filledEntityMap should return Map which has entity id to entity display value', function () { var displayFilledEntityName = _1.getEntityDisplayValueMap(filledEntityMap); var entityName = 'entityName1'; expect(displayFilledEntityName.get(entityName)).toEqual(filledEntityMap.ValueAsString(entityName)); }); }); describe('ValueAsList', function () { test('given filled entity with no matching entity name return empty array', function () { expect(filledEntityMap.ValueAsList('entityName2')).toEqual([]); }); test('given filled entity with multiple values return userText values', function () { expect(filledEntityMap.ValueAsList('entityName1')).toEqual(memoryValues.map(function (v) { return v.userText; })); }); }); describe('ValueAsString', function () { test('given filled entity with no matching entity name return null', function () { expect(filledEntityMap.ValueAsString('entityName2')).toEqual(null); }); test('given filled entity with multiple values return displayText/userText values formatted as string', function () { expect(filledEntityMap.ValueAsString('entityName1')).toEqual('e1d1, e1d2 and e1d3'); }); }); describe('ValueAsNumber', function () { test('given filled entity with no matching entity name return null', function () { expect(filledEntityMap.ValueAsNumber('entityName1')).toEqual(null); }); test('given filled entity with non-number value name return null', function () { expect(filledEntityMap.ValueAsNumber('entityName1')).toEqual(null); }); test('given filled entity number value return number', function () { var filledEntityMapWithNumber = new _1.FilledEntityMap({ map: { entityName1: { entityId: 'entityId1', values: [ { userText: '3', displayText: '3', builtinType: 'none', resolution: {} } ] } } }); expect(filledEntityMapWithNumber.ValueAsNumber('entityName1')).toEqual(3); }); }); describe('EntityMapToIdMap', function () { var entityMap = newEntityMap(); var idMap = entityMap.EntityMapToIdMap(); expect(idMap.map[entity1.entityId]).toEqual(entity1); expect(idMap.map[entity2.entityId]).toEqual(entity2); }); describe('FilledEntities', function () { test('given filledEntityMap return values in array', function () { expect(filledEntityMap.FilledEntities()).toEqual([ { entityId: 'entityId1', values: memoryValues } ]); }); }); describe('DeleteWithEmptyString', function () { test('DeleteNonMultiWithEmptyString', function () { var entityMap = newEntityMap(); expect(Object.keys(entityMap.map).length).toEqual(2); entityMap.Remember("entityName1", entity1.entityId, ""); expect(Object.keys(entityMap.map).length).toEqual(1); }); test('DeleteMultiWithEmptyString', function () { var entityMap = newEntityMap(); expect(Object.keys(entityMap.map).length).toEqual(2); entityMap.RememberMany("entityName1", entity1.entityId, ["", ""]); expect(Object.keys(entityMap.map).length).toEqual(1); }); test('DeleteMultiWithEmptyString', function () { var entityMap = newEntityMap(); expect(Object.keys(entityMap.map).length).toEqual(2); entityMap.RememberMany("entityName1", entity1.entityId, []); expect(Object.keys(entityMap.map).length).toEqual(1); }); }); describe('Split', function () { test('given action name split it', function () { expect(_1.FilledEntityMap.Split('test1 test2.test3?test4')).toEqual(['test1', 'test2', 'test3', 'test4']); }); }); }); }); //# sourceMappingURL=filledEntity.test.js.map