bmw-js
Version:
BMW javascript REST client for the BMW i3 hackathon.
136 lines (115 loc) • 5.25 kB
text/coffeescript
MojioClient = require '../lib/nodejs/MojioClient'
Vehicle = require '../lib/models/Vehicle'
Mojio = require '../lib/models/Mojio'
config = require './config/mojio-config.coffee'
mojio_client = new MojioClient(config)
assert = require('assert')
testdata = require('./data/mojio-test-data')
should = require('should')
testObject = null
describe 'Vehicle', ->
before( (done) ->
mojio_client.login(testdata.username, testdata.password, (error, result) ->
(error==null).should.be.true
done()
)
)
# test Vehicle
it 'can get Vehicles from Model', (done) ->
vehicle = new Vehicle({})
vehicle.authorization(mojio_client)
vehicle.get({}, (error, result) ->
(error==null).should.be.true
mojio_client.should.be.an.instanceOf(MojioClient)
result.Objects.should.be.an.instanceOf(Array)
if (result.Objects? and result.Objects instanceof (Array))
instance.should.be.an.instanceOf(Vehicle) for instance in result.Objects
testObject = instance # save for later reference.
else
result.should.be.an.instanceOf(Vehicle)
testObject = result
done()
)
it 'can get Vehicles', (done) ->
mojio_client.get(Vehicle, {}, (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(Vehicle) for instance in result.Objects
done()
)
it 'can create, find, save, and delete Vehicle', (done) ->
mojio_client.get(Mojio, {}, (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(Mojio) for instance in result.Objects
mojio = new Mojio(result.Objects[0])
vehicle = new Vehicle({
"Type": "Vehicle",
"MojioId": mojio.id(),
"Name": "String",
"VIN": "String",
"LicensePlate": "String"
})
vehicle.authorization(mojio_client)
vehicle._id = null;
mojio_client.post(vehicle, (error, result) ->
(error==null).should.be.true
vehicle = new Vehicle(result)
mojio_client.get(Vehicle, vehicle.id(), (error, result) ->
(error==null).should.be.true
mojio_client.should.be.an.instanceOf(MojioClient)
result.should.be.an.instanceOf(Vehicle)
mojio_client.put(result, (error, result) ->
(error==null).should.be.true
result.should.be.an.instanceOf(Object)
vehicle = new Vehicle(result)
mojio_client.delete(vehicle, (error, result) ->
(error==null).should.be.true
(result.result == "ok").should.be.true
done()
)
)
)
)
)
it 'can create, save, and delete Vehicle from model', (done) ->
mojio_client.get(Mojio, {}, (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(Mojio) for instance in result.Objects
mojio = new Mojio(result.Objects[0])
vehicle = new Vehicle({
"Type": "Vehicle",
"MojioId": mojio.id(),
"Name": "String",
"VIN": "String",
"LicensePlate": "String"
})
vehicle.authorization(mojio_client)
vehicle._id = null;
vehicle.post((error, result) ->
(error==null).should.be.true
result.should.be.an.instanceOf(Object)
vehicle = new Vehicle(result)
vehicle.authorization(mojio_client)
vehicle.get(vehicle.id(), (error, result) ->
result.should.be.an.instanceOf(Vehicle)
vehicle = new Vehicle(result)
vehicle.authorization(mojio_client)
vehicle.put((error, result) ->
(error==null).should.be.true
result.should.be.an.instanceOf(Object)
vehicle = new Vehicle(result)
vehicle.authorization(mojio_client)
vehicle.delete((error, result) ->
(error==null).should.be.true
(result.result == "ok").should.be.true
done()
)
)
)
)
)