UNPKG

node-alljoyn

Version:
91 lines (87 loc) 4.12 kB
/* * Copyright (c) 2011, AllSeen Alliance. All rights reserved. * * Permission to use, copy, modify, and/or distribute this software for any * purpose with or without fee is hereby granted, provided that the above * copyright notice and this permission notice appear in all copies. * * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ AsyncTestCase("SimpleTest", { _setUp: ondeviceready(function(callback) { var clientBusCreate = function(err) { assertFalsy(err); clientBus = new org.alljoyn.bus.BusAttachment(); clientBus.create(false, callback); }; serviceBus = new org.alljoyn.bus.BusAttachment(); serviceBus.create(false, clientBusCreate); }), tearDown: function() { clientBus.destroy(); serviceBus.destroy(); }, testSimple: function(queue) { queue.call(function(callbacks) { /* Create a Ping service attachment. */ var serviceBusCreateInterface = function(err) { assertFalsy(err); serviceBus.createInterface({ name: "org.alljoyn.bus.samples.simple.SimpleInterface", method: [ { name: 'Ping', signature: 's', returnSignature: 's', argNames: 'inStr,outStr' } ] }, callbacks.add(serviceBusRegisterBusObject)); }; var serviceBusRegisterBusObject = function(err) { assertFalsy(err); serviceBus.registerBusObject("/testobject", { "org.alljoyn.bus.samples.simple.SimpleInterface": { Ping: function(context, inStr) { context.reply(inStr); } } }, callbacks.add(serviceBusConnect)); }; var serviceBusConnect = function(err) { assertFalsy(err); serviceBus.connect(callbacks.add(clientBusConnect)); }; /* Create a Ping client attachment. */ var clientBusConnect = function(err) { assertFalsy(err); clientBus.connect(callbacks.add(getDbus)); }; /* * Now kick off the Ping. This needs to be synchronized to not Ping until the * service has acquired its name. */ var getDbus = function(err) { assertFalsy(err); serviceBus.getProxyBusObject("org.freedesktop.DBus/org/freedesktop/DBus", callbacks.add(requestName)); }; var requestName = function(err, dbus) { assertFalsy(err); dbus.methodCall("org.freedesktop.DBus", "RequestName", "org.alljoyn.bus.samples.simple", 0, callbacks.add(onRequestName)); }; var onRequestName = function(err, context, result) { assertFalsy(err); assertEquals(1, result); clientBus.getProxyBusObject("org.alljoyn.bus.samples.simple/testobject", callbacks.add(ping)); }; var ping = function(err, testobject) { assertFalsy(err); testobject.methodCall("org.alljoyn.bus.samples.simple.SimpleInterface", "Ping", "hello", callbacks.add(onPing)); }; var onPing = function(err, context, outStr) { assertFalsy(err); assertEquals("hello", outStr); }; this._setUp(callbacks.add(serviceBusCreateInterface)); }); } });