Example #1
0
        public void ShowError_WhenArgumentIsRemoteInvocationExceptionForSignatureException_ShowsError()
        {
            var remoteError = new RemoteError(
                typeName: typeof(SignatureException).FullName,
                new LogMessage(LogLevel.Error, message: "a", NuGetLogCode.NU3018),
                new[]
            {
                new LogMessage(LogLevel.Error, message: "b", NuGetLogCode.NU3019),
                new LogMessage(LogLevel.Warning, message: "c", NuGetLogCode.NU3027)
            },
                projectContextLogMessage: "d",
                activityLogMessage: "e");
            var exception = new RemoteInvocationException(
                message: "f",
                errorCode: 0,
                errorData: null,
                deserializedErrorData: remoteError);
            var defaultLogger = new Mock <INuGetUILogger>();
            var projectLogger = new Mock <INuGetUILogger>();

            defaultLogger.Setup(x => x.ReportError(It.Is <ILogMessage>(logMessage => ReferenceEquals(logMessage, remoteError.LogMessage))));
            defaultLogger.Setup(x => x.ReportError(It.Is <ILogMessage>(logMessage => ReferenceEquals(logMessage, remoteError.LogMessages[0]))));
            defaultLogger.Setup(x => x.ReportError(It.Is <ILogMessage>(logMessage => ReferenceEquals(logMessage, remoteError.LogMessages[1]))));
            projectLogger.Setup(x => x.Log(It.Is <ILogMessage>(logMessage => ReferenceEquals(logMessage, remoteError.LogMessage))));
            projectLogger.Setup(x => x.Log(It.Is <ILogMessage>(logMessage => ReferenceEquals(logMessage, remoteError.LogMessages[0]))));
            projectLogger.Setup(x => x.Log(It.Is <ILogMessage>(logMessage => ReferenceEquals(logMessage, remoteError.LogMessages[1]))));

            using (NuGetUI ui = CreateNuGetUI(defaultLogger.Object, projectLogger.Object))
            {
                ui.ShowError(exception);

                defaultLogger.VerifyAll();
                projectLogger.VerifyAll();
            }
        }
Example #2
0
 public ErrorHolder(RemoteError errorCode, string className, string message, IEnumerable <StackTraceElement> stackTraceElements)
 {
     ErrorCode          = (int)errorCode;
     ClassName          = className;
     Message            = message;
     StackTraceElements = stackTraceElements;
 }
Example #3
0
        public void ToRemoteError_WhenExceptionIsOtherType_SetsProjectContextLogMessage()
        {
            var         exception   = new DivideByZeroException();
            RemoteError remoteError = RemoteErrorUtility.ToRemoteError(exception);

            Assert.Equal(exception.ToString(), remoteError.ProjectContextLogMessage);
        }
Example #4
0
        private ClientMessage CreateErrorMessage(RemoteError error)
        {
            // can we prepare server messages?
            var errorHolders = new List <ErrorHolder>
            {
                new ErrorHolder(error, "className", "message", Enumerable.Empty <StackTraceElement>())
            };

            return(ErrorsServerCodec.EncodeResponse(errorHolders));
        }
Example #5
0
        private void linker_ErrorOccurred(object sender, SocketHelper.Events.ErrorEventArgs e)
        {
            RemoteError re = new RemoteError(e.ErrorMessage);

            if (_adapter.IsConnected)
            {
                _adapter.Send(re.Serialize());
            }
            destoryLinker();
        }
        public void SerializeThenDeserialize_WithValidArguments_RoundTrips(RemoteError expectedResult)
        {
            RemoteError actualResult = SerializeThenDeserialize(RemoteErrorFormatter.Instance, expectedResult);

            Assert.Equal(expectedResult.ActivityLogMessage, actualResult.ActivityLogMessage);
            TestUtility.AssertEqual(expectedResult.LogMessage, actualResult.LogMessage);
            TestUtility.AssertEqual(expectedResult.LogMessages, actualResult.LogMessages);
            Assert.Equal(expectedResult.ProjectContextLogMessage, actualResult.ProjectContextLogMessage);
            Assert.Equal(expectedResult.TypeName, actualResult.TypeName);
        }
