install.fairie/dotfiles/.vim/plugged/ale/test/handler/test_javac_handler.vader

98 lines
2.8 KiB
Text
Raw Normal View History

Before:
runtime ale_linters/java/javac.vim
call ale#test#SetDirectory('/testplugin/test')
call ale#test#SetFilename('dummy.java')
After:
call ale#test#RestoreDirectory()
call ale#linter#Reset()
Execute(The javac handler should handle cannot find symbol errors):
AssertEqual
\ [
\ {
\ 'filename': ale#path#Simplify('/tmp/vLPr4Q5/33/foo.java'),
\ 'lnum': 1,
\ 'text': 'error: some error',
\ 'type': 'E',
\ },
\ {
\ 'filename': ale#path#Simplify('/tmp/vLPr4Q5/33/foo.java'),
\ 'lnum': 2,
\ 'col': 5,
\ 'text': 'error: cannot find symbol: BadName',
\ 'type': 'E',
\ },
\ {
\ 'filename': ale#path#Simplify('/tmp/vLPr4Q5/33/foo.java'),
\ 'lnum': 34,
\ 'col': 5,
\ 'text': 'error: cannot find symbol: BadName2',
\ 'type': 'E',
\ },
\ {
\ 'filename': ale#path#Simplify('/tmp/vLPr4Q5/33/foo.java'),
\ 'lnum': 37,
\ 'text': 'warning: some warning',
\ 'type': 'W',
\ },
\ {
\ 'filename': ale#path#Simplify('/tmp/vLPr4Q5/33/foo.java'),
\ 'lnum': 42,
\ 'col': 11,
\ 'text': 'error: cannot find symbol: bar()',
\ 'type': 'E',
\ },
\ {
\ 'filename': ale#path#Simplify('/tmp/vLPr4Q5/33/foo.java'),
\ 'lnum': 58,
\ 'col': 19,
\ 'text': 'error: incompatible types: Bar cannot be converted to Foo',
\ 'type': 'E',
\ },
\ ],
\ ale_linters#java#javac#Handle(bufnr(''), [
\ '/tmp/vLPr4Q5/33/foo.java:1: error: some error',
\ '/tmp/vLPr4Q5/33/foo.java:2: error: cannot find symbol',
\ ' BadName foo() {',
\ ' ^',
\ ' symbol: class BadName',
\ ' location: class Bar',
\ '/tmp/vLPr4Q5/33/foo.java:34: error: cannot find symbol',
\ ' BadName2 foo() {',
\ ' ^',
\ ' symbol: class BadName2',
\ ' location: class Bar',
\ '/tmp/vLPr4Q5/33/foo.java:37: warning: some warning',
\ '/tmp/vLPr4Q5/33/foo.java:42: error: cannot find symbol',
\ ' this.bar();',
\ ' ^',
\ ' symbol: method bar()',
\ '/tmp/vLPr4Q5/33/foo.java:58: error: incompatible types: Bar cannot be converted to Foo',
\ ' this.setFoo(bar);',
\ ' ^',
\ '6 errors',
\ ])
Execute(The javac handler should resolve files from different directories):
AssertEqual
\ [
\ {
\ 'filename': ale#path#Simplify(g:dir . '/Foo.java'),
\ 'lnum': 1,
\ 'text': 'error: some error',
\ 'type': 'E',
\ },
\ {
\ 'filename': ale#path#Simplify(g:dir . '/Bar.java'),
\ 'lnum': 1,
\ 'text': 'error: some error',
\ 'type': 'E',
\ },
\ ],
\ ale_linters#java#javac#Handle(bufnr(''), [
\ './Foo.java:1: error: some error',
\ './Bar.java:1: error: some error',
\ ])