situm-cordova-plugin-official
Version:
Situm Cordova-based Plugin for hybrid apps.
417 lines (402 loc) • 16.2 kB
JavaScript
const expect = require("expect.js");
const buildings = require('./resources/fetchBuildings.json');
const floors = require('./resources/fetchFloorsFromBuilding.json');
const indoorPois = require('./resources/fetchIndoorPOIsFromBuilding.json');
const outdoorPois = require('./resources/fetchOutdoorPOIsFromBuilding.json');
const events = require('./resources/fetchEventsFromBuilding.json');
const poiCategories = require('./resources/fetchPoiCategories.json');
const map = require('./resources/fetchMapFromFloor.json');
const iconNormal = require('./resources/fetchPoiCategoryIconNormal.json');
const iconSelected = require('./resources/fetchPoiCategoryIconSelected.json');
const route = require('./resources/requestDirections.json');
const starting = require('./resources/startPositioning/0_starting.json');
const preparePositioningModel = require('./resources/startPositioning/1_preparingPositioningModel.json');
const startingPositioning = require('./resources/startPositioning/2_startingPositioning.json');
const calculating = require('./resources/startPositioning/3_calculating.json');
const position = require('./resources/startPositioning/4_position.json');
let building, floor, indoorPoi, outdoorPoi, event, poiCategory, edge, indication, node, point, step;
describe('Test fetchBuildings -> ', () => {
it('Check reutrned value', () => {
expect(buildings).to.be.ok();
expect(buildings instanceof Array).to.be(true);
});
it('Check building', () => {
expect(building = buildings[0]);
expect(typeof building).to.be('object');
expect(typeof building.address).to.be('string');
expect(typeof building.bounds).to.be('object');
expect(typeof building.boundsRotated).to.be('object');
expect(typeof building.center).to.be('object');
expect(typeof building.dimensions).to.be('object');
expect(typeof building.infoHtml).to.be('string');
expect(typeof building.name).to.be('string');
expect(typeof building.pictureThumbUrl).to.be('string');
expect(typeof building.pictureUrl).to.be('string');
expect(typeof building.rotation).to.be('number');
expect(typeof building.userIdentifier).to.be('string');
expect(typeof building.buildingIdentifier).to.be('string');
expect(typeof building.customFields).to.be('object');
});
it('Check building bounds', () => {
testBounds(building.bounds);
});
it('Check building boundsRotated', () => {
testBounds(building.boundsRotated);
});
it('Check building center', () => {
testCoordinate(building.center);
});
it('Check building dimensions', () => {
testDimension(building.dimensions);
});
});
describe('Test fetchFloorsFromBuilding ->', () => {
it('Check returned value', () => {
expect(floors).to.be.ok();
expect(floors instanceof Array).to.be(true);
});
it('Check floor', () => {
expect(floor = floors[0]);
expect(typeof floor).to.be('object');
expect(typeof floor.altitude).to.be('number');
expect(typeof floor.buildingIdentifier).to.be('string');
expect(typeof floor.level).to.be('number');
expect(typeof floor.mapUrl).to.be('string');
expect(typeof floor.scale).to.be('number');
expect(typeof floor.floorIdentifier).to.be('string');
});
});
describe('Test fetchIndoorPOIsFromBuilding ->', () => {
it('Check returned value', () => {
expect(indoorPois).to.be.ok();
expect(indoorPois instanceof Array).to.be(true);
});
it('Check indoorPOI', () => {
expect(indoorPoi = indoorPois[0]);
expect(typeof indoorPoi).to.be('object');
expect(typeof indoorPoi.identifier).to.be('string');
expect(typeof indoorPoi.buildingIdentifier).to.be('string');
expect(typeof indoorPoi.cartesianCoordinate).to.be('object');
expect(typeof indoorPoi.coordinate).to.be('object');
expect(typeof indoorPoi.floorIdentifier).to.be('string');
expect(typeof indoorPoi.poiName).to.be('string');
expect(typeof indoorPoi.position).to.be('object');
expect(typeof indoorPoi.isIndoor).to.be('boolean');
expect(typeof indoorPoi.isOutdoor).to.be('boolean');
expect(typeof indoorPoi.category).to.be('string');
expect(typeof indoorPoi.infoHtml).to.be('string');
expect(typeof indoorPoi.customFields).to.be('object');
});
it('Check indoorPOI cartesiansCoordinate', () => {
testCartesianCoordinate(indoorPoi.cartesianCoordinate);
});
it('Check indoorPOI coordinate', () => {
testCoordinate(indoorPoi.coordinate);
});
it('Check indoorPOI position', () => {
testPoint(indoorPoi.position)
});
});
describe('Test fetchOutdoorPOIsFromBuilding ->', () => {
it('Check returned value', () => {
expect(outdoorPois).to.be.ok();
expect(outdoorPois instanceof Array).to.be(true);
});
it('Check outdoorPOI', () => {
expect(outdoorPoi = outdoorPois[0]);
expect(typeof outdoorPoi).to.be('object');
expect(typeof outdoorPoi.identifier).to.be('string');
expect(typeof outdoorPoi.buildingIdentifier).to.be('string');
expect(typeof outdoorPoi.cartesianCoordinate).to.be('object');
expect(typeof outdoorPoi.coordinate).to.be('object');
expect(typeof outdoorPoi.floorIdentifier).to.be('string');
expect(typeof outdoorPoi.poiName).to.be('string');
expect(typeof outdoorPoi.position).to.be('object');
expect(typeof outdoorPoi.isIndoor).to.be('boolean');
expect(typeof outdoorPoi.isOutdoor).to.be('boolean');
expect(typeof outdoorPoi.category).to.be('string');
expect(typeof outdoorPoi.infoHtml).to.be('string');
expect(typeof outdoorPoi.customFields).to.be('object');
});
it('Check outdoorPOI cartesiansCoordinate', () => {
testCartesianCoordinate(outdoorPoi.cartesianCoordinate);
});
it('Check outdoorPOI coordinate', () => {
testCoordinate(outdoorPoi.coordinate);
});
it('Check outdoorPOI position', () => {
testPoint(outdoorPoi.position);
});
});
describe('Test fetchEventsFromBuilding ->', () => {
it('Check returned value', () => {
expect(events).to.be.ok();
expect(events instanceof Array).to.be(true);
});
it('Check event', () => {
expect(event = events[0]);
expect(typeof event).to.be('object');
expect(typeof event.buildingIdentifier).to.be('number');
expect(typeof event.identifier).to.be('number');
expect(typeof event.floorIdentifier).to.be('number');
expect(typeof event.infoHtml).to.be('string');
expect(typeof event.conversionArea).to.be('object');
expect(typeof event.customFields).to.be('object');
expect(typeof event.radius).to.be('number');
expect(typeof event.x).to.be('number');
expect(typeof event.y).to.be('number');
expect(typeof event.name).to.be('string');
expect(typeof event.trigger).to.be('object');
expect(typeof event.conversion).to.be('object');
});
it('Check event conversionArea', () => {
testConversionArea(event.conversionArea);
});
it('Check event conversion', () => {
testCircle(event.conversion);
});
it('Check event trigger', () => {
testCircle(event.trigger);
});
});
describe('Test fetchPoiCategories ->', () => {
it('Check returned value', () => {
expect(poiCategories).to.be.ok();
expect(poiCategories instanceof Array).to.be(true);
});
it('Check POICategory', () => {
expect(poiCategory = poiCategories[0]);
expect(typeof poiCategory).to.be('object');
expect(typeof poiCategory.poiCategoryCode).to.be('string');
expect(typeof poiCategory.poiCategoryName).to.be('string');
expect(typeof poiCategory.icon_selected).to.be('string');
expect(typeof poiCategory.icon_unselected).to.be('string');
expect(typeof poiCategory.public).to.be('boolean');
});
});
describe('Test fetchMapFromFloor ->', () => {
it('Check map', () => {
expect(map).to.be.ok();
expect(typeof map.data).to.be('string');
});
});
describe('Test fetchPoiCategoryIconNormal ->', () => {
it('Check iconNormal', () => {
expect(iconNormal).to.be.ok();
expect(typeof iconNormal.data).to.be('string')
});
});
describe('Test fetchPoiCategoryIconSelected ->', () => {
it('Chek iconSelected', () => {
expect(iconSelected).to.be.ok();
expect(typeof iconSelected.data).to.be('string');
});
});
describe('Test requestDirections ->', () => {
it('Check returned value', () => {
expect(route).to.be.ok();
expect(typeof route).to.be('object');
});
it('Check route', () => {
expect(route.edges instanceof Array).to.be(true);
expect(typeof route.firstStep).to.be('object');
expect(typeof route.from).to.be('object');
expect(route.indications instanceof Array).to.be(true);
expect(typeof route.lastStep).to.be('object');
expect(route.nodes instanceof Array).to.be(true);
expect(route.points instanceof Array).to.be(true);
expect(route.segments instanceof Array).to.be(true);
expect(typeof route.TO).to.be('object');
expect(route.steps instanceof Array).to.be(true);
});
it('Check edge route', () => {
expect(edge = route.edges[0]);
expect(typeof edge).to.be('object');
testRouteStep(edge);
});
it('Check firstStep route', () => {
testRouteStep(route.firstStep);
});
it('Check from route', () => {
testPoint(route.from);
});
it('Check indication route', () => {
expect(indication = route.indications[0]);
expect(typeof indication).to.be('object');
testIndication(indication);
});
it('Check lastStep route', () => {
testRouteStep(route.lastStep);
});
it('Check node route', () => {
expect(node = route.nodes[0]);
expect(typeof node).to.be('object');
testPoint(node);
});
it('Check point route', () => {
expect(point = route.points[0]);
expect(typeof point).to.be('object');
testPoint(point);
});
it('Check segment route', () => {
expect(segment = route.segments[0]);
expect(typeof segment).to.be('object');
testSegment(segment);
});
it('Check TO route', () => {
testPoint(route.TO);
});
it('Check step route', () => {
expect(step = route.steps[0]);
expect(typeof step).to.be('object');
testRouteStep(step);
});
});
describe('Test startPositioning ->', () => {
it('Check returned value', () => {
expect(starting).to.be.ok();
expect(typeof starting).to.be('object');
});
it('Check starting', () => {
expect(typeof starting.statusName).to.be('string');
expect(typeof starting.statusOrdinal).to.be('number');
})
it('Check returned value', () => {
expect(preparePositioningModel).to.be.ok();
expect(typeof preparePositioningModel).to.be('object');
});
it('Check preparePositioningModel', () => {
expect(typeof preparePositioningModel.statusName).to.be('string');
expect(typeof preparePositioningModel.statusOrdinal).to.be('number');
});
it('Check returned value', () => {
expect(startingPositioning).to.be.ok();
expect(typeof startingPositioning).to.be('object');
});
it('Check startingPositioning', () => {
expect(typeof startingPositioning.statusName).to.be('string');
expect(typeof startingPositioning.statusOrdinal).to.be('number');
});
it('Check returned value', () => {
expect(calculating).to.be.ok();
expect(typeof calculating).to.be('object');
});
it('Check calculating', () => {
expect(typeof calculating.statusName).to.be('string');
expect(typeof calculating.statusOrdinal).to.be('number');
});
it('Check returned value', () => {
expect(position).to.be.ok();
expect(typeof position).to.be('object');
});
it('Check position', () => {
expect(typeof position.accuracy).to.be('number');
expect(typeof position.bearing).to.be('object');
expect(typeof position.bearingQuality).to.be('string');
expect(typeof position.buildingIdentifier).to.be('string');
expect(typeof position.cartesianBearing).to.be('object');
expect(typeof position.cartesianCoordinate).to.be('object');
expect(typeof position.coordinate).to.be('object');
expect(typeof position.floorIdentifier).to.be('string');
expect(typeof position.position).to.be('object');
expect(typeof position.provider).to.be('string');
expect(typeof position.quality).to.be('string');
expect(typeof position.hasBearing).to.be('boolean');
expect(typeof position.timestamp).to.be('number');
expect(typeof position.hasCartesianBearing).to.be('boolean');
expect(typeof position.isIndoor).to.be('boolean');
expect(typeof position.isOutdoor).to.be('boolean');
expect(typeof position.deviceId).to.be('string');
});
it('Check position bearing', () => {
testBearing(position.bearing);
});
it('Check position cartesianBearing', () => {
testBearing(position.cartesianBearing);
});
it('Check position cartesianCoordinate', () => {
testCartesianCoordinate(position.cartesianCoordinate);
});
it('Check position coordinate', () => {
testCoordinate(position.coordinate);
});
it('Check position position', () => {
testPoint(position.position);
});
})
const testBounds = bounds => {
expect(typeof bounds.northEast).to.be('object');
expect(typeof bounds.northWest).to.be('object');
expect(typeof bounds.southEast).to.be('object');
expect(typeof bounds.southWest).to.be('object');
testCoordinate(bounds.northEast);
testCoordinate(bounds.northWest);
testCoordinate(bounds.southEast);
testCoordinate(bounds.southWest);
}
const testCoordinate = coordinate => {
expect(typeof coordinate.latitude).to.be('number');
expect(typeof coordinate.longitude).to.be('number');
}
const testDimension = dimension => {
expect(typeof dimension.width).to.be('number');
expect(typeof dimension.height).to.be('number');
}
const testCartesianCoordinate = cartesianCoordinate => {
expect(typeof cartesianCoordinate.x).to.be('number');
expect(typeof cartesianCoordinate.y).to.be('number');
}
const testPoint = point => {
expect(typeof point.buildingIdentifier).to.be('string');
expect(typeof point.cartesianCoordinate).to.be('object');
expect(typeof point.coordinate).to.be('object');
expect(typeof point.floorIdentifier).to.be('string');
expect(typeof point.isIndoor).to.be('boolean');
expect(typeof point.isOutdoor).to.be('boolean');
testCartesianCoordinate(point.cartesianCoordinate);
testCoordinate(point.coordinate);
}
const testConversionArea = conversionArea => {
expect(typeof conversionArea.floorIdentifier).to.be('number');
expect(typeof conversionArea.topLeft).to.be('string');
expect(typeof conversionArea.topRight).to.be('string');
expect(typeof conversionArea.bottomLeft).to.be('string');
expect(typeof conversionArea.bottomRight).to.be('string');
}
const testCircle = circle => {
expect(typeof circle.radius).to.be('number');
expect(typeof circle.center).to.be('object');
testPoint(circle.center);
}
const testRouteStep = routeStep => {
expect(typeof routeStep.distance).to.be('number');
expect(typeof routeStep.distanceToGoal).to.be('number');
expect(typeof routeStep.from).to.be('object');
expect(typeof routeStep.id).to.be('number');
expect(typeof routeStep.TO).to.be('object');
expect(typeof routeStep.isFirst).to.be('boolean');
expect(typeof routeStep.isLast).to.be('boolean');
testPoint(routeStep.from);
testPoint(routeStep.TO);
}
const testIndication = indication => {
expect(typeof indication.distance).to.be('number');
expect(typeof indication.distanceToNextLevel).to.be('number');
expect(typeof indication.indicationType).to.be('string');
expect(typeof indication.orientation).to.be('number');
expect(typeof indication.orientationType).to.be('string');
expect(typeof indication.stepIdxDestination).to.be('number');
expect(typeof indication.stepIdxOrigin).to.be('number');
expect(typeof indication.neededLevelChange).to.be('boolean');
expect(typeof indication.humanReadableMessage).to.be('string');
}
const testSegment = segment => {
expect(typeof segment.floorIdentifier).to.be('string');
expect(segment.points instanceof Array).to.be(true);
}
const testBearing = bearing => {
expect(typeof bearing.degrees).to.be('number');
expect(typeof bearing.degreesClockwise).to.be('number');
expect(typeof bearing.radians).to.be('number');
expect(typeof bearing.radiansMinusPiPi).to.be('number');
}