public void Constructor_Reason_PropertyReason ()
		{
			var target = new DisconnectedEventArgs(DisconnectionReason.ConnectionLost);
			Assert.AreEqual(DisconnectionReason.ConnectionLost, target.Reason);

			target = new DisconnectedEventArgs(DisconnectionReason.LocalQuit);
			Assert.AreEqual(DisconnectionReason.LocalQuit, target.Reason);

			target = new DisconnectedEventArgs(DisconnectionReason.RemoteQuit);
			Assert.AreEqual(DisconnectionReason.RemoteQuit, target.Reason);
		}
		/// <summary>
		/// Raises the disconnected event.
		/// </summary>
		/// <param name="e">The event argumetns</param>    
		internal protected virtual void OnDisconnected (DisconnectedEventArgs e)
		{
			if (State == MessengerState.Connected) {
				State = MessengerState.Disconnected;
				Disconnected.Raise (this, e);
			}
		}