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(); } }
public ErrorHolder(RemoteError errorCode, string className, string message, IEnumerable <StackTraceElement> stackTraceElements) { ErrorCode = (int)errorCode; ClassName = className; Message = message; StackTraceElements = stackTraceElements; }
public void ToRemoteError_WhenExceptionIsOtherType_SetsProjectContextLogMessage() { var exception = new DivideByZeroException(); RemoteError remoteError = RemoteErrorUtility.ToRemoteError(exception); Assert.Equal(exception.ToString(), remoteError.ProjectContextLogMessage); }
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)); }
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); }
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)); } }
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); }
/// <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; }
/// <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; }