+++ /dev/null
-package main
-
-import (
- "bytes"
- "io/ioutil"
- "os"
- "strings"
- "testing"
-)
-
-func expectBufferEquality(t *testing.T, name string, buffer *bytes.Buffer, expected string) {
- output := buffer.String()
- if output != expected {
- t.Errorf("incorrect %s:\n%s\n\nexpected %s:\n%s", name, output, name, expected)
- t.Log([]rune(output))
- t.Log([]rune(expected))
- }
-}
-
-func expectProcessMainResults(t *testing.T, input string, args []string, exitCode int, expectedOutput string, expectedError string) {
- inputReader := strings.NewReader(input)
- outputBuffer := new(bytes.Buffer)
- errorBuffer := new(bytes.Buffer)
-
- returnCode := processMain(args, inputReader, outputBuffer, errorBuffer)
-
- expectBufferEquality(t, "output", outputBuffer, expectedOutput)
- expectBufferEquality(t, "error", errorBuffer, expectedError)
-
- if returnCode != exitCode {
- t.Error("incorrect return code:", returnCode, "expected", exitCode)
- }
-}
-
-func TestProcessMainReadFromStdin(t *testing.T) {
- input := `
- [mytoml]
- a = 42`
- expectedOutput := `{
- "mytoml": {
- "a": 42
- }
-}
-`
- expectedError := ``
- expectedExitCode := 0
-
- expectProcessMainResults(t, input, []string{}, expectedExitCode, expectedOutput, expectedError)
-}
-
-func TestProcessMainReadFromFile(t *testing.T) {
- input := `
- [mytoml]
- a = 42`
-
- tmpfile, err := ioutil.TempFile("", "example.toml")
- if err != nil {
- t.Fatal(err)
- }
- if _, err := tmpfile.Write([]byte(input)); err != nil {
- t.Fatal(err)
- }
-
- defer os.Remove(tmpfile.Name())
-
- expectedOutput := `{
- "mytoml": {
- "a": 42
- }
-}
-`
- expectedError := ``
- expectedExitCode := 0
-
- expectProcessMainResults(t, ``, []string{tmpfile.Name()}, expectedExitCode, expectedOutput, expectedError)
-}
-
-func TestProcessMainReadFromMissingFile(t *testing.T) {
- expectedError := `open /this/file/does/not/exist: no such file or directory
-`
- expectProcessMainResults(t, ``, []string{"/this/file/does/not/exist"}, -1, ``, expectedError)
-}