github.com/viant/toolbox@v0.34.5/storage/scp/fileinfo_parser_test.go (about)

     1  package scp_test
     2  
     3  import (
     4  	"github.com/stretchr/testify/assert"
     5  	"github.com/viant/toolbox/storage/scp"
     6  	"net/url"
     7  	"testing"
     8  )
     9  
    10  // -rw-r--r--  1 awitas  wheel  6668 Oct 25 11:41:44 2017 /build/dcm/dcm-server/target/classes/dcm.properties
    11  
    12  func Test_ExtractFileInfo(t *testing.T) {
    13  
    14  	var parserURL, _ = url.Parse("scp://127.0.0.1/")
    15  
    16  	{
    17  		var parser = scp.Parser{IsoTimeStyle: false}
    18  		objects, err := parser.Parse(parserURL, "-rw-r--r--  1 awitas  1742120565   414 Jun  8 14:14:08 2017 f.pub", true)
    19  		if assert.Nil(t, err) {
    20  			var object = objects[0]
    21  			assert.Equal(t, "scp://127.0.0.1/f.pub", object.URL())
    22  			assert.Equal(t, int64(1496931248), object.FileInfo().ModTime().Unix())
    23  			assert.Equal(t, int64(414), object.FileInfo().Size())
    24  			assert.Equal(t, true, object.IsContent())
    25  		}
    26  	}
    27  	{
    28  		parserURL, _ = url.Parse("scp://127.0.0.1:22/")
    29  		var parser = scp.Parser{IsoTimeStyle: true}
    30  		var objects, err = parser.Parse(parserURL, "-rw-r--r-- 1 awitas awitas 2002 2017-11-04 22:29:33.363458941 +0000 aerospikeciads_aerospike.conf", true)
    31  		if assert.Nil(t, err) {
    32  			var object = objects[0]
    33  			assert.Equal(t, "scp://127.0.0.1:22/aerospikeciads_aerospike.conf", object.URL())
    34  			assert.Equal(t, int64(1509834573), object.FileInfo().ModTime().Unix())
    35  			assert.Equal(t, int64(2002), object.FileInfo().Size())
    36  			assert.Equal(t, true, object.IsContent())
    37  		}
    38  	}
    39  
    40  	{
    41  		parserURL, _ = url.Parse("scp://127.0.0.1:22/")
    42  		var parser = scp.Parser{IsoTimeStyle: true}
    43  		var objects, err = parser.Parse(parserURL, `-rw-------  1 myusername  MYGROUP\\Domain Users  1679 Mar  8 15:27:22 2019 /Users/myusername/.ssh/git_id_rsa`, true)
    44  		if assert.Nil(t, err) {
    45  			var object = objects[0]
    46  			assert.Equal(t, "scp://127.0.0.1:22/Users/myusername/.ssh/git_id_rsa", object.URL())
    47  			assert.Equal(t, int64(1552058842), object.FileInfo().ModTime().Unix())
    48  			assert.Equal(t, int64(1679), object.FileInfo().Size())
    49  			assert.Equal(t, true, object.IsContent())
    50  		}
    51  
    52  	}
    53  	{
    54  		parserURL, _ = url.Parse("scp://127.0.0.1:22/")
    55  		var parser = scp.Parser{IsoTimeStyle: true}
    56  		var objects, err = parser.Parse(parserURL, `rwxr-xr-x@ 1 "github.com/viant/toolbox/storage/scp"  WORKGROUP\\Domain Users  108143621 Apr 19 15:55:57 2019 /Users/ojoseph/git/test-app/../go-cm/dist/linux/go-cm`, true)
    57  		if assert.Nil(t, err) {
    58  			var object = objects[0]
    59  			assert.Equal(t, "scp://127.0.0.1:22/Users/ojoseph/git/test-app/../go-cm/dist/linux/go-cm", object.URL())
    60  			assert.Equal(t, int64(1555689357), object.FileInfo().ModTime().Unix())
    61  			assert.Equal(t, int64(108143621), object.FileInfo().Size())
    62  			assert.Equal(t, true, object.IsContent())
    63  		}
    64  
    65  	}
    66  
    67  }