瀏覽代碼

shouldAddStorePayment unit tests

Andrea Bizzotto 8 年之前
父節點
當前提交
6a4f0abfc0
共有 1 個文件被更改,包括 38 次插入0 次删除
  1. 38 0
      SwiftyStoreKitTests/PaymentQueueControllerTests.swift

+ 38 - 0
SwiftyStoreKitTests/PaymentQueueControllerTests.swift

@@ -249,6 +249,44 @@ class PaymentQueueControllerTests: XCTestCase {
         XCTAssertTrue(restorePurchasesCallbackCalled)
         XCTAssertTrue(completeTransactionsCallbackCalled)
     }
+    
+    // MARK: shouldAddStorePayment tests
+    func testPaymentQueue_when_shouldAddStorePaymentHandlerIsNil_then_shouldAddStorePaymentReturnsFalse() {
+        
+        let spy = PaymentQueueSpy()
+        
+        let paymentQueueController = PaymentQueueController(paymentQueue: spy)
+        
+        paymentQueueController.shouldAddStorePaymentHandler = nil
+        
+        XCTAssertFalse(paymentQueueController.paymentQueue(SKPaymentQueue(), shouldAddStorePayment: SKPayment(), for: SKProduct()))
+    }
+
+    func testPaymentQueue_when_shouldAddStorePaymentHandlerReturnsTrue_then_shouldAddStorePaymentReturnsTrue() {
+        
+        let spy = PaymentQueueSpy()
+        
+        let paymentQueueController = PaymentQueueController(paymentQueue: spy)
+        
+        paymentQueueController.shouldAddStorePaymentHandler = { payment, product in
+            return true
+        }
+        
+        XCTAssertTrue(paymentQueueController.paymentQueue(SKPaymentQueue(), shouldAddStorePayment: SKPayment(), for: SKProduct()))
+    }
+
+    func testPaymentQueue_when_shouldAddStorePaymentHandlerReturnsFalse_then_shouldAddStorePaymentReturnsFalse() {
+        
+        let spy = PaymentQueueSpy()
+        
+        let paymentQueueController = PaymentQueueController(paymentQueue: spy)
+        
+        paymentQueueController.shouldAddStorePaymentHandler = { payment, product in
+            return false
+        }
+        
+        XCTAssertFalse(paymentQueueController.paymentQueue(SKPaymentQueue(), shouldAddStorePayment: SKPayment(), for: SKProduct()))
+    }
 
     // MARK: Helpers
     func makeTestPaymentTransaction(productIdentifier: String, transactionState: SKPaymentTransactionState) -> TestPaymentTransaction {