git-lfs/commands/pointer_test.go

226 lines
7.2 KiB
Go

package commands
import (
"github.com/bmizerany/assert"
"io/ioutil"
"os"
"path/filepath"
"strings"
"testing"
)
func TestPointerWithBuildAndCompareStdinMismatch(t *testing.T) {
repo := NewRepository(t, "empty")
defer repo.Test()
pointer := "version https://git-lfs.github.com/spec/v1\n" +
"oid sha256:6c17f2007cbe934aee6e309b28b2dba3c119c5dff2ef813ed124699efe319868\n" +
"size 123"
cmd := repo.Command("pointer", "--file=some/file", "--stdin")
cmd.Unsuccessful = true
cmd.Input = strings.NewReader(pointer + "\n")
cmd.Before(func() {
path := filepath.Join(repo.Path, "some")
assert.Equal(t, nil, os.MkdirAll(path, 0755))
assert.Equal(t, nil, ioutil.WriteFile(filepath.Join(path, "file"), []byte("simple\n"), 0755))
})
cmd.Output = "Git LFS pointer for some/file\n\n" +
"version https://git-lfs.github.com/spec/v1\n" +
"oid sha256:6c17f2007cbe934aee6e309b28b2dba3c119c5dff2ef813ed124699efe319868\n" +
"size 7\n\n" +
"Git blob OID: e18acd45d7e3ce0451d1d637f9697aa508e07dee\n\n" +
"Pointer from STDIN\n\n" +
pointer + "\n\n" +
"Git blob OID: 905bcc24b5dc074ab870f9944178e398eec3b470\n\n" +
"Pointers do not match"
}
func TestPointerWithBuildAndCompareStdin(t *testing.T) {
repo := NewRepository(t, "empty")
defer repo.Test()
pointer := "version https://git-lfs.github.com/spec/v1\n" +
"oid sha256:6c17f2007cbe934aee6e309b28b2dba3c119c5dff2ef813ed124699efe319868\n" +
"size 7"
cmd := repo.Command("pointer", "--file=some/file", "--stdin")
cmd.Input = strings.NewReader(pointer + "\n")
cmd.Before(func() {
path := filepath.Join(repo.Path, "some")
assert.Equal(t, nil, os.MkdirAll(path, 0755))
assert.Equal(t, nil, ioutil.WriteFile(filepath.Join(path, "file"), []byte("simple\n"), 0755))
})
cmd.Output = "Git LFS pointer for some/file\n\n" +
pointer + "\n\n" +
"Git blob OID: e18acd45d7e3ce0451d1d637f9697aa508e07dee\n\n" +
"Pointer from STDIN\n\n" +
pointer + "\n\n" +
"Git blob OID: e18acd45d7e3ce0451d1d637f9697aa508e07dee"
}
func TestPointerWithCompareStdin(t *testing.T) {
repo := NewRepository(t, "empty")
defer repo.Test()
pointer := "version https://git-lfs.github.com/spec/v1\n" +
"oid sha256:6c17f2007cbe934aee6e309b28b2dba3c119c5dff2ef813ed124699efe319868\n" +
"size 7"
cmd := repo.Command("pointer", "--stdin")
cmd.Input = strings.NewReader(pointer + "\n")
cmd.Output = "Pointer from STDIN\n\n" + pointer
}
func TestPointerWithInvalidCompareStdin(t *testing.T) {
repo := NewRepository(t, "empty")
defer repo.Test()
cmd := repo.Command("pointer", "--stdin")
cmd.Output = "Cannot read from STDIN. The --stdin flag expects a pointer file from STDIN."
cmd.Unsuccessful = true
}
func TestPointerWithNonPointerCompareStdin(t *testing.T) {
repo := NewRepository(t, "empty")
defer repo.Test()
cmd := repo.Command("pointer", "--stdin")
cmd.Input = strings.NewReader("not a pointer")
cmd.Output = "Pointer from STDIN\n\nNot a valid Git LFS pointer file."
cmd.Unsuccessful = true
}
func TestPointerWithBuildAndCompareMismatch(t *testing.T) {
repo := NewRepository(t, "empty")
defer repo.Test()
pointer := "version https://git-lfs.github.com/spec/v1\n" +
"oid sha256:6c17f2007cbe934aee6e309b28b2dba3c119c5dff2ef813ed124699efe319868\n" +
"size 123"
cmd := repo.Command("pointer", "--file=some/file", "--pointer=some/pointer")
cmd.Unsuccessful = true
cmd.Before(func() {
path := filepath.Join(repo.Path, "some")
assert.Equal(t, nil, os.MkdirAll(path, 0755))
assert.Equal(t, nil, ioutil.WriteFile(filepath.Join(path, "pointer"), []byte(pointer+"\n"), 0755))
assert.Equal(t, nil, ioutil.WriteFile(filepath.Join(path, "file"), []byte("simple\n"), 0755))
})
cmd.Output = "Git LFS pointer for some/file\n\n" +
"version https://git-lfs.github.com/spec/v1\n" +
"oid sha256:6c17f2007cbe934aee6e309b28b2dba3c119c5dff2ef813ed124699efe319868\n" +
"size 7\n\n" +
"Git blob OID: e18acd45d7e3ce0451d1d637f9697aa508e07dee\n\n" +
"Pointer from some/pointer\n\n" +
pointer + "\n\n" +
"Git blob OID: 905bcc24b5dc074ab870f9944178e398eec3b470\n\n" +
"Pointers do not match"
}
func TestPointerWithBuildAndCompare(t *testing.T) {
repo := NewRepository(t, "empty")
defer repo.Test()
pointer := "version https://git-lfs.github.com/spec/v1\n" +
"oid sha256:6c17f2007cbe934aee6e309b28b2dba3c119c5dff2ef813ed124699efe319868\n" +
"size 7"
cmd := repo.Command("pointer", "--file=some/file", "--pointer=some/pointer")
cmd.Before(func() {
path := filepath.Join(repo.Path, "some")
assert.Equal(t, nil, os.MkdirAll(path, 0755))
assert.Equal(t, nil, ioutil.WriteFile(filepath.Join(path, "pointer"), []byte(pointer+"\n"), 0755))
assert.Equal(t, nil, ioutil.WriteFile(filepath.Join(path, "file"), []byte("simple\n"), 0755))
})
cmd.Output = "Git LFS pointer for some/file\n\n" +
pointer + "\n\n" +
"Git blob OID: e18acd45d7e3ce0451d1d637f9697aa508e07dee\n\n" +
"Pointer from some/pointer\n\n" +
pointer + "\n\n" +
"Git blob OID: e18acd45d7e3ce0451d1d637f9697aa508e07dee"
}
func TestPointerWithCompare(t *testing.T) {
repo := NewRepository(t, "empty")
defer repo.Test()
pointer := "version https://git-lfs.github.com/spec/v1\n" +
"oid sha256:6c17f2007cbe934aee6e309b28b2dba3c119c5dff2ef813ed124699efe319868\n" +
"size 7"
cmd := repo.Command("pointer", "--pointer=some/pointer")
cmd.Before(func() {
path := filepath.Join(repo.Path, "some")
filename := filepath.Join(path, "pointer")
assert.Equal(t, nil, os.MkdirAll(path, 0755))
assert.Equal(t, nil, ioutil.WriteFile(filename, []byte(pointer+"\n"), 0755))
})
cmd.Output = "Pointer from some/pointer\n\n" + pointer
}
func TestPointerWithInvalidCompare(t *testing.T) {
repo := NewRepository(t, "empty")
defer repo.Test()
cmd := repo.Command("pointer", "--pointer=some/pointer")
cmd.Output = "open some/pointer: no such file or directory"
cmd.Unsuccessful = true
}
func TestPointerWithNonPointerCompare(t *testing.T) {
repo := NewRepository(t, "empty")
defer repo.Test()
cmd := repo.Command("pointer", "--pointer=some/pointer")
cmd.Before(func() {
path := filepath.Join(repo.Path, "some")
assert.Equal(t, nil, os.MkdirAll(path, 0755))
assert.Equal(t, nil, ioutil.WriteFile(filepath.Join(path, "pointer"), []byte("not a pointer"), 0755))
})
cmd.Output = "Pointer from some/pointer\n\nNot a valid Git LFS pointer file."
cmd.Unsuccessful = true
}
func TestPointerWithBuild(t *testing.T) {
repo := NewRepository(t, "empty")
defer repo.Test()
cmd := repo.Command("pointer", "--file=some/file")
cmd.Before(func() {
path := filepath.Join(repo.Path, "some")
filename := filepath.Join(path, "file")
assert.Equal(t, nil, os.MkdirAll(path, 0755))
assert.Equal(t, nil, ioutil.WriteFile(filename, []byte("simple\n"), 0755))
})
cmd.Output = "Git LFS pointer for some/file\n\n" +
"version https://git-lfs.github.com/spec/v1\n" +
"oid sha256:6c17f2007cbe934aee6e309b28b2dba3c119c5dff2ef813ed124699efe319868\n" +
"size 7"
}
func TestPointerWithInvalidBuild(t *testing.T) {
repo := NewRepository(t, "empty")
defer repo.Test()
cmd := repo.Command("pointer", "--file=some/file")
cmd.Output = "open some/file: no such file or directory"
cmd.Unsuccessful = true
}
func TestPointerWithoutArgs(t *testing.T) {
repo := NewRepository(t, "empty")
defer repo.Test()
cmd := repo.Command("pointer")
cmd.Output = "Nothing to do!"
cmd.Unsuccessful = true
}