Fix bugs in BinaryIO creator

Signed-off-by: Maksym Pavlenko <makpav@amazon.com>
This commit is contained in:
Maksym Pavlenko
2019-06-19 11:15:17 -07:00
parent 3e7c6f6a6b
commit 5e0d793801
3 changed files with 36 additions and 3 deletions

View File

@@ -23,6 +23,7 @@ import (
"context"
"io"
"io/ioutil"
"net/url"
"os"
"path/filepath"
"runtime"
@@ -153,3 +154,26 @@ func initProducers(t *testing.T, producers producers, stdout, stderr string) {
assert.NilError(t, err)
assert.NilError(t, producers.Stderr.Close())
}
func TestBinaryIOArgs(t *testing.T) {
res, err := BinaryIO("/file.bin", map[string]string{"id": "1"})("")
assert.NilError(t, err)
assert.Equal(t, "binary:///file.bin?id=1", res.Config().Stdout)
assert.Equal(t, "binary:///file.bin?id=1", res.Config().Stderr)
}
func TestBinaryIOAbsolutePath(t *testing.T) {
res, err := BinaryIO("/full/path/bin", nil)("!")
assert.NilError(t, err)
// Test parse back
parsed, err := url.Parse(res.Config().Stdout)
assert.NilError(t, err)
assert.Equal(t, "binary", parsed.Scheme)
assert.Equal(t, "/full/path/bin", parsed.Path)
}
func TestBinaryIOFailOnRelativePath(t *testing.T) {
_, err := BinaryIO("./bin", nil)("!")
assert.Error(t, err, "absolute path needed")
}