Ejemplo n.º 1
0
        public void Constructors()
        {
            _ = new ClientProtocolException();
            _ = new ClientProtocolException("exception");
            _ = new ClientProtocolException("exception", new Exception("bang"));
            _ = new ClientProtocolException(ClientProtocolError.Undefined, true);
            _ = new ClientProtocolException(ClientProtocolError.Undefined, "exception");
            _ = new ClientProtocolException(ClientProtocolError.Undefined, "exception", true);
            _ = new ClientProtocolException(ClientProtocolError.Undefined, new Exception("bang"));
            _ = new ClientProtocolException(ClientProtocolError.Undefined, "exception", new Exception("bang"));
            _ = new ClientProtocolException(ClientProtocolError.Undefined, new Exception("bang"), true);
            var e = new ClientProtocolException(ClientProtocolError.AccessControl, "exception", new Exception("bang"), true);

            Assert.That(e.Message, Is.EqualTo("exception"));
            Assert.That(e.InnerException, Is.Not.Null);
            Assert.That(e.InnerException.Message, Is.EqualTo("bang"));
            Assert.That(e.Retryable, Is.True);
            Assert.That(e.Error, Is.EqualTo(ClientProtocolError.AccessControl));

            e = e.SerializeAndDeSerialize();

            Assert.That(e.Message, Is.EqualTo("exception"));
            Assert.That(e.InnerException, Is.Not.Null);
            Assert.That(e.InnerException.Message, Is.EqualTo("bang"));
            Assert.That(e.Retryable, Is.True);
            Assert.That(e.Error, Is.EqualTo(ClientProtocolError.AccessControl));

            Assert.Throws <ArgumentNullException>(() => e.GetObjectData(default !, default));
Ejemplo n.º 2
0
        /// <summary>
        /// Create an exception representing server errors.
        /// </summary>
        /// <param name="errorHolders">Server errors.</param>
        /// <returns>An exception representing the specified server errors.</returns>
        private static ClientProtocolException CreateException(IEnumerator <ErrorHolder> errorHolders)
        {
            if (errorHolders == null)
            {
                throw new ArgumentNullException(nameof(errorHolders));
            }

            if (!errorHolders.MoveNext())
            {
                return(null);
            }

            var errorHolder = errorHolders.Current;

            if (errorHolder == null)
            {
                return(new ClientProtocolException(ClientProtocolError.Undefined));
            }

            var innerException = CreateException(errorHolders);

            var error = ClientProtocolError.Undefined;

            if (Enum.IsDefined(typeof(ClientProtocolError), errorHolder.ErrorCode))
            {
                error = (ClientProtocolError)errorHolder.ErrorCode;
            }

            var retryable = RetryableErrors.Contains(error);
            var exception = new ClientProtocolException(error, errorHolder.Message, innerException, retryable);

            var sb    = new StringBuilder();
            var first = true;

            foreach (var stackTraceElement in errorHolder.StackTraceElements)
            {
                if (first)
                {
                    first = false;
                }
                else
                {
                    sb.AppendLine();
                }
                sb.Append("   ").Append(stackTraceElement);
            }

            exception.Data.Add("server", sb.ToString());
            return(exception);
        }
        public void TestCreation()
        {
            var clientProtocolException = new ClientProtocolException("Test");

            Assert.AreEqual("Test", clientProtocolException.Message);
        }