Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        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();
        }
Esempio n. 3
0
        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);
        }
Esempio n. 4
0
		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);
		}
Esempio n. 5
0
		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);
		}
Esempio n. 6
0
		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);
		}