/// <summary> /// Creates an <see cref="RpcException"/> for testing purposes. /// </summary> internal static RpcException CreateRpcException(string errorMessage, string errorTrigger, string requestId) { GoogleAdsFailure failure = new GoogleAdsFailure(); failure.Errors.Add(new GoogleAdsError() { ErrorCode = new ErrorCode() { DistinctError = DistinctErrorEnum.Types.DistinctError.DuplicateElement }, Message = errorMessage, Trigger = new Value() { StringValue = errorTrigger } }); Metadata metadata = new Metadata(); using (MemoryStream memoryStream = new MemoryStream()) { failure.WriteTo(memoryStream); metadata.Add(GoogleAdsException.FAILURE_KEY, memoryStream.ToArray()); metadata.Add(GoogleAdsException.REQUEST_ID_KEY, requestId); } return(new RpcException(Status.DefaultSuccess, metadata)); }
/// <summary> /// Creates an <see cref="RpcException"/> for testing purposes. /// </summary> internal static RpcException CreateRpcException(string errorMessage, string errorTrigger, Metadata responseMetadata) { GoogleAdsFailure failure = new GoogleAdsFailure(); failure.Errors.Add(new GoogleAdsError() { ErrorCode = new ErrorCode() { DistinctError = DistinctErrorEnum.Types.DistinctError.DuplicateElement }, Location = new ErrorLocation() { OperationIndex = 1, }, Message = errorMessage, Trigger = new V0.Common.Value() { StringValue = errorTrigger } }); using (MemoryStream memoryStream = new MemoryStream()) { failure.WriteTo(memoryStream); // TODO(Anash): Uncomment once Grpc allows periods in metadata key names. // responseMetadata.Add(GoogleAdsException.FAILURE_KEY, // memoryStream.ToArray()); } return(new RpcException(Status.DefaultSuccess, responseMetadata)); }