public void AddMethod() { // create the interface AllJoyn.InterfaceDescription testIntf = null; Assert.Equal(AllJoyn.QStatus.OK, bus.CreateInterface(INTERFACE_NAME, out testIntf)); Assert.NotNull(testIntf); // Test adding a MethodCall Assert.Equal(AllJoyn.QStatus.OK, testIntf.AddMethod("ping", "s", "s", "in,out")); // Test adding a Signal status = testIntf.AddMethod("pong", "", "s", "pong-in", AllJoyn.InterfaceDescription.AnnotationFlags.Deprecated | AllJoyn.InterfaceDescription.AnnotationFlags.NoReply); Assert.Equal(AllJoyn.QStatus.OK, status); string expectedIntrospect = "<interface name=\"org.alljoyn.test.InterfaceDescriptionTest\">\n" + " <method name=\"ping\">\n" + " <arg name=\"in\" type=\"s\" direction=\"in\"/>\n" + " <arg name=\"out\" type=\"s\" direction=\"out\"/>\n" + " </method>\n" + " <method name=\"pong\">\n" + " <arg name=\"pong-in\" type=\"s\" direction=\"out\"/>\n" + " <annotation name=\"org.freedesktop.DBus.Deprecated\" value=\"true\"/>\n" + " <annotation name=\"org.freedesktop.DBus.Method.NoReply\" value=\"true\"/>\n" + " </method>\n" + "</interface>\n"; Assert.Equal(expectedIntrospect, testIntf.Introspect()); }
public void GetSignal() { // create the interface AllJoyn.InterfaceDescription testIntf = null; status = bus.CreateInterface(INTERFACE_NAME, out testIntf); Assert.Equal(AllJoyn.QStatus.OK, status); Assert.NotNull(testIntf); Assert.Equal(AllJoyn.QStatus.OK, testIntf.AddMethod("foo", "", "", "")); status = testIntf.AddSignal("chirp", "s", "data", AllJoyn.InterfaceDescription.AnnotationFlags.Default); Assert.Equal(AllJoyn.QStatus.OK, status); // Verify the signal AllJoyn.InterfaceDescription.Member signalMember = null; signalMember = testIntf.GetSignal("chirp"); Assert.NotNull(signalMember); Assert.Equal(testIntf, signalMember.Iface); Assert.Equal(AllJoyn.Message.Type.Signal, signalMember.MemberType); Assert.Equal("chirp", signalMember.Name); Assert.Equal("s", signalMember.Signature); Assert.Equal("", signalMember.ReturnSignature); Assert.Equal("data", signalMember.ArgNames); AllJoyn.InterfaceDescription.Member methodMember = null; methodMember = testIntf.GetSignal("foo"); //since "foo" is a method GetSignal should return null Assert.Null(methodMember); methodMember = testIntf.GetSignal("bar"); // "bar" is not a member of the interface it should return null Assert.Null(methodMember); }
public void GetMethod() { // create the interface AllJoyn.InterfaceDescription testIntf = null; status = bus.CreateInterface(INTERFACE_NAME, out testIntf); Assert.Equal(AllJoyn.QStatus.OK, status); Assert.NotNull(testIntf); // Test adding a MethodCall Assert.Equal(AllJoyn.QStatus.OK, testIntf.AddMethod("ping", "s", "s", "in,out")); Assert.Equal(AllJoyn.QStatus.OK, testIntf.AddSignal("foo", "", "")); // Verify the ping member AllJoyn.InterfaceDescription.Member pingMember = null; pingMember = testIntf.GetMethod("ping"); Assert.NotNull(pingMember); Assert.Equal(testIntf, pingMember.Iface); Assert.Equal(AllJoyn.Message.Type.MethodCall, pingMember.MemberType); Assert.Equal("ping", pingMember.Name); Assert.Equal("s", pingMember.Signature); Assert.Equal("s", pingMember.ReturnSignature); Assert.Equal("in,out", pingMember.ArgNames); AllJoyn.InterfaceDescription.Member fooMember = null; fooMember = testIntf.GetMethod("foo"); // since "foo" is a signal is should return null when using GetMethod Assert.Null(fooMember); fooMember = testIntf.GetMethod("bar"); // since "bar" is not a member of the interface it should be null Assert.Null(fooMember); }
public void pin_keyx() { ResetAuthFlags(); clientBus.ClearKeyStore(); PinKeyX_service_authlistener serviceAuthlistener = new PinKeyX_service_authlistener(this); Assert.Equal(AllJoyn.QStatus.OK, serviceBus.EnablePeerSecurity("ALLJOYN_PIN_KEYX", serviceAuthlistener, null, false)); serviceBus.ClearKeyStore(); Assert.Equal(AllJoyn.QStatus.OK, SetUpAuthService()); PinKeyX_client_authlistener clientAuthlistener = new PinKeyX_client_authlistener(this); Assert.Equal(AllJoyn.QStatus.OK, clientBus.EnablePeerSecurity("ALLJOYN_PIN_KEYX", clientAuthlistener, null, false)); clientBus.ClearKeyStore(); // create+activate the interface AllJoyn.QStatus status; AllJoyn.InterfaceDescription iFace = null; Assert.Equal(AllJoyn.QStatus.OK, clientBus.CreateInterface(INTERFACE_NAME, AllJoyn.InterfaceDescription.SecurityPolicy.Required, out iFace)); Assert.NotNull(iFace); Assert.Equal(AllJoyn.QStatus.OK, iFace.AddMethod("ping", "s", "s", "in,out")); iFace.Activate(); AllJoyn.ProxyBusObject proxyBusObject = new AllJoyn.ProxyBusObject(clientBus, WELLKNOWN_NAME, OBJECT_PATH, 0); Assert.NotNull(proxyBusObject); Assert.Equal(AllJoyn.QStatus.OK, proxyBusObject.AddInterface(iFace)); AllJoyn.MsgArg input = new AllJoyn.MsgArg("s", "AllJoyn"); AllJoyn.Message replyMsg = new AllJoyn.Message(clientBus); status = proxyBusObject.MethodCall(INTERFACE_NAME, "ping", input, replyMsg, 5000, 0); Assert.Equal(AllJoyn.QStatus.OK, status); Assert.Equal("AllJoyn", (string)replyMsg[0]); Assert.True(authflags.requestCreds_service); Assert.True(authflags.authComplete_serivce); Assert.True(authflags.requestCreds_client); Assert.True(authflags.authComplete_client); clientAuthlistener.Dispose(); serviceAuthlistener.Dispose(); busObject.Dispose(); proxyBusObject.Dispose(); Assert.Equal(AllJoyn.QStatus.OK, serviceBus.Stop()); Assert.Equal(AllJoyn.QStatus.OK, serviceBus.Join()); Assert.Equal(AllJoyn.QStatus.OK, clientBus.Stop()); Assert.Equal(AllJoyn.QStatus.OK, clientBus.Join()); serviceBus.Dispose(); clientBus.Dispose(); }
public void srp_keyx2() { ResetAuthFlags(); clientBus.ClearKeyStore(); SrpKeyx2_service_authlistener serviceAuthlistener = new SrpKeyx2_service_authlistener(this); Assert.Equal(AllJoyn.QStatus.OK, serviceBus.EnablePeerSecurity("ALLJOYN_SRP_KEYX", serviceAuthlistener, null, false)); serviceBus.ClearKeyStore(); Assert.Equal(AllJoyn.QStatus.OK, SetUpAuthService()); SrpKeyx2_client_authlistener clientAuthlistener = new SrpKeyx2_client_authlistener(this); Assert.Equal(AllJoyn.QStatus.OK, clientBus.EnablePeerSecurity("ALLJOYN_SRP_KEYX", clientAuthlistener, null, false)); clientBus.ClearKeyStore(); // create+activate the interface AllJoyn.QStatus status; AllJoyn.InterfaceDescription iFace = null; Assert.Equal(AllJoyn.QStatus.OK, clientBus.CreateInterface(INTERFACE_NAME, AllJoyn.InterfaceDescription.SecurityPolicy.Required, out iFace)); Assert.NotNull(iFace); Assert.Equal(AllJoyn.QStatus.OK, iFace.AddMethod("ping", "s", "s", "in,out")); iFace.Activate(); AllJoyn.ProxyBusObject proxyBusObject = new AllJoyn.ProxyBusObject(clientBus, WELLKNOWN_NAME, OBJECT_PATH, 0); Assert.NotNull(proxyBusObject); Assert.Equal(AllJoyn.QStatus.OK, proxyBusObject.AddInterface(iFace)); AllJoyn.MsgArg input = new AllJoyn.MsgArg("s", "AllJoyn"); AllJoyn.Message replyMsg = new AllJoyn.Message(clientBus); status = proxyBusObject.MethodCall(INTERFACE_NAME, "ping", input, replyMsg, 5000, 0); Assert.Equal(AllJoyn.QStatus.BUS_REPLY_IS_ERROR_MESSAGE, status); Assert.True(authflags.requestCreds_service); Assert.True(authflags.authComplete_serivce); Assert.True(authflags.authComplete_client); // Authentication complete can occure before the SecurityViolation callback // with authentication complete the MethodCall will return the BUS_REPLY_IS_ERROR_MESSAGE // and the code could check for the sercurityViolation_client before it is actually set // for this reason we need to wait for the flag to be set. Wait(TimeSpan.FromSeconds(5)); Assert.True(authflags.securityViolation_client); clientAuthlistener.Dispose(); serviceAuthlistener.Dispose(); busObject.Dispose(); proxyBusObject.Dispose(); }
public AuthListenerTest() { serviceBus = new AllJoyn.BusAttachment("AuthListenerTestService", false); Assert.Equal(AllJoyn.QStatus.OK, serviceBus.Start()); Assert.Equal(AllJoyn.QStatus.OK, serviceBus.Connect(AllJoynTestCommon.GetConnectSpec())); AllJoyn.InterfaceDescription service_intf = null; Assert.Equal(AllJoyn.QStatus.OK, serviceBus.CreateInterface(INTERFACE_NAME, AllJoyn.InterfaceDescription.SecurityPolicy.Required, out service_intf)); Assert.Equal(AllJoyn.QStatus.OK, service_intf.AddMethod("ping", "s", "s", "in,out")); service_intf.Activate(); clientBus = new AllJoyn.BusAttachment("AuthListenerTestClient", false); Assert.Equal(AllJoyn.QStatus.OK, clientBus.Start()); Assert.Equal(AllJoyn.QStatus.OK, clientBus.Connect(AllJoynTestCommon.GetConnectSpec())); }
public void GetMembers() { AllJoyn.QStatus status = AllJoyn.QStatus.FAIL; AllJoyn.BusAttachment bus = null; bus = new AllJoyn.BusAttachment("InterfaceDescriptionTest", true); Assert.NotNull(bus); // create the interface AllJoyn.InterfaceDescription testIntf = null; status = bus.CreateInterface(INTERFACE_NAME, out testIntf); Assert.Equal(AllJoyn.QStatus.OK, status); Assert.NotNull(testIntf); // Test adding a MethodCall Assert.Equal(AllJoyn.QStatus.OK, testIntf.AddMethod("one", "", "", "")); Assert.Equal(AllJoyn.QStatus.OK, testIntf.AddMethod("two", "", "", "")); Assert.Equal(AllJoyn.QStatus.OK, testIntf.AddMethod("three", "", "", "")); Assert.Equal(AllJoyn.QStatus.OK, testIntf.AddMethod("four", "", "", "")); Assert.Equal(AllJoyn.QStatus.OK, testIntf.AddMethod("five", "", "", "")); Assert.Equal(AllJoyn.QStatus.OK, testIntf.AddMethod("six", "", "", "")); Assert.Equal(AllJoyn.QStatus.OK, testIntf.AddMethod("seven", "", "", "")); Assert.Equal(AllJoyn.QStatus.OK, testIntf.AddSignal("eight", "", "")); Assert.Equal(AllJoyn.QStatus.OK, testIntf.AddSignal("nine", "", "")); Assert.Equal(AllJoyn.QStatus.OK, testIntf.AddSignal("ten", "", "")); AllJoyn.InterfaceDescription.Member[] members = testIntf.GetMembers(); Assert.Equal(10, members.Length); // This test assumes that the members are returned in alphabetic order // nothing states that the changes must be returned this way. Assert.Equal("eight", members[0].Name); Assert.Equal("five", members[1].Name); Assert.Equal("four", members[2].Name); Assert.Equal("nine", members[3].Name); Assert.Equal("one", members[4].Name); Assert.Equal("seven", members[5].Name); Assert.Equal("six", members[6].Name); Assert.Equal("ten", members[7].Name); Assert.Equal("three", members[8].Name); Assert.Equal("two", members[9].Name); }
public void InterfaceDescriptionEquals() { AllJoyn.BusAttachment servicebus = null; servicebus = new AllJoyn.BusAttachment("InterfaceDescriptionTest", true); Assert.NotNull(servicebus); // create the interface one AllJoyn.InterfaceDescription testIntf = null; Assert.Equal(AllJoyn.QStatus.OK, servicebus.CreateInterface(INTERFACE_NAME, out testIntf)); Assert.NotNull(testIntf); Assert.Equal(AllJoyn.QStatus.OK, testIntf.AddMethod("ping", "s", "s", "in,out")); Assert.Equal(AllJoyn.QStatus.OK, testIntf.AddSignal("chirp", "s", "chirp")); testIntf.Activate(); Assert.Equal(AllJoyn.QStatus.OK, servicebus.Start()); Assert.Equal(AllJoyn.QStatus.OK, servicebus.Connect(AllJoynTestCommon.GetConnectSpec())); AllJoyn.BusObject busObject = new AllJoyn.BusObject(OBJECT_PATH, false); Assert.Equal(AllJoyn.QStatus.OK, busObject.AddInterface(testIntf)); Assert.Equal(AllJoyn.QStatus.OK, servicebus.RegisterBusObject(busObject)); Assert.Equal(AllJoyn.QStatus.OK, servicebus.RequestName(WELLKNOWN_NAME, AllJoyn.DBus.NameFlags.AllowReplacement | AllJoyn.DBus.NameFlags.DoNotQueue | AllJoyn.DBus.NameFlags.ReplaceExisting)); AllJoyn.BusAttachment clientbus = null; clientbus = new AllJoyn.BusAttachment("InterfaceDescriptionTestclient", true); Assert.NotNull(clientbus); Assert.Equal(AllJoyn.QStatus.OK, clientbus.Start()); Assert.Equal(AllJoyn.QStatus.OK, clientbus.Connect(AllJoynTestCommon.GetConnectSpec())); AllJoyn.ProxyBusObject proxy = new AllJoyn.ProxyBusObject(clientbus, WELLKNOWN_NAME, OBJECT_PATH, 0); Assert.Equal(AllJoyn.QStatus.OK, proxy.IntrospectRemoteObject()); AllJoyn.InterfaceDescription testIntf2 = proxy.GetInterface(INTERFACE_NAME); Assert.NotNull(testIntf); // create the interface three AllJoyn.InterfaceDescription testIntf3 = null; Assert.Equal(AllJoyn.QStatus.OK, servicebus.CreateInterface(INTERFACE_NAME + ".three", out testIntf3)); Assert.NotNull(testIntf3); Assert.Equal(AllJoyn.QStatus.OK, testIntf3.AddMethod("ping", "s", "s", "in,out")); Assert.Equal(AllJoyn.QStatus.OK, testIntf3.AddMethod("pong", "s", "s", "in,out")); Assert.Equal(AllJoyn.QStatus.OK, testIntf3.AddSignal("chirp", "s", "chirp")); Assert.True(testIntf == testIntf2); Assert.True(testIntf.Equals(testIntf2)); Assert.True(testIntf.GetHashCode() == testIntf2.GetHashCode()); Assert.False(testIntf == testIntf3); Assert.False(testIntf.Equals(testIntf3)); Assert.False(testIntf.GetHashCode() == testIntf3.GetHashCode()); proxy.Dispose(); busObject.Dispose(); servicebus.Stop(); servicebus.Join(); clientbus.Stop(); clientbus.Join(); servicebus.Dispose(); clientbus.Dispose(); }
public void MethodNoInputParams() { AllJoyn.QStatus status = AllJoyn.QStatus.FAIL; // create+start+connect bus attachment AllJoyn.BusAttachment servicebus = null; servicebus = new AllJoyn.BusAttachment("BusObjectTestService", true); Assert.NotNull(servicebus); status = servicebus.Start(); Assert.Equal(AllJoyn.QStatus.OK, status); status = servicebus.Connect(AllJoynTestCommon.GetConnectSpec()); Assert.Equal(AllJoyn.QStatus.OK, status); // create+activate the interface AllJoyn.InterfaceDescription testIntf = null; status = servicebus.CreateInterface(INTERFACE_NAME, out testIntf); Assert.Equal(AllJoyn.QStatus.OK, status); Assert.NotNull(testIntf); status = testIntf.AddMember(AllJoyn.Message.Type.MethodCall, "ding", "", "s", "out"); Assert.Equal(AllJoyn.QStatus.OK, status); testIntf.Activate(); // register bus listener AllJoyn.BusListener testBusListener = new TestBusListener(this); servicebus.RegisterBusListener(testBusListener); // create the bus object // the dingBusObject constructor adds the interface & a handler for the ping method DingBusObject dingBusObject = new DingBusObject(servicebus, OBJECT_PATH); // register the bus object status = servicebus.RegisterBusObject(dingBusObject); Assert.Equal(AllJoyn.QStatus.OK, status); // request name nameOwnerChangedFlag = false; status = servicebus.RequestName(OBJECT_NAME, AllJoyn.DBus.NameFlags.ReplaceExisting | AllJoyn.DBus.NameFlags.DoNotQueue | AllJoyn.DBus.NameFlags.AllowReplacement); Assert.Equal(AllJoyn.QStatus.OK, status); Wait(MaxWaitTime); Assert.Equal(true, nameOwnerChangedFlag); /////////////////////////////////////////////////////////// // create the proxy bus object & call methods AllJoyn.BusAttachment bus = null; bus = new AllJoyn.BusAttachment("BusObjectTest", true); Assert.NotNull(bus); status = bus.Start(); Assert.Equal(AllJoyn.QStatus.OK, status); status = bus.Connect(AllJoynTestCommon.GetConnectSpec()); Assert.Equal(AllJoyn.QStatus.OK, status); // create+activate the interface AllJoyn.InterfaceDescription iFace = null; status = bus.CreateInterface(INTERFACE_NAME, out iFace); Assert.Equal(AllJoyn.QStatus.OK, status); Assert.NotNull(iFace); status = iFace.AddMethod("ding", "", "s", "in,out"); Assert.Equal(AllJoyn.QStatus.OK, status); iFace.Activate(); AllJoyn.ProxyBusObject proxyBusObject = new AllJoyn.ProxyBusObject(bus, OBJECT_NAME, OBJECT_PATH, 0); status = proxyBusObject.AddInterface(iFace); Assert.Equal(AllJoyn.QStatus.OK, status); AllJoyn.Message replyMsg = new AllJoyn.Message(bus); status = proxyBusObject.MethodCall(INTERFACE_NAME, "ding", AllJoyn.MsgArg.Zero, replyMsg, 5000, 0); Assert.Equal(AllJoyn.QStatus.OK, status); Assert.Equal("Hello from Ding.", (string)replyMsg[0]); //continue testing obsolete method calls till they are removed. #pragma warning disable 618 AllJoyn.Message replyMsg1 = new AllJoyn.Message(bus); status = proxyBusObject.MethodCallSynch(INTERFACE_NAME, "ding", AllJoyn.MsgArg.Zero, replyMsg1, 5000, 0); Assert.Equal(AllJoyn.QStatus.OK, status); Assert.Equal("Hello from Ding.", (string)replyMsg1[0]); AllJoyn.Message replyMsg2 = new AllJoyn.Message(bus); status = proxyBusObject.MethodCallSynch(INTERFACE_NAME, "ding", AllJoyn.MsgArg.Zero, replyMsg2, 5000, 0); Assert.Equal(AllJoyn.QStatus.OK, status); Assert.Equal("Hello from Ding.", (string)replyMsg2[0]); #pragma warning restore 618 dingBusObject.Dispose(); servicebus.Dispose(); // TODO: need to call dispose on proxyBusObject first otherwise you get an AccessViolation??? proxyBusObject.Dispose(); bus.Dispose(); }