public void IsSecure_DepricatedCreateInterface() { AllJoyn.QStatus status = AllJoyn.QStatus.FAIL; AllJoyn.BusAttachment bus = null; bus = new AllJoyn.BusAttachment("InterfaceDescriptionTest", true); Assert.NotNull(bus); // create an insecure interface AllJoyn.InterfaceDescription testIntf = null; status = bus.CreateInterface(INTERFACE_NAME, false, out testIntf); Assert.Equal(AllJoyn.QStatus.OK, status); Assert.NotNull(testIntf); Assert.Equal(false, testIntf.IsSecure); bus.DeleteInterface(testIntf); // create a secure interface status = bus.CreateInterface(INTERFACE_NAME, true, out testIntf); Assert.Equal(AllJoyn.QStatus.OK, status); Assert.NotNull(testIntf); Assert.Equal(true, testIntf.IsSecure); bus.Dispose(); }
public void srp_keyx() { ResetAuthFlags(); clientBus.ClearKeyStore(); SrpKeyx_service_authlistener serviceAuthlistener = new SrpKeyx_service_authlistener(this); Assert.Equal(AllJoyn.QStatus.OK, serviceBus.EnablePeerSecurity("ALLJOYN_SRP_KEYX", serviceAuthlistener, null, false)); serviceBus.ClearKeyStore(); Assert.Equal(AllJoyn.QStatus.OK, SetUpAuthService()); SrpKeyx_client_authlistener clientAuthlistener = new SrpKeyx_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.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 Activate() { 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 status = testIntf.AddMember(AllJoyn.Message.Type.MethodCall, "ping", "s", "s", "in,out", AllJoyn.InterfaceDescription.AnnotationFlags.Default); Assert.Equal(AllJoyn.QStatus.OK, status); // Test adding a Signal status = testIntf.AddMember(AllJoyn.Message.Type.Signal, "chirp", "", "s", "chirp", AllJoyn.InterfaceDescription.AnnotationFlags.Default); Assert.Equal(AllJoyn.QStatus.OK, status); // activate the interface testIntf.Activate(); /* once the interface has been activated we should not be able to add new members */ status = testIntf.AddMember(AllJoyn.Message.Type.MethodCall, "pong", "s", "s", "in,out", AllJoyn.InterfaceDescription.AnnotationFlags.Default); Assert.Equal(AllJoyn.QStatus.BUS_INTERFACE_ACTIVATED, status); bus.Dispose(); }
public void AddSignal() { 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); status = testIntf.AddSignal("signal1", "s", "data", AllJoyn.InterfaceDescription.AnnotationFlags.Default); Assert.Equal(AllJoyn.QStatus.OK, status); // Verify the signal AllJoyn.InterfaceDescription.Member signalMember = null; signalMember = testIntf.GetMember("signal1"); Assert.NotNull(signalMember); Assert.Equal(testIntf, signalMember.Iface); Assert.Equal(AllJoyn.Message.Type.Signal, signalMember.MemberType); Assert.Equal("signal1", signalMember.Name); Assert.Equal("s", signalMember.Signature); Assert.Equal("", signalMember.ReturnSignature); Assert.Equal("data", signalMember.ArgNames); //TODO add in code to use new annotation methods bus.Dispose(); }
public void RegisterUnregisterSessionlessSignals() { AllJoyn.InterfaceDescription testIntf; Assert.Equal(AllJoyn.QStatus.OK, bus.CreateInterface("org.alljoyn.test.signalstest", out testIntf)); Assert.Equal(AllJoyn.QStatus.OK, testIntf.AddSignal("testSignal", "s", "newName")); testIntf.Activate(); TestBusObject testObj = new TestBusObject("/org/alljoyn/test/signal"); Assert.Equal(AllJoyn.QStatus.OK, testObj.AddInterface(testIntf)); Assert.Equal(AllJoyn.QStatus.OK, bus.RegisterBusObject(testObj)); AllJoyn.InterfaceDescription.Member mySignalMember = testIntf.GetMember("testSignal"); Assert.Equal(AllJoyn.QStatus.OK, bus.AddMatch("type='signal',sessionless='t',interface='org.alljoyn.test.signalstest,member='testSignal'")); AllJoyn.Message msg = new AllJoyn.Message(bus); AllJoyn.MsgArg arg = new AllJoyn.MsgArg(); Assert.Equal(AllJoyn.QStatus.OK, arg.Set("s", "AllJoyn")); Assert.Equal(AllJoyn.QStatus.OK, testObj.SendTestSignal("", 0, mySignalMember, arg, 0, AllJoyn.ALLJOYN_FLAG_SESSIONLESS, msg)); Assert.Equal(AllJoyn.QStatus.OK, testObj.CancelSessionlessMessage(msg.CallSerial)); Assert.Equal(AllJoyn.QStatus.OK, testObj.SendTestSignal("", 0, mySignalMember, arg, 0, AllJoyn.ALLJOYN_FLAG_SESSIONLESS, msg)); Assert.Equal(AllJoyn.QStatus.OK, testObj.CancelSessionlessMessage(msg)); }
public void PropertyAnnotations() { 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); status = testIntf.AddProperty("prop", "s", AllJoyn.InterfaceDescription.AccessFlags.Read); Assert.Equal(AllJoyn.QStatus.OK, status); status = testIntf.AddPropertyAnnotation("prop", "org.alljoyn.test.annotation.one", "here"); Assert.Equal(AllJoyn.QStatus.OK, status); status = testIntf.AddPropertyAnnotation("prop", "org.alljoyn.test.annotation.two", "lies"); Assert.Equal(AllJoyn.QStatus.OK, status); status = testIntf.AddPropertyAnnotation("prop", "org.alljoyn.test.annotation.three", "some"); Assert.Equal(AllJoyn.QStatus.OK, status); status = testIntf.AddPropertyAnnotation("prop", "org.alljoyn.test.annotation.four", "amazing"); Assert.Equal(AllJoyn.QStatus.OK, status); status = testIntf.AddPropertyAnnotation("prop", "org.alljoyn.test.annotation.five", "treasure"); Assert.Equal(AllJoyn.QStatus.OK, status); // activate the interface testIntf.Activate(); AllJoyn.InterfaceDescription.Property property = testIntf.GetProperty("prop"); Assert.Equal("prop", property.Name); Assert.Equal("s", property.Signature); Assert.Equal(AllJoyn.InterfaceDescription.AccessFlags.Read, property.Access); string value = ""; Assert.True(testIntf.GetPropertyAnnotation("prop", "org.alljoyn.test.annotation.one", ref value)); Assert.Equal("here", value); Assert.True(property.GetAnnotation("org.alljoyn.test.annotation.two", ref value)); Assert.Equal("lies", value); Dictionary <string, string> annotations = property.GetAnnotations(); Assert.Equal(5, annotations.Count); Assert.True(annotations.TryGetValue("org.alljoyn.test.annotation.one", out value)); Assert.Equal("here", value); Assert.True(annotations.TryGetValue("org.alljoyn.test.annotation.two", out value)); Assert.Equal("lies", value); Assert.True(annotations.TryGetValue("org.alljoyn.test.annotation.three", out value)); Assert.Equal("some", value); Assert.True(annotations.TryGetValue("org.alljoyn.test.annotation.four", out value)); Assert.Equal("amazing", value); Assert.True(annotations.TryGetValue("org.alljoyn.test.annotation.five", out value)); Assert.Equal("treasure", value); bus.Dispose(); }
public void HasMember() { 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 status = testIntf.AddMember(AllJoyn.Message.Type.MethodCall, "ping", "s", "s", "in,out", AllJoyn.InterfaceDescription.AnnotationFlags.Default); Assert.Equal(AllJoyn.QStatus.OK, status); // Test adding a Signal status = testIntf.AddMember(AllJoyn.Message.Type.Signal, "chirp", "", "s", "chirp", AllJoyn.InterfaceDescription.AnnotationFlags.Default); Assert.Equal(AllJoyn.QStatus.OK, status); Assert.Equal(true, testIntf.HasMember("ping", "s", "s")); Assert.Equal(true, testIntf.HasMember("chirp", "", "s")); /* * expected to be false even though the members exist the signatures do not * match what is expected. */ Assert.Equal(false, testIntf.HasMember("ping", "i", "s")); Assert.Equal(false, testIntf.HasMember("chirp", "b", null)); Assert.Equal(false, testIntf.HasMember("invalid", "s", null)); bus.Dispose(); }
public void HasProperty() { 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); status = testIntf.AddProperty("prop1", "s", AllJoyn.InterfaceDescription.AccessFlags.Read); Assert.Equal(AllJoyn.QStatus.OK, status); status = testIntf.AddProperty("prop2", "i", AllJoyn.InterfaceDescription.AccessFlags.Write); Assert.Equal(AllJoyn.QStatus.OK, status); status = testIntf.AddProperty("prop3", "u", AllJoyn.InterfaceDescription.AccessFlags.ReadWrite); Assert.Equal(AllJoyn.QStatus.OK, status); // check for the properties Assert.Equal(true, testIntf.HasProperty("prop1")); Assert.Equal(true, testIntf.HasProperty("prop2")); Assert.Equal(true, testIntf.HasProperty("prop3")); Assert.Equal(false, testIntf.HasProperty("invalid_prop")); bus.Dispose(); }
public void IsSecure() { AllJoyn.QStatus status = AllJoyn.QStatus.FAIL; AllJoyn.BusAttachment bus = null; bus = new AllJoyn.BusAttachment("InterfaceDescriptionTest", true); Assert.NotNull(bus); // create an insecure interface AllJoyn.InterfaceDescription testIntf = null; status = bus.CreateInterface(INTERFACE_NAME, out testIntf); Assert.Equal(AllJoyn.QStatus.OK, status); Assert.NotNull(testIntf); Assert.Equal(false, testIntf.IsSecure); bus.DeleteInterface(testIntf); // create a secure interface status = bus.CreateInterface(INTERFACE_NAME, AllJoyn.InterfaceDescription.SecurityPolicy.Inherit, out testIntf); Assert.Equal(AllJoyn.QStatus.OK, status); Assert.NotNull(testIntf); Assert.Equal(false, testIntf.IsSecure); Assert.Equal(AllJoyn.InterfaceDescription.SecurityPolicy.Inherit, testIntf.GetSecurityPolicy); bus.DeleteInterface(testIntf); // create a secure interface status = bus.CreateInterface(INTERFACE_NAME, AllJoyn.InterfaceDescription.SecurityPolicy.Off, out testIntf); Assert.Equal(AllJoyn.QStatus.OK, status); Assert.NotNull(testIntf); Assert.Equal(false, testIntf.IsSecure); Assert.Equal(AllJoyn.InterfaceDescription.SecurityPolicy.Off, testIntf.GetSecurityPolicy); bus.DeleteInterface(testIntf); // create a secure interface status = bus.CreateInterface(INTERFACE_NAME, AllJoyn.InterfaceDescription.SecurityPolicy.Required, out testIntf); Assert.Equal(AllJoyn.QStatus.OK, status); Assert.NotNull(testIntf); Assert.Equal(true, testIntf.IsSecure); Assert.Equal(AllJoyn.InterfaceDescription.SecurityPolicy.Required, testIntf.GetSecurityPolicy); bus.Dispose(); }
public void SignalAnnotations() { 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 Signal status = testIntf.AddMember(AllJoyn.Message.Type.Signal, "chirp", "", "s", "chirp", AllJoyn.InterfaceDescription.AnnotationFlags.Default); Assert.Equal(AllJoyn.QStatus.OK, status); status = testIntf.AddMemberAnnotation("chirp", "org.alljoyn.test.annotation.one", "here"); Assert.Equal(AllJoyn.QStatus.OK, status); status = testIntf.AddMemberAnnotation("chirp", "org.alljoyn.test.annotation.two", "lies"); Assert.Equal(AllJoyn.QStatus.OK, status); status = testIntf.AddMemberAnnotation("chirp", "org.alljoyn.test.annotation.three", "some"); Assert.Equal(AllJoyn.QStatus.OK, status); status = testIntf.AddMemberAnnotation("chirp", "org.alljoyn.test.annotation.four", "amazing"); Assert.Equal(AllJoyn.QStatus.OK, status); status = testIntf.AddMemberAnnotation("chirp", "org.alljoyn.test.annotation.five", "treasure"); Assert.Equal(AllJoyn.QStatus.OK, status); // activate the interface testIntf.Activate(); string value = ""; testIntf.GetMemberAnnotation("chirp", "org.alljoyn.test.annotation.one", ref value); Assert.Equal("here", value); AllJoyn.InterfaceDescription.Member signal = testIntf.GetMember("chirp"); Assert.True(signal.GetAnnotation("org.alljoyn.test.annotation.two", ref value)); Assert.Equal("lies", value); Dictionary <string, string> annotations = signal.GetAnnotations(); Assert.Equal(5, annotations.Count); Assert.True(annotations.TryGetValue("org.alljoyn.test.annotation.one", out value)); Assert.Equal("here", value); Assert.True(annotations.TryGetValue("org.alljoyn.test.annotation.two", out value)); Assert.Equal("lies", value); Assert.True(annotations.TryGetValue("org.alljoyn.test.annotation.three", out value)); Assert.Equal("some", value); Assert.True(annotations.TryGetValue("org.alljoyn.test.annotation.four", out value)); Assert.Equal("amazing", value); Assert.True(annotations.TryGetValue("org.alljoyn.test.annotation.five", out value)); Assert.Equal("treasure", value); bus.Dispose(); }
public BasicClient() { // Create message bus sMsgBus = new AllJoyn.BusAttachment("myApp", true); // Add org.alljoyn.Bus.method_sample interface AllJoyn.InterfaceDescription testIntf; AllJoyn.QStatus status = sMsgBus.CreateInterface(INTERFACE_NAME, false, out testIntf); if (status) { Console.WriteLine("Client Interface Created."); testIntf.AddMember(AllJoyn.Message.Type.MethodCall, "cat", "ss", "s", "inStr1,inStr2,outStr"); testIntf.Activate(); } else { Console.WriteLine("Client Failed to create interface 'org.alljoyn.Bus.method_sample'"); } // Start the msg bus if (status) { status = sMsgBus.Start(); if (status) { Console.WriteLine("Client BusAttachment started."); } else { Console.WriteLine("Client BusAttachment.Start failed."); } } // Connect to the bus if (status) { status = sMsgBus.Connect(connectArgs); if (status) { Console.WriteLine("Client BusAttchement connected to " + connectArgs); } else { Console.WriteLine("Client BusAttachment::Connect(" + connectArgs + ") failed."); } } // Create a bus listener sBusListener = new MyBusListener(); if (status) { sMsgBus.RegisterBusListener(sBusListener); Console.WriteLine("Client BusListener Registered."); } }
public void GetMember() { 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 status = testIntf.AddMember(AllJoyn.Message.Type.MethodCall, "ping", "s", "s", "in,out", AllJoyn.InterfaceDescription.AnnotationFlags.Default); Assert.Equal(AllJoyn.QStatus.OK, status); // Test adding a Signal status = testIntf.AddMember(AllJoyn.Message.Type.Signal, "chirp", "", "s", "chirp", AllJoyn.InterfaceDescription.AnnotationFlags.Default); Assert.Equal(AllJoyn.QStatus.OK, status); // Verify the ping member AllJoyn.InterfaceDescription.Member pingMember = null; pingMember = testIntf.GetMember("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); //TODO add in code to use new annotation methods //Assert.Equal(AllJoyn.InterfaceDescription.AnnotationFlags.Default, pingMember.Annotation); // Verify the chirp member AllJoyn.InterfaceDescription.Member chirpMember = null; chirpMember = testIntf.GetMember("chirp"); Assert.NotNull(chirpMember); Assert.Equal(testIntf, chirpMember.Iface); Assert.Equal(AllJoyn.Message.Type.Signal, chirpMember.MemberType); Assert.Equal("chirp", chirpMember.Name); Assert.Equal("", chirpMember.Signature); Assert.Equal("s", chirpMember.ReturnSignature); Assert.Equal("chirp", chirpMember.ArgNames); //TODO add in code to use new annotation methods //Assert.Equal(AllJoyn.InterfaceDescription.AnnotationFlags.Default, chirpMember.Annotation); bus.Dispose(); }
public void CreateInterface() { AllJoyn.QStatus status = AllJoyn.QStatus.FAIL; AllJoyn.BusAttachment bus = null; bus = new AllJoyn.BusAttachment("BusAttachmentTest", true); Assert.NotNull(bus); AllJoyn.InterfaceDescription testIntf = null; status = bus.CreateInterface("org.alljoyn.test.BusAttachment", out testIntf); Assert.Equal(AllJoyn.QStatus.OK, status); Assert.NotNull(testIntf); // TODO: move these into a teardown method? bus.Dispose(); }
public void AddInterface() { AllJoyn.InterfaceDescription testIntf = null; Assert.Equal(AllJoyn.QStatus.OK, busAttachment.CreateInterface(INTERFACE_NAME, out testIntf)); Assert.NotNull(testIntf); Assert.Equal(AllJoyn.QStatus.OK, testIntf.AddMember(AllJoyn.Message.Type.MethodCall, "ping", "s", "s", "in,out")); testIntf.Activate(); proxyBusObject = new AllJoyn.ProxyBusObject(busAttachment, "org.alljoyn.Bus", "/org/alljoyn/Bus", 0); Assert.NotNull(proxyBusObject); Assert.Equal(AllJoyn.QStatus.OK, proxyBusObject.AddInterface(testIntf)); Assert.True(proxyBusObject.ImplementsInterface(INTERFACE_NAME)); }
public void HasProperties() { 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); /* * At this point this is an empty interface the call to hasproperties should * return false. */ Assert.False(testIntf.HasProperties); status = testIntf.AddMember(AllJoyn.Message.Type.MethodCall, "ping", "s", "s", "in,out", AllJoyn.InterfaceDescription.AnnotationFlags.Default); Assert.Equal(AllJoyn.QStatus.OK, status); /* * At this point the interface only contains a method call the call to * hasproperties should return false. */ Assert.False(testIntf.HasProperties); status = testIntf.AddProperty("prop1", "s", AllJoyn.InterfaceDescription.AccessFlags.Read); Assert.Equal(AllJoyn.QStatus.OK, status); /* * At this point the interface only contains a property the call to * hasproperties should return true. */ Assert.True(testIntf.HasProperties); status = testIntf.AddProperty("prop2", "i", AllJoyn.InterfaceDescription.AccessFlags.Write); Assert.Equal(AllJoyn.QStatus.OK, status); status = testIntf.AddProperty("prop3", "u", AllJoyn.InterfaceDescription.AccessFlags.ReadWrite); Assert.Equal(AllJoyn.QStatus.OK, status); /* * At this point the interface only contains multiple properties the call to * hasproperties should return true. */ Assert.True(testIntf.HasProperties); bus.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 GetName() { 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); Assert.Equal(INTERFACE_NAME, testIntf.Name); bus.Dispose(); }
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 GetMethod() { 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("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); bus.Dispose(); }
public void RegisterUnregisterSessionlessSignals() { AllJoyn.QStatus status = AllJoyn.QStatus.FAIL; // create+start+connect bus attachment AllJoyn.BusAttachment bus = null; bus = new AllJoyn.BusAttachment("SignalsTest", true); Assert.NotNull(bus); status = bus.Start(); Assert.Equal(AllJoyn.QStatus.OK, status); status = bus.Connect(AllJoynTestCommon.GetConnectSpec()); Assert.Equal(AllJoyn.QStatus.OK, status); AllJoyn.InterfaceDescription testIntf; Assert.Equal(AllJoyn.QStatus.OK, bus.CreateInterface("org.alljoyn.test.signalstest", out testIntf)); Assert.Equal(AllJoyn.QStatus.OK, testIntf.AddSignal("testSignal", "s", "newName")); testIntf.Activate(); TestBusObject testObj = new TestBusObject("/org/alljoyn/test/signal"); Assert.Equal(AllJoyn.QStatus.OK, testObj.AddInterface(testIntf)); Assert.Equal(AllJoyn.QStatus.OK, bus.RegisterBusObject(testObj)); AllJoyn.InterfaceDescription.Member mySignalMember = testIntf.GetMember("testSignal"); Assert.Equal(AllJoyn.QStatus.OK, bus.AddMatch("type='signal',sessionless='t',interface='org.alljoyn.test.signalstest,member='testSignal'")); AllJoyn.Message msg = new AllJoyn.Message(bus); AllJoyn.MsgArg arg = new AllJoyn.MsgArg(); Assert.Equal(AllJoyn.QStatus.OK, arg.Set("s", "AllJoyn")); Assert.Equal(AllJoyn.QStatus.OK, testObj.SendTestSignal("", 0, mySignalMember, arg, 0, AllJoyn.ALLJOYN_FLAG_SESSIONLESS, msg)); Assert.Equal(AllJoyn.QStatus.OK, testObj.CancelSessionlessMessage(msg.CallSerial)); Assert.Equal(AllJoyn.QStatus.OK, testObj.SendTestSignal("", 0, mySignalMember, arg, 0, AllJoyn.ALLJOYN_FLAG_SESSIONLESS, msg)); Assert.Equal(AllJoyn.QStatus.OK, testObj.CancelSessionlessMessage(msg)); }
public void GetSignal() { 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); 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); bus.Dispose(); }
public void GetProperty() { 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); status = testIntf.AddProperty("prop1", "s", AllJoyn.InterfaceDescription.AccessFlags.Read); Assert.Equal(AllJoyn.QStatus.OK, status); status = testIntf.AddProperty("prop2", "i", AllJoyn.InterfaceDescription.AccessFlags.Write); Assert.Equal(AllJoyn.QStatus.OK, status); status = testIntf.AddProperty("prop3", "u", AllJoyn.InterfaceDescription.AccessFlags.ReadWrite); Assert.Equal(AllJoyn.QStatus.OK, status); AllJoyn.InterfaceDescription.Property prop1 = testIntf.GetProperty("prop1"); Assert.Equal("prop1", prop1.Name); Assert.Equal("s", prop1.Signature); Assert.Equal(AllJoyn.InterfaceDescription.AccessFlags.Read, prop1.Access); AllJoyn.InterfaceDescription.Property prop2 = testIntf.GetProperty("prop2"); Assert.Equal("prop2", prop2.Name); Assert.Equal("i", prop2.Signature); Assert.Equal(AllJoyn.InterfaceDescription.AccessFlags.Write, prop2.Access); AllJoyn.InterfaceDescription.Property prop3 = testIntf.GetProperty("prop3"); Assert.Equal("prop3", prop3.Name); Assert.Equal("u", prop3.Signature); Assert.Equal(AllJoyn.InterfaceDescription.AccessFlags.ReadWrite, prop3.Access); bus.Dispose(); }
public void AddMember() { 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 status = testIntf.AddMember(AllJoyn.Message.Type.MethodCall, "ping", "s", "s", "in,out", AllJoyn.InterfaceDescription.AnnotationFlags.Default); Assert.Equal(AllJoyn.QStatus.OK, status); // Test adding a Signal status = testIntf.AddMember(AllJoyn.Message.Type.Signal, "chirp", "", "s", "chirp", AllJoyn.InterfaceDescription.AnnotationFlags.Default); Assert.Equal(AllJoyn.QStatus.OK, status); bus.Dispose(); }
public void AddMethod() { 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; 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()); bus.Dispose(); }
public void GetProperties() { AllJoyn.BusAttachment bus = null; bus = new AllJoyn.BusAttachment("InterfaceDescriptionTest", true); Assert.NotNull(bus); // create the interface AllJoyn.InterfaceDescription testIntf = null; Assert.Equal(AllJoyn.QStatus.OK, bus.CreateInterface(INTERFACE_NAME, out testIntf)); Assert.NotNull(testIntf); Assert.Equal(AllJoyn.QStatus.OK, testIntf.AddProperty("prop1", "s", AllJoyn.InterfaceDescription.AccessFlags.Read)); Assert.Equal(AllJoyn.QStatus.OK, testIntf.AddProperty("prop2", "i", AllJoyn.InterfaceDescription.AccessFlags.Write)); Assert.Equal(AllJoyn.QStatus.OK, testIntf.AddProperty("prop3", "u", AllJoyn.InterfaceDescription.AccessFlags.ReadWrite)); AllJoyn.InterfaceDescription.Property[] properties = testIntf.GetProperties(); Assert.Equal(3, properties.Length); // This assumes that the properties are returned in alphabetic order // nothing states that the properties must be returned this way. Assert.Equal("prop1", properties[0].Name); Assert.Equal("prop2", properties[1].Name); Assert.Equal("prop3", properties[2].Name); }
public BasicServer() { // Create message bus msgBus = new AllJoyn.BusAttachment("myApp", true); // Add org.alljoyn.Bus.method_sample interface AllJoyn.QStatus status = msgBus.CreateInterface(INTERFACE_NAME, false, out testIntf); if (status) { Console.WriteLine("Server Interface Created."); testIntf.AddMember(AllJoyn.Message.Type.MethodCall, "cat", "ss", "s", "inStr1,inStr2,outStr"); testIntf.Activate(); } else { Console.WriteLine("Failed to create interface 'org.alljoyn.Bus.method_sample'"); } // Create a bus listener busListener = new MyBusListener(); if (status) { msgBus.RegisterBusListener(busListener); Console.WriteLine("Server BusListener Registered."); } // Set up bus object testObj = new TestBusObject(msgBus, SERVICE_PATH); // Start the msg bus if (status) { status = msgBus.Start(); if (status) { Console.WriteLine("Server BusAttachment started."); msgBus.RegisterBusObject(testObj); status = msgBus.Connect(connectArgs); if (status) { Console.WriteLine("Server BusAttchement connected to " + connectArgs); } else { Console.WriteLine("Server BusAttachment::Connect(" + connectArgs + ") failed."); } } else { Console.WriteLine("Server BusAttachment.Start failed."); } } // Request name if (status) { status = msgBus.RequestName(SERVICE_NAME, AllJoyn.DBus.NameFlags.ReplaceExisting | AllJoyn.DBus.NameFlags.DoNotQueue); if (!status) { Console.WriteLine("Server RequestName({0}) failed (status={1})", SERVICE_NAME, status); } } // Create session AllJoyn.SessionOpts opts = new AllJoyn.SessionOpts(AllJoyn.SessionOpts.TrafficType.Messages, false, AllJoyn.SessionOpts.ProximityType.Any, AllJoyn.TransportMask.Any); if (status) { ushort sessionPort = SERVICE_PORT; sessionPortListener = new MySessionPortListener(); status = msgBus.BindSessionPort(ref sessionPort, opts, sessionPortListener); if (!status || sessionPort != SERVICE_PORT) { Console.WriteLine("Server BindSessionPort failed ({0})", status); } } // Advertise name if (status) { status = msgBus.AdvertiseName(SERVICE_NAME, opts.Transports); if (!status) { Console.WriteLine("Server Failed to advertise name {0} ({1})", SERVICE_NAME, status); } } }
public static void Main(string[] args) { Console.WriteLine("AllJoyn Library version: " + AllJoyn.GetVersion()); Console.WriteLine("AllJoyn Library buildInfo: " + AllJoyn.GetBuildInfo()); // Create message bus sMsgBus = new AllJoyn.BusAttachment("myApp", true); // Add org.alljoyn.Bus.method_sample interface AllJoyn.InterfaceDescription testIntf; AllJoyn.QStatus status = sMsgBus.CreateInterface(INTERFACE_NAME, out testIntf); if (status) { Console.WriteLine("Interface Created."); testIntf.AddMember(AllJoyn.Message.Type.MethodCall, "cat", "ss", "s", "inStr1,inStr2,outStr"); testIntf.Activate(); } else { Console.WriteLine("Failed to create interface 'org.alljoyn.Bus.method_sample'"); } // Start the msg bus if (status) { status = sMsgBus.Start(); if (status) { Console.WriteLine("BusAttachment started."); } else { Console.WriteLine("BusAttachment.Start failed."); } } // Connect to the bus if (status) { for (int i = 0; i < connectArgs.Length; ++i) { status = sMsgBus.Connect(connectArgs[i]); if (status) { Console.WriteLine("BusAttchement.Connect(" + connectArgs[i] + ") SUCCEDED."); break; } else { Console.WriteLine("BusAttachment.Connect(" + connectArgs[i] + ") failed."); } } if (!status) { Console.WriteLine("BusAttachment.Connect failed."); } } // Create a bus listener sBusListener = new MyBusListener(); if (status) { sMsgBus.RegisterBusListener(sBusListener); Console.WriteLine("BusListener Registered."); } // Begin discovery on the well-known name of the service to be called if (status) { status = sMsgBus.FindAdvertisedName(SERVICE_NAME); if (!status) { Console.WriteLine("org.alljoyn.Bus.FindAdvertisedName failed."); } } // Wait for join session to complete while (sJoinComplete == false) { System.Threading.Thread.Sleep(1); } if (status) { using (AllJoyn.ProxyBusObject remoteObj = new AllJoyn.ProxyBusObject(sMsgBus, SERVICE_NAME, SERVICE_PATH, sSessionId)) { AllJoyn.InterfaceDescription alljoynTestIntf = sMsgBus.GetInterface(INTERFACE_NAME); if (alljoynTestIntf == null) { throw new Exception("Failed to get test interface."); } remoteObj.AddInterface(alljoynTestIntf); AllJoyn.Message reply = new AllJoyn.Message(sMsgBus); AllJoyn.MsgArg inputs = new AllJoyn.MsgArg(2); inputs[0] = "Hello "; inputs[1] = "World!"; status = remoteObj.MethodCall(SERVICE_NAME, "cat", inputs, reply, 5000, 0); if (status) { Console.WriteLine("{0}.{1} (path={2}) returned \"{3}\"", SERVICE_NAME, "cat", SERVICE_PATH, (string)reply[0]); } else { Console.WriteLine("MethodCall on {0}.{1} failed", SERVICE_NAME, "cat"); } } } // Dispose of objects now sMsgBus.Dispose(); sBusListener.Dispose(); Console.WriteLine("basic client exiting with status {0} ({1})\n", status, status.ToString()); }
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 UnregisterSignalHandler() { AllJoyn.QStatus status = AllJoyn.QStatus.FAIL; // create bus attachment AllJoyn.BusAttachment bus = null; bus = new AllJoyn.BusAttachment("BusAttachmentTest", true); Assert.NotNull(bus); // create the interface description AllJoyn.InterfaceDescription testIntf = null; status = bus.CreateInterface("org.alljoyn.test.BusAttachment", out testIntf); Assert.Equal(AllJoyn.QStatus.OK, status); Assert.NotNull(testIntf); // add the signal member to the interface status = testIntf.AddSignal("testSignal", "s", "msg", 0); Assert.Equal(AllJoyn.QStatus.OK, status); // activate the interface testIntf.Activate(); // start the bus attachment status = bus.Start(); Assert.Equal(AllJoyn.QStatus.OK, status); // connect to the bus status = bus.Connect(AllJoynTestCommon.GetConnectSpec()); Assert.Equal(AllJoyn.QStatus.OK, status); // create the bus object & // add the interface to the bus object TestBusObject testBusObject = new TestBusObject(bus, "/test"); bus.RegisterBusObject(testBusObject); // get the signal member from the interface description AllJoyn.InterfaceDescription.Member testSignalMember = testIntf.GetMember("testSignal"); // register both signal handlers status = bus.RegisterSignalHandler(this.TestSignalHandlerOne, testSignalMember, null); Assert.Equal(AllJoyn.QStatus.OK, status); status = bus.RegisterSignalHandler(this.TestSignalHandlerTwo, testSignalMember, null); Assert.Equal(AllJoyn.QStatus.OK, status); // add match for the signal status = bus.AddMatch("type='signal',member='testSignal'"); Assert.Equal(AllJoyn.QStatus.OK, status); handledSignalsOne = false; handledSignalsTwo = false; signalOneMsg = null; signalTwoMsg = null; // send a signal testBusObject.SendTestSignal("test msg"); WaitEventOne(TimeSpan.FromSeconds(2)); WaitEventTwo(TimeSpan.FromSeconds(2)); // make sure that both handlers got the signal Assert.Equal(true, handledSignalsOne); Assert.Equal("test msg", signalOneMsg); Assert.Equal(true, handledSignalsTwo); Assert.Equal("test msg", signalTwoMsg); // now unregister one handler & make sure it doesn't receive the signal handledSignalsOne = false; handledSignalsTwo = false; signalOneMsg = null; signalTwoMsg = null; status = bus.UnregisterSignalHandler(this.TestSignalHandlerOne, testSignalMember, null); Assert.Equal(AllJoyn.QStatus.OK, status); // send another signal testBusObject.SendTestSignal("test msg"); // wait to see if we receive the signal WaitEventTwo(TimeSpan.FromSeconds(2)); // make sure that only the second handler got the signal Assert.Equal(false, handledSignalsOne); Assert.Null(signalOneMsg); Assert.Equal(true, handledSignalsTwo); Assert.Equal("test msg", signalTwoMsg); // TODO: move these into a teardown method? bus.Dispose(); }
public BasicServer() { serverText = ""; // Create message bus msgBus = new AllJoyn.BusAttachment("myApp", true); // Add org.alljoyn.Bus.method_sample interface AllJoyn.QStatus status = msgBus.CreateInterface(INTERFACE_NAME, false, out testIntf); if (status) { serverText += "Server Interface Created.\n"; Debug.Log("Server Interface Created."); testIntf.AddMember(AllJoyn.Message.Type.MethodCall, "cat", "ss", "s", "inStr1,inStr2,outStr"); testIntf.Activate(); } else { serverText += "Failed to create interface 'org.alljoyn.Bus.method_sample'\n"; Debug.Log("Failed to create interface 'org.alljoyn.Bus.method_sample'"); } // Create a bus listener busListener = new MyBusListener(); if (status) { msgBus.RegisterBusListener(busListener); serverText += "Server BusListener Registered.\n"; Debug.Log("Server BusListener Registered."); } // Set up bus object testObj = new TestBusObject(msgBus, SERVICE_PATH); // Start the msg bus if (status) { status = msgBus.Start(); if (status) { serverText += "Server BusAttachment started.\n"; Debug.Log("Server BusAttachment started."); msgBus.RegisterBusObject(testObj); for (int i = 0; i < connectArgs.Length; ++i) { status = msgBus.Connect(connectArgs [i]); if (status) { serverText += "BusAttchement.Connect(" + connectArgs [i] + ") SUCCEDED.\n"; Debug.Log("BusAttchement.Connect(" + connectArgs [i] + ") SUCCEDED."); break; } else { serverText += "BusAttachment.Connect(" + connectArgs [i] + ") failed.\n"; Debug.Log("BusAttachment.Connect(" + connectArgs [i] + ") failed."); } } if (!status) { serverText += "BusAttachment.Connect failed.\n"; Debug.Log("BusAttachment.Connect failed."); } } else { serverText += "Server BusAttachment.Start failed.\n"; Debug.Log("Server BusAttachment.Start failed."); } } // Request name if (status) { status = msgBus.RequestName(SERVICE_NAME, AllJoyn.DBus.NameFlags.ReplaceExisting | AllJoyn.DBus.NameFlags.DoNotQueue); if (!status) { serverText += "Server RequestName(" + SERVICE_NAME + ") failed (status=" + status + ")\n"; Debug.Log("Server RequestName(" + SERVICE_NAME + ") failed (status=" + status + ")"); } } // Create session opts = new AllJoyn.SessionOpts(AllJoyn.SessionOpts.TrafficType.Messages, true, AllJoyn.SessionOpts.ProximityType.Any, AllJoyn.TransportMask.Any); if (status) { ushort sessionPort = SERVICE_PORT; sessionPortListener = new MySessionPortListener(); status = msgBus.BindSessionPort(ref sessionPort, opts, sessionPortListener); if (!status || sessionPort != SERVICE_PORT) { serverText += "Server BindSessionPort failed (" + status + ")\n"; Debug.Log("Server BindSessionPort failed (" + status + ")"); } } // Advertise name if (status) { status = msgBus.AdvertiseName(SERVICE_NAME, opts.Transports); if (!status) { serverText += "Server Failed to advertise name " + SERVICE_NAME + " (" + status + ")\n"; Debug.Log("Server Failed to advertise name " + SERVICE_NAME + " (" + status + ")"); } } serverText += "Completed BasicService Constructor\n"; Debug.Log("Completed BasicService Constructor"); }