public void TestSessionJoined() { AllJoyn.QStatus status = AllJoyn.QStatus.FAIL; // Create session AllJoyn.SessionOpts opts = new AllJoyn.SessionOpts( AllJoyn.SessionOpts.TrafficType.Messages, false, AllJoyn.SessionOpts.ProximityType.Any, AllJoyn.TransportMask.Any); ushort sessionPort = SERVICE_PORT; // create the session port listener AllJoyn.SessionPortListener sessionPortListener = new TestSessionPortListener(this); // bind to the session port status = hostBus.BindSessionPort(ref sessionPort, opts, sessionPortListener); Assert.Equal(AllJoyn.QStatus.OK, status); // request name status = hostBus.RequestName(OBJECT_NAME, AllJoyn.DBus.NameFlags.ReplaceExisting | AllJoyn.DBus.NameFlags.DoNotQueue); Assert.Equal(AllJoyn.QStatus.OK, status); // Advertise name status = hostBus.AdvertiseName(OBJECT_NAME, opts.Transports); Assert.Equal(AllJoyn.QStatus.OK, status); /////////////////////////////////////////////////////////// foundAdvertisedNameFlag = false; acceptSessionJoinerFlag = false; sessionJoinedFlag = false; // try to join the session & verify callbacks are called // register the bus listener AllJoyn.BusListener busListener = new TestBusListener(this); memberOneBus.RegisterBusListener(busListener); // find the advertised name from the "servicebus" status = memberOneBus.FindAdvertisedName(OBJECT_NAME); Assert.Equal(AllJoyn.QStatus.OK, status); EventWaitHandle ewh = new EventWaitHandle(false, EventResetMode.AutoReset, "FoundAdvertisedName"); ewh.WaitOne(MaxWaitTime); Assert.Equal(true, foundAdvertisedNameFlag); // try to join & verify that the sessionedJoined callback was called uint sSessionId; status = memberOneBus.JoinSession(OBJECT_NAME, SERVICE_PORT, null, out sSessionId, opts); Assert.Equal(AllJoyn.QStatus.OK, status); ewh = new EventWaitHandle(false, EventResetMode.AutoReset, "SessionJoined"); ewh.WaitOne(MaxWaitTime); Assert.Equal(true, acceptSessionJoinerFlag); Assert.Equal(true, sessionJoinedFlag); hostBus.ReleaseName(OBJECT_NAME); }
public void RemoveSessionMember() { AllJoyn.QStatus status = AllJoyn.QStatus.FAIL; /////////////////////////////////////////////////////////// // Setup the session host /////////////////////////////////////////////////////////// SetupHost(); // Create session AllJoyn.SessionOpts opts = new AllJoyn.SessionOpts( AllJoyn.SessionOpts.TrafficType.Messages, true, AllJoyn.SessionOpts.ProximityType.Any, AllJoyn.TransportMask.Any); ushort sessionPort = SERVICE_PORT; // create the session port listener AllJoyn.SessionPortListener sessionPortListener = new TestSessionPortListener(this); // bind to the session port status = hostBus.BindSessionPort(ref sessionPort, opts, sessionPortListener); Assert.Equal(AllJoyn.QStatus.OK, status); // request name status = hostBus.RequestName(OBJECT_NAME, AllJoyn.DBus.NameFlags.ReplaceExisting | AllJoyn.DBus.NameFlags.DoNotQueue); Assert.Equal(AllJoyn.QStatus.OK, status); // Advertise name status = hostBus.AdvertiseName(OBJECT_NAME, opts.Transports); Assert.Equal(AllJoyn.QStatus.OK, status); /////////////////////////////////////////////////////////// // Setup session member one /////////////////////////////////////////////////////////// SetupMemberOne(); // register sessionMemberOne's bus listener AllJoyn.BusListener busListenerMemberOne = new TestBusListener(this); memberOneBus.RegisterBusListener(busListenerMemberOne); // create the session listener AllJoyn.SessionListener sessionListener = new TestSessionListener2(this); /////////////////////////////////////////////////////////// // have sessionMemberOne find and join the session foundAdvertisedNameFlag = false; status = memberOneBus.FindAdvertisedName(OBJECT_NAME); // find the advertised name from the "hostbus" Assert.Equal(AllJoyn.QStatus.OK, status); EventWaitHandle ewh = new EventWaitHandle(false, EventResetMode.AutoReset, "FoundAdvertisedName"); ewh.WaitOne(MaxWaitTime); Assert.Equal(true, foundAdvertisedNameFlag); uint sSessionId; acceptSessionJoinerFlag = false; sessionJoinedFlag = false; status = memberOneBus.JoinSession(OBJECT_NAME, SERVICE_PORT, sessionListener, out sSessionId, opts); Assert.Equal(AllJoyn.QStatus.OK, status); ewh = new EventWaitHandle(false, EventResetMode.AutoReset, "SessionJoined"); ewh.WaitOne(MaxWaitTime); // verify that sessionMemberOne joined by checking that the sessionedJoined callback was called Assert.Equal(true, acceptSessionJoinerFlag); Assert.Equal(true, sessionJoinedFlag); /////////////////////////////////////////////////////////// // Now have the host leave & verify SessionLost callback is triggered sessionLostReasonFlag = false; reasonMarker = AllJoyn.SessionListener.SessionLostReason.ALLJOYN_SESSIONLOST_INVALID; sessionMemberRemovedFlag = false; hostBus.RemoveSessionMember(sSessionId, memberOneBus.UniqueName); ewh = new EventWaitHandle(false, EventResetMode.AutoReset, "SessionLostReason"); ewh.WaitOne(MaxWaitTime); Assert.Equal(true, sessionLostReasonFlag); Assert.Equal(AllJoyn.SessionListener.SessionLostReason.ALLJOYN_SESSIONLOST_REMOVED_BY_BINDER, reasonMarker); // SessionMemberRemoved should also be triggered ewh = new EventWaitHandle(false, EventResetMode.AutoReset, "SessionMemberRemoved"); ewh.WaitOne(MaxWaitTime); Assert.Equal(true, sessionMemberRemovedFlag); hostBus.Stop(); hostBus.Join(); hostBus.ReleaseName(OBJECT_NAME); memberOneBus.Stop(); memberOneBus.Join(); memberOneBus.Dispose(); hostBus.Dispose(); }
public void TestSessionMemberAddRemove() { AllJoyn.QStatus status = AllJoyn.QStatus.FAIL; sessionMemberAddedFlag = false; // Create session AllJoyn.SessionOpts opts = new AllJoyn.SessionOpts( AllJoyn.SessionOpts.TrafficType.Messages, true, AllJoyn.SessionOpts.ProximityType.Any, AllJoyn.TransportMask.Any); ushort sessionPort = SERVICE_PORT; // create the session port listener AllJoyn.SessionPortListener sessionPortListener = new TestSessionPortListener(this); // bind to the session port status = hostBus.BindSessionPort(ref sessionPort, opts, sessionPortListener); Assert.Equal(AllJoyn.QStatus.OK, status); // request name status = hostBus.RequestName(OBJECT_NAME, AllJoyn.DBus.NameFlags.ReplaceExisting | AllJoyn.DBus.NameFlags.DoNotQueue); Assert.Equal(AllJoyn.QStatus.OK, status); // Advertise name status = hostBus.AdvertiseName(OBJECT_NAME, opts.Transports); Assert.Equal(AllJoyn.QStatus.OK, status); // register sessionMemberOne's bus listener AllJoyn.BusListener busListenerMemberOne = new TestBusListener(this); memberOneBus.RegisterBusListener(busListenerMemberOne); // create the session listener AllJoyn.SessionListener sessionListener = new TestSessionListener2(this); AllJoyn.BusListener busListenerMemberTwo = new TestBusListener(this); memberTwoBus.RegisterBusListener(busListenerMemberTwo); /////////////////////////////////////////////////////////// // have sessionMemberOne find and join the session foundAdvertisedNameFlag = false; status = memberOneBus.FindAdvertisedName(OBJECT_NAME); // find the advertised name from the "hostbus" Assert.Equal(AllJoyn.QStatus.OK, status); EventWaitHandle ewh = new EventWaitHandle(false, EventResetMode.AutoReset, "FoundAdvertisedName"); ewh.WaitOne(MaxWaitTime); Assert.Equal(true, foundAdvertisedNameFlag); uint sSessionId; acceptSessionJoinerFlag = false; sessionJoinedFlag = false; status = memberOneBus.JoinSession(OBJECT_NAME, SERVICE_PORT, sessionListener, out sSessionId, opts); Assert.Equal(AllJoyn.QStatus.OK, status); ewh = new EventWaitHandle(false, EventResetMode.AutoReset, "SessionJoined"); ewh.WaitOne(MaxWaitTime); // verify that sessionMemberOne joined by checking that the sessionedJoined callback was called Assert.Equal(true, acceptSessionJoinerFlag); Assert.Equal(true, sessionJoinedFlag); /////////////////////////////////////////////////////////// // have session member two find and join the session sessionMemberAddedFlag = false; foundAdvertisedNameFlag = false; status = memberTwoBus.FindAdvertisedName(OBJECT_NAME); // find the advertised name from the "hostbus" Assert.Equal(AllJoyn.QStatus.OK, status); ewh = new EventWaitHandle(false, EventResetMode.AutoReset, "FoundAdvertisedName"); ewh.WaitOne(MaxWaitTime); Assert.Equal(true, foundAdvertisedNameFlag); acceptSessionJoinerFlag = false; sessionJoinedFlag = false; status = memberTwoBus.JoinSession(OBJECT_NAME, SERVICE_PORT, null, out sSessionId, opts); Assert.Equal(AllJoyn.QStatus.OK, status); ewh = new EventWaitHandle(false, EventResetMode.AutoReset, "SessionJoined"); ewh.WaitOne(MaxWaitTime); // verify that sessionMemberTwo joined by checking that the sessionedJoined callback was called Assert.Equal(true, acceptSessionJoinerFlag); Assert.Equal(true, sessionJoinedFlag); /////////////////////////////////////////////////////////// // Now that sessionMemberTwo has joined, the SessionMemberAdded callback should have been triggered ewh = new EventWaitHandle(false, EventResetMode.AutoReset, "SessionMemberAdded"); ewh.WaitOne(MaxWaitTime); Assert.Equal(true, sessionMemberAddedFlag); /////////////////////////////////////////////////////////// // Now have sessionMemberTwo leave & verify SessionMemberRemoved callback is triggered sessionMemberRemovedFlag = false; memberTwoBus.LeaveSession(sSessionId); ewh = new EventWaitHandle(false, EventResetMode.AutoReset, "SessionMemberRemoved"); ewh.WaitOne(MaxWaitTime); Assert.Equal(true, sessionMemberRemovedFlag); hostBus.ReleaseName(OBJECT_NAME); }
public void RemoveSessionMember() { AllJoyn.QStatus status = AllJoyn.QStatus.FAIL; // Create session AllJoyn.SessionOpts opts = new AllJoyn.SessionOpts( AllJoyn.SessionOpts.TrafficType.Messages, true, AllJoyn.SessionOpts.ProximityType.Any, AllJoyn.TransportMask.Any); ushort sessionPort = SERVICE_PORT; // create the session port listener AllJoyn.SessionPortListener sessionPortListener = new TestSessionPortListener(this); // bind to the session port status = hostBus.BindSessionPort(ref sessionPort, opts, sessionPortListener); Assert.Equal(AllJoyn.QStatus.OK, status); // request name status = hostBus.RequestName(OBJECT_NAME, AllJoyn.DBus.NameFlags.ReplaceExisting | AllJoyn.DBus.NameFlags.DoNotQueue); Assert.Equal(AllJoyn.QStatus.OK, status); // Advertise name status = hostBus.AdvertiseName(OBJECT_NAME, opts.Transports); Assert.Equal(AllJoyn.QStatus.OK, status); // register sessionMemberOne's bus listener AllJoyn.BusListener busListenerMemberOne = new TestBusListener(this); memberOneBus.RegisterBusListener(busListenerMemberOne); // create the session listener AllJoyn.SessionListener sessionListener = new TestSessionListener2(this); /////////////////////////////////////////////////////////// // have sessionMemberOne find and join the session foundAdvertisedNameFlag = false; status = memberOneBus.FindAdvertisedName(OBJECT_NAME); // find the advertised name from the "hostbus" Assert.Equal(AllJoyn.QStatus.OK, status); EventWaitHandle ewh = new EventWaitHandle(false, EventResetMode.AutoReset, "FoundAdvertisedName"); ewh.WaitOne(MaxWaitTime); Assert.Equal(true, foundAdvertisedNameFlag); uint sSessionId; acceptSessionJoinerFlag = false; sessionJoinedFlag = false; status = memberOneBus.JoinSession(OBJECT_NAME, SERVICE_PORT, sessionListener, out sSessionId, opts); Assert.Equal(AllJoyn.QStatus.OK, status); ewh = new EventWaitHandle(false, EventResetMode.AutoReset, "SessionJoined"); ewh.WaitOne(MaxWaitTime); // verify that sessionMemberOne joined by checking that the sessionedJoined callback was called Assert.Equal(true, acceptSessionJoinerFlag); Assert.Equal(true, sessionJoinedFlag); /////////////////////////////////////////////////////////// // Now have the host leave & verify SessionLost callback is triggered sessionLostReasonFlag = false; reasonMarker = AllJoyn.SessionListener.SessionLostReason.ALLJOYN_SESSIONLOST_INVALID; sessionMemberRemovedFlag = false; hostBus.RemoveSessionMember(sSessionId, memberOneBus.UniqueName); ewh = new EventWaitHandle(false, EventResetMode.AutoReset, "SessionLostReason"); ewh.WaitOne(MaxWaitTime); Assert.Equal(true, sessionLostReasonFlag); Assert.Equal(AllJoyn.SessionListener.SessionLostReason.ALLJOYN_SESSIONLOST_REMOVED_BY_BINDER, reasonMarker); // SessionMemberRemoved should also be triggered ewh = new EventWaitHandle(false, EventResetMode.AutoReset, "SessionMemberRemoved"); ewh.WaitOne(MaxWaitTime); Assert.Equal(true, sessionMemberRemovedFlag); hostBus.ReleaseName(OBJECT_NAME); }