github.phpd.cn/hashicorp/packer@v1.3.2/packer/rpc/fileinfo_test.go (about) 1 package rpc 2 3 import ( 4 "os" 5 "testing" 6 "time" 7 ) 8 9 type dummyFileInfo struct{} 10 11 func (fi dummyFileInfo) Name() string { return "dummy" } 12 func (fi dummyFileInfo) Size() int64 { return 64 } 13 func (fi dummyFileInfo) Mode() os.FileMode { return 0644 } 14 func (fi dummyFileInfo) ModTime() time.Time { 15 return time.Time{}.Add(1 * time.Minute) 16 } 17 func (fi dummyFileInfo) IsDir() bool { return false } 18 func (fi dummyFileInfo) Sys() interface{} { return nil } 19 func TestNewFileInfoNilPointer(t *testing.T) { 20 fi := NewFileInfo(os.FileInfo(nil)) 21 if fi != nil { 22 t.Fatalf("should be nil") 23 } 24 } 25 26 func TestNewFileInfoValues(t *testing.T) { 27 in := dummyFileInfo{} 28 fi := NewFileInfo(in) 29 30 if fi.Size() != in.Size() { 31 t.Errorf("fi.Size() = %d; want %d", fi.Size(), in.Size()) 32 } 33 34 if fi.Name() != in.Name() { 35 t.Errorf("fi.Name() = %s; want %s", fi.Name(), in.Name()) 36 } 37 38 if fi.Mode() != in.Mode() { 39 t.Errorf("fi.Mode() = %#o; want %#o", fi.Mode(), in.Mode()) 40 } 41 42 if fi.ModTime() != in.ModTime() { 43 t.Errorf("fi.ModTime() = %s; want %s", fi.ModTime(), in.ModTime()) 44 } 45 46 if fi.IsDir() != in.IsDir() { 47 t.Errorf("fi.IsDir() = %t; want %t", fi.IsDir(), in.IsDir()) 48 } 49 }