public void AuthenticatorAuthenticateExceptionCallsAbort()
        {
            WampClientPlayground playground = new WampClientPlayground();

            MyAbortDetails myAbortDetails = new MyAbortDetails()
            {
                Message = "My message",
                User    = "******"
            };

            CustomAuthenticator authenticator =
                new CustomAuthenticator
                    (delegate
            {
                throw new WampAuthenticationException(myAbortDetails, "some reason");
            })
            {
                AuthenticationId      = "peter",
                AuthenticationMethods = new string[] { "ticket" }
            };

            AbortMock mock = new AbortMock("ticket");

            JTokenJsonBinding jsonBinding = new JTokenJsonBinding();

            IWampChannel channel =
                playground.GetChannel
                    (mock,
                    "realm1",
                    jsonBinding,
                    authenticator);

            channel.Open();

            Assert.That(mock.Reason,
                        Is.EqualTo("some reason"));

            MyAbortDetails deserializedDetails =
                mock.Details.OriginalValue.Deserialize <MyAbortDetails>();

            Assert.That(deserializedDetails, Is.EqualTo(myAbortDetails));
        }
 protected bool Equals(MyAbortDetails other)
 {
     return(string.Equals(User, other.User) &&
            string.Equals(Message, other.Message));
 }