Example #7
0
        public void TestRemoteErrorSerialization_MissingErrorCodeElement()
        {
            var error = new RemoteError();

            error.ComponentName = "component";

            var xml = error.Serialize();

            xml.Element(XName.Get("ErrorCode", xml.Name.NamespaceName)).Remove();

            var roundtrip = new RemoteError();

            Assert.IsFalse(roundtrip.Validate(xml));
        }
        public void Constructor_WhenNullableArgumentsAreNull_InitializesProperties()
        {
            var error = new RemoteError(
                TypeName,
                LogMessage,
                logMessages: null,
                projectContextLogMessage: null,
                activityLogMessage: null);

            Assert.Null(error.ActivityLogMessage);
            TestUtility.AssertEqual(LogMessage, error.LogMessage);
            Assert.Null(error.LogMessages);
            Assert.Null(error.ProjectContextLogMessage);
            Assert.Equal(TypeName, error.TypeName);
        }
        public void Constructor_WhenArgumentsAreValid_InitializesProperties()
        {
            var error = new RemoteError(
                TypeName,
                LogMessage,
                LogMessages,
                ProjectContextLogMessage,
                ActivityLogMessage);

            Assert.Equal(ActivityLogMessage, error.ActivityLogMessage);
            TestUtility.AssertEqual(LogMessage, error.LogMessage);
            TestUtility.AssertEqual(LogMessages, error.LogMessages);
            Assert.Equal(ProjectContextLogMessage, error.ProjectContextLogMessage);
            Assert.Equal(TypeName, error.TypeName);
        }
        private void _client_ReceiveCompleted(object sender, ReceiveEventArgs args)
        {
            try
            {
                if (args.ByteLenght >= 4)
                {
                    int code = BitConverter.ToInt32(args.ReceivedBytes, 0);
                    switch (code)
                    {
                    case StreamEntityCode.FfmpegHeader:
                    {
                        CurrentHeader = FfmpegStreamHeader.DeserializeTo(args.ReceivedBytes);
                        OnStreamHeaderRecieved(CurrentHeader);
                    }
                    break;

                    case StreamEntityCode.HikvHeader:
                    {
                        CurrentHeader = HikvStreamHeader.DeserializeTo(args.ReceivedBytes);
                        OnStreamHeaderRecieved(CurrentHeader);
                    }
                    break;

                    case StreamEntityCode.StreamData:
                    {
                        OnStreamDataReceived(StreamData.DeserializeTo(args.ReceivedBytes));
                    }
                    break;

                    case StreamEntityCode.RemoteError:
                    {
                        RemoteError re = RemoteError.DeserializeTo(args.ReceivedBytes);
                        OnErrorOccurred(new ErrorEventArgs(re.ErrorMessage, ErrorTypes.Receive));
                    }
                    break;
                    }
                }
            }
            catch (Exception e)
            {
                OnErrorOccurred(new ErrorEventArgs($"从远程流媒体服务器获取到异常数据:{e.Message}", ErrorTypes.Receive));
            }
        }
Example #11
0
        public void TestRemoteErrorSerialization_NoCallId()
        {
            var error = new RemoteError();

            error.ComponentName = "component";

            var xml = error.Serialize();


            var roundtrip = new RemoteError();

            Assert.IsTrue(roundtrip.Validate(xml));
            roundtrip.Deserialize(xml);

            Assert.IsNotNull(roundtrip);
            Assert.AreEqual <Guid>(error.CallId, roundtrip.CallId);
            Assert.AreEqual <string>(error.ComponentName, roundtrip.ComponentName);
            Assert.AreEqual <RemoteErrorCode>(error.ErrorCode, roundtrip.ErrorCode);
        }
Example #12
0
 /// <summary>
 /// Initializes a new instance of the <see cref="HazelcastException"/> class with a reference to
 /// the inner exception that is the cause of this exception.
 /// </summary>
 /// <param name="error">The client protocol error.</param>
 /// <param name="innerException">The exception that is the cause of the current exception, or a null
 /// reference if no inner exception is specified.</param>
 /// <param name="retryable">Whether the operation that threw the exception can be retried.</param>
 public RemoteException(RemoteError error, Exception innerException, bool retryable = false)
     : base(error.ToString(), innerException)
 {
     Error     = error;
     Retryable = retryable;
 }
Example #13
0
 /// <summary>
 /// Initializes a new instance of the <see cref="HazelcastException"/> class with a specified error message.
 /// </summary>
 /// <param name="error">The client protocol error.</param>
 /// <param name="message">The message that describes the error.</param>
 /// <param name="retryable">Whether the operation that threw the exception can be retried.</param>
 public RemoteException(RemoteError error, string message, bool retryable = false)
     : base(message)
 {
     Error     = error;
     Retryable = retryable;
 }