github.com/billybanfield/evergreen@v0.0.0-20170525200750-eeee692790f7/hostutil/host_status_test.go (about)

     1  package hostutil
     2  
     3  import (
     4  	"testing"
     5  
     6  	"github.com/evergreen-ci/evergreen/util"
     7  	. "github.com/smartystreets/goconvey/convey"
     8  )
     9  
    10  func TestHostSshParse(t *testing.T) {
    11  	Convey("Parsing a string with hostname and port should be parsed correctly", t, func() {
    12  		hostname1 := "host:123"
    13  		host1, err := util.ParseSSHInfo(hostname1)
    14  		So(err, ShouldBeNil)
    15  		So(host1.User, ShouldEqual, "")
    16  		So(host1.Hostname, ShouldEqual, "host")
    17  		So(host1.Port, ShouldEqual, "123")
    18  	})
    19  
    20  	Convey("Parsing a string with only a hostname should assume default port", t, func() {
    21  		hostname2 := "host"
    22  		host2, err := util.ParseSSHInfo(hostname2)
    23  		So(err, ShouldBeNil)
    24  		So(host2.User, ShouldEqual, "")
    25  		So(host2.Hostname, ShouldEqual, "host")
    26  		So(host2.Port, ShouldEqual, "22")
    27  	})
    28  
    29  	Convey("Parsing a string with user, hostname, and port should extract all 3", t, func() {
    30  		hostname3 := "user@host:400"
    31  		host3, err := util.ParseSSHInfo(hostname3)
    32  		So(err, ShouldBeNil)
    33  		So(host3.User, ShouldEqual, "user")
    34  		So(host3.Hostname, ShouldEqual, "host")
    35  		So(host3.Port, ShouldEqual, "400")
    36  	})
    37  
    38  	Convey("Parsing a string with user and host should assume the default port", t, func() {
    39  		hostname4 := "user@host"
    40  		host4, err := util.ParseSSHInfo(hostname4)
    41  		So(err, ShouldBeNil)
    42  		So(host4.User, ShouldEqual, "user")
    43  		So(host4.Hostname, ShouldEqual, "host")
    44  		So(host4.Port, ShouldEqual, "22")
    45  	})
    46  }