Before:
  call ale#test#SetDirectory('/testplugin/test')
  runtime ale_linters/kotlin/kotlinc.vim
  let g:ale_gradle_path = $PATH

After:
  call ale#test#RestoreDirectory()
  call ale#linter#Reset()
  let $PATH = g:ale_gradle_path
  
Execute(Should return 'gradlew' if found in parent directory):
  call ale#test#SetFilename('gradle-test-files/wrapped-project/src/main/kotlin/dummy.kt')

  AssertEqual
  \ g:dir . '/gradle-test-files/wrapped-project/gradlew',
  \ ale#gradle#FindExecutable(bufnr(''))

Execute(Should return 'gradle' if 'gradlew' not found in parent directory):
  call ale#test#SetFilename('gradle-test-files/unwrapped-project/src/main/kotlin/dummy.kt')
  let $PATH .= ':' . g:dir . '/gradle-test-files'
  
  AssertEqual
  \ 'gradle', 
  \ ale#gradle#FindExecutable(bufnr(''))

Execute(Should return empty string if 'gradlew' not in parent directory and gradle not in path):
  call ale#test#SetFilename('gradle-test-files/unwrapped-project/src/main/kotlin/dummy.kt')
  
  AssertEqual
  \ '', 
  \ ale#gradle#FindExecutable(bufnr(''))