Hello colleagues!
Have one question about converting. Have the following code
CustomKeywords.'demomysql.Demo.connectDB'('demo', 'demo', '3306', 'user', 'test')
String user_id = CustomKeywords.'demomysql.Demo.executeQuery'('SELECT user_id FROM contracts order by user_id desc;')
String contract_id = CustomKeywords.'demomysql.Demo.executeQuery'('SELECT id FROM contracts order by user_id desc;')
String summ_of_client_payments = CustomKeywords.'demomysql.Demo.executeQuery'('select sum(LEFT(external_account, length(external_account) -3)) as external_account from transactions where contract_id = '+ contract_id +';') // equals 8000
String total_credit_summ = CustomKeywords.'demomysql.Demo.executeQuery'('select sum(LEFT(internal_account, length(internal_account) -3)) as internal_account from transactions where contract_id = '+ contract_id +';') // equals 10021
a = asInteger(total_credit_summ)
b = asInteger(summ_of_client_payments)
asInteger (client_need_to_pay = ( a - b ))
println(client_need_to_pay)
//int client_need_to_pay = total_credit_summ - summ_of_client_paiments
//println(client_need_to_pay)
CustomKeywords.'demomysql.Demo.closeDatabaseConnection'()
when i execute this code have the following error:
2019-09-04 09:02:23.479 DEBUG testcase.Tarrif limit test case - 8: Integer.parseInt(client_need_to_pay = a - b)
2019-09-04 09:02:23.491 ERROR c.k.katalon.core.main.TestCaseExecutor - ❌ Test Cases/Tarrif limit test case FAILED.
Reason:
groovy.lang.MissingMethodException: No signature of method: static java.lang.Integer.parseInt() is applicable for argument types: (java.lang.Integer) values: [2021]
Possible solutions: parseInt(java.lang.String), parseInt(java.lang.String, int), print(java.lang.Object), print(java.io.PrintWriter)
at Tarrif limit test case.run(Tarrif limit test case:40)
at com.kms.katalon.core.main.ScriptEngine.run(ScriptEngine.java:194)
at com.kms.katalon.core.main.ScriptEngine.runScriptAsRawText(ScriptEngine.java:119)
at com.kms.katalon.core.main.TestCaseExecutor.runScript(TestCaseExecutor.java:337)
at com.kms.katalon.core.main.TestCaseExecutor.doExecute(TestCaseExecutor.java:328)
at com.kms.katalon.core.main.TestCaseExecutor.processExecutionPhase(TestCaseExecutor.java:307)
at com.kms.katalon.core.main.TestCaseExecutor.accessMainPhase(TestCaseExecutor.java:299)
at com.kms.katalon.core.main.TestCaseExecutor.execute(TestCaseExecutor.java:233)
at com.kms.katalon.core.main.TestCaseMain.runTestCase(TestCaseMain.java:114)
at com.kms.katalon.core.main.TestCaseMain.runTestCase(TestCaseMain.java:105)
at com.kms.katalon.core.main.TestCaseMain$runTestCase$0.call(Unknown Source)
at TempTestCase1567576941377.run(TempTestCase1567576941377.groovy:21)
Maybe someone can help with converting String to integer, what methods do you use in case when you need to convert for example string ‘123’ to integer 123 and after this make some arithmetic manipulations with it. if i make my select something like this :
int total_credit_summ = CustomKeywords.'demomysql.Demo.executeQuery'('select sum(LEFT(internal_account, length(internal_account) -3)) as internal_account from transactions where contract_id = '+ contract_id +';') // equals 10021
i also get errors
2019-09-04 09:49:26.888 ERROR c.k.katalon.core.main.TestCaseExecutor - ❌ Test Cases/Tarrif limit test case FAILED.
Reason:
org.codehaus.groovy.runtime.typehandling.GroovyCastException: Cannot cast object '8000' with class 'java.lang.String' to class 'int'