 @testable import kushki_ios
 
 class KushkiTests: XCTestCase {
+
+    var publicMerchantId: String?
+    var totalAmount: Double?
+
     override func setUp() {
         super.setUp()
+        publicMerchantId = "10000001436354684173102102"
+        totalAmount = 10.0
     }
     
     override func tearDown() {

    
    func testReturnsTokenWhenCalledWithValidParams() {
        let asyncExpectation = expectation(description: "requestToken")

        let publicMerchantId = "10000001436354684173102102"
        let totalAmount = 10.0
        let card = Card(name: "John Doe", number: "4242424242424242", cvv: "123", expiryMonth: "12", expiryYear: "21")
        let encryptedMessage = Helpers.randomAlphanumeric(64)
        let expectedToken = Helpers.randomAlphanumeric(32)
        let expectedRequestMessage = buildRequestMessage(withMerchantId: publicMerchantId, withCard: card, withAmount: totalAmount)
        let aurusEncryption = AurusEncryptionStub(whenEncryptCalledWith: expectedRequestMessage, thenReturn: encryptedMessage)
        let expectedRequestBody = "{\"request\": \"" + encryptedMessage + "\"}"
        let kushki = Kushki(publicMerchantId: publicMerchantId,
                            currency: "USD",
                            environment: KushkiEnvironment.testing,
                            aurusEncryption: aurusEncryption)

                return OHHTTPStubsResponse(jsonObject: responseBody, statusCode: 200, headers: nil)
        }
        var transaction = Transaction(code: "", text: "", token: "")
        kushki.requestToken(card: card, totalAmount: totalAmount!) { returnedTransaction in
            transaction = returnedTransaction
            asyncExpectation.fulfill()
        }
