Before:
  call ale#assert#SetUpLinterTest('solidity', 'solhint')
  runtime autoload/ale/handlers/solhint.vim

  let b:args = ' --formatter compact %s'

After:
  unlet! b:args
  unlet! b:executable
  call ale#assert#TearDownLinterTest()

Execute(The default command should be correct):
  AssertLinterCwd ''
  AssertLinter 'solhint', ale#Escape('solhint') . b:args

Execute(The options should be configurable):
  let g:ale_solidity_solhint_options = '--foobar'

  AssertLinter 'solhint', ale#Escape('solhint') . ' --foobar' . b:args


Execute(solhint should be run from a containing project with solhint executable):
  call ale#test#SetFilename('../test-files/solhint/Contract.sol')

  let b:executable = ale#path#Simplify(g:dir . '/../test-files/solhint/node_modules/.bin/solhint')

  AssertLinterCwd ale#path#Simplify(g:dir . '/../test-files/solhint')
  AssertLinter b:executable, ale#Escape(b:executable) . b:args