Before:
  function! g:CmdOutput(cmd)
    redir => out
      silent exe 'call ' . a:cmd
    redir END
    return out[1:]
  endfunction

Execute (test log util):
  let g:neoformat_verbose = 1
  let out = g:CmdOutput('neoformat#utils#log("test")')

  let g:neoformat_verbose = 0
  AssertEqual 'Neoformat: test', out

Execute (test msg util):
  let g:neoformat_verbose = 0
  " vader persists g: variables between tests so we need to make sure it is zero
  let g:neoformat_only_msg_on_error = 0
  let out = g:CmdOutput('neoformat#utils#msg("test")')

  AssertEqual 'Neoformat: test', out

Execute (test warn util):
  let g:neoformat_verbose = 0
  let out = g:CmdOutput('neoformat#utils#warn("test")')

  AssertEqual 'Neoformat: test', out

Execute (msg when g:neoformat_only_msg_on_error is false):
  let g:neoformat_only_msg_on_error = 0

  let out = g:CmdOutput('neoformat#utils#msg("test")')

  AssertEqual 'Neoformat: test', out

Execute (msg when g:neoformat_only_msg_on_error is true):
  let g:neoformat_only_msg_on_error = 1

  let out = g:CmdOutput('neoformat#utils#msg("test")')

  AssertEqual '', out

Execute (msg when g:neoformat_only_msg_on_error is false):
  let g:neoformat_only_msg_on_error = 0

  let out = g:CmdOutput('neoformat#utils#warn("test")')

  AssertEqual 'Neoformat: test', out

Execute (warn when g:neoformat_only_msg_on_error is true):
  let g:neoformat_only_msg_on_error = 1

  let out = g:CmdOutput('neoformat#utils#warn("test")')

  AssertEqual 'Neoformat: test', out
