Execute ( SpaceVim api: vim#buffer open ):
  let buffer = SpaceVim#api#import('vim#buffer')
  call buffer.open({'bufname':'foo', 'cmd' : 'setl buftype=nofile bufhidden=wipe'})
  AssertEqual bufname('%'), 'foo'
  AssertEqual &buftype, 'nofile'

Execute ( SpaceVim api: vim#buffer buf_set_lines):
  let buffer = SpaceVim#api#import('vim#buffer')
  let nr = buffer.bufadd('')
  call setbufvar(nr, '&buftype', 'nofile')
  call setbufvar(nr, '&buflisted', 0)
  call buffer.buf_set_lines(nr, 0, 1, 0, ['line 1', 'line 2', 'line 3', 'line 4'])
  AssertEqual getbufline(nr, 1, '$'), ['line 1', 'line 2', 'line 3', 'line 4']
  call buffer.buf_set_lines(nr, 1, 3, 0, ['replace 1', 'replace 2', 'replace 3'])
  AssertEqual getbufline(nr, 1, '$'), ['line 1', 'replace 1', 'replace 2', 'replace 3', 'line 4']
  call buffer.buf_set_lines(nr, -3, -1, 0, ['replace 1', 'replace 2', 'replace 3'])
  AssertEqual getbufline(nr, 1, '$'), ['line 1', 'replace 1', 'replace 2', 'replace 1', 'replace 2', 'replace 3']
  call buffer.buf_set_lines(nr, 2, -2, 0, ['replace 1', 'replace 2', 'replace 3'])
  AssertEqual getbufline(nr, 1, '$'), ['line 1', 'replace 1', 'replace 1', 'replace 2', 'replace 3', 'replace 3']
  exe 'bd!' nr
  unlet nr
  unlet buffer