UNPKG

bmw-js

Version:

BMW javascript REST client for the BMW i3 hackathon.

92 lines (85 loc) 3.78 kB
MojioClient = require '../lib/nodejs/MojioClient' Observer = require '../lib/models/Observer' App = require '../lib/models/App' Mojio = require '../lib/models/Mojio' Vehicle = require '../lib/models/Vehicle' Event = require '../lib/models/Event' User = require '../lib/models/User' config = require './config/mojio-config.coffee' mojio_client = new MojioClient(config) assert = require('assert') testdata = require('./data/mojio-test-data') should = require('should') count = [0,0] observer = null theevent = null vehicle = null user = null describe 'Observer', -> before( (done) -> mojio_client.login(testdata.username, testdata.password, (error, result) -> (error==null).should.be.true done() ) ) # it 'Can Conditionally Observe Speed', (done) -> user = new User({}) user.authorization(mojio_client) user.query({}, (error, result) -> (error==null).should.be.true mojio_client.should.be.an.instanceOf(MojioClient) result.Objects.should.be.an.instanceOf(Array) instance.should.be.an.instanceOf(User) for instance in result.Objects user = result.Objects[0] mojio = new Mojio().mock() mojio.OwnerId = user.id mojio_client.post(mojio, (error, result) -> (error==null).should.be.true mojio = new Vehicle(result) vehicle = new Vehicle().mock() vehicle.MojioId = mojio._id vehicle.OwnerId = user._id vehicle.LastSpeed = 20.0; mojio_client.post(vehicle, (error, result) -> (error==null).should.be.true vehicle = new Vehicle(result) console.log("created vehicle"+vehicle) observer = new Observer( { ObserverType: "Speed", Status: "Approved", SpeedLow: 80.0, Name: "Test"+Math.random(), Subject: vehicle.model(), SubjectId: vehicle.id(), "Transports": "SignalR" } ) mojio_client.watch(observer, (entity) -> entity.should.be.an.instanceOf(Object) console.log("Observed change seen.") mojio_client.unobserve(observer, vehicle, null, null, (error, result) -> mojio_client.delete(vehicle, (error, result) -> (error==null).should.be.true console.log("Vehicle deleted.") done() ) ) , (error, result) -> result.should.be.an.instanceOf(Observer) result.Status.should.equal("Approved") vehicle.LastSpeed = 90.0 console.log("changing vehicle speed...") observer = result event = new Event({}) event.authorization(mojio_client) event.EventType = "TripEvent" event.VehicleId = vehicle._id event.MojioId = mojio._id event.Speed = 90.0 mojio_client.post(event, (error, result) -> (error==null).should.be.true console.log("Event at speed 90.0 added.") ) ) ) ) )