浏览代码

Add public factory methods for CallResult. (#394)

* Add public factory methods for CallResult.

This enables instantiating CallResult structs for test stubs.

* Also set metadata.
Martin Petrov 6 年之前
父节点
当前提交
140d34a055
共有 1 个文件被更改,包括 29 次插入0 次删除
  1. 29 0
      Sources/SwiftGRPC/Core/CallResult.swift

+ 29 - 0
Sources/SwiftGRPC/Core/CallResult.swift

@@ -26,6 +26,35 @@ public struct CallResult: CustomStringConvertible {
   public let resultData: Data?
   public let initialMetadata: Metadata?
   public let trailingMetadata: Metadata?
+
+  public static func error(
+    statusCode: StatusCode = .unknown,
+    statusMessage: String? = nil,
+    initialMetadata: Metadata? = nil,
+    trailingMetadata: Metadata? = nil
+  ) -> CallResult {
+    return CallResult(
+      success: false,
+      statusCode: statusCode,
+      statusMessage: statusMessage,
+      resultData: nil,
+      initialMetadata: initialMetadata,
+      trailingMetadata: trailingMetadata)
+  }
+
+  public static func success(
+    resultData: Data,
+    initialMetadata: Metadata? = nil,
+    trailingMetadata: Metadata? = nil
+  ) -> CallResult {
+    return CallResult(
+      success: true,
+      statusCode: .ok,
+      statusMessage: "OK",
+      resultData: resultData,
+      initialMetadata: initialMetadata,
+      trailingMetadata: trailingMetadata)
+  }
   
   init(_ op: OperationGroup) {
     success = op.success