def generateFuncUsageByLineContentGo(lineContent):

    # get func parts:
    (caller, method, args, returnParams) = g.getGoFuncDeclarationPartsByLineContent(lineContent)
    returnParamsSplitedList = g.splitArgs(returnParams)
    color.red("returnParamsSplitedList")
    print(returnParamsSplitedList)

     # split args
    argsSplitedList = g.splitArgs(args)
    # get vars commas str
    (_, varsCommasStr, _) = g.getVarBlockByStructureListOfNameTypeName(argsSplitedList)    
    # get return params comma string
    (_, returnParamsCommasStr, _) = g.getVarBlockByStructureListOfNameTypeName(returnParamsSplitedList)    

    callerVarName = g.getCallerVarName(caller)


    funcCall = g.innerTestFuncPartGoTestPrepare_callTestableFunc(callerVarName, method, returnParamsCommasStr, varsCommasStr)

    # get var block and add before funcCall
    (varBlock, _, _) = getVarBlock(caller, args, returnParams)

    # func usage total
    funcUsageTotal = "/*{}*/\n{}".format(varBlock, funcCall)
    return funcUsageTotal
	def test_testName(self):
		color.blue("test here baby")
		result = generateTestFileNameForGoTest.splitArgs("par1 int, par2 string")
		expected = [{'var': 'par1', 'varType': 'int'}, {'var': 'par2', 'varType': 'string'}]
		
		# assert_that(result == expected)
		assertMy.equals(result, expected)
def getVarBlock(caller, args, returnParams):
    # split args
    (varBlockInnerArgs, argsVarsCommas, argsVarsList) = g.splitAndFullPrepare(args)
    # split return params
    (varBlockInnerReturnParams, returnParamsVarsCommas, returnParamsList)   = g.splitAndFullPrepare(returnParams)
    returnParamsSplitedList = g.splitArgs(returnParams)
    # generate total var block
    # which consists of:
    #   caller var
    #   inner args vars
    #   return args vars
    varBlockTmpl = """var (
\t{}
{}
{}
        )"""
    varBlock =varBlockTmpl.format(caller, varBlockInnerArgs, varBlockInnerReturnParams)
    print("argsVarsCommas")
    print(argsVarsCommas)
    return (varBlock, argsVarsCommas, returnParamsVarsCommas)