本文整理汇总了Golang中github.com/hudl/fargo.Instance类的典型用法代码示例。如果您正苦于以下问题:Golang Instance类的具体用法?Golang Instance怎么用?Golang Instance使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了Instance类的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: TestGetFloat
func TestGetFloat(t *testing.T) {
Convey("Given an instance", t, func() {
instance := new(fargo.Instance)
Convey("With metadata", func() {
metadata := new(fargo.InstanceMetadata)
instance.Metadata = *metadata
Convey("That has a float64 value", func() {
key := "d"
value := 1.9
metadata.Raw = []byte("<" + key + ">" + strconv.FormatFloat(value, 'f', -1, 64) + "</" + key + ">")
Convey("GetFloat64 should return that value", func() {
actualValue, err := metadata.GetFloat64(key)
So(err, ShouldBeNil)
So(actualValue, ShouldEqual, value)
})
})
Convey("That has a float32 value", func() {
key := "d"
value := 1.9
metadata.Raw = []byte("<" + key + ">" + strconv.FormatFloat(value, 'f', -1, 32) + "</" + key + ">")
Convey("GetFloat32 should return that value", func() {
actualValue, err := metadata.GetFloat32(key)
So(err, ShouldBeNil)
So(actualValue, ShouldEqual, float32(1.9))
})
})
})
})
}
示例2: TestGetInt
func TestGetInt(t *testing.T) {
Convey("Given an instance", t, func() {
instance := new(fargo.Instance)
Convey("With metadata", func() {
metadata := new(fargo.InstanceMetadata)
instance.Metadata = *metadata
Convey("That has a single integer value", func() {
key := "d"
value := 1
metadata.Raw = []byte("<" + key + ">" + strconv.Itoa(value) + "</" + key + ">")
Convey("GetInt should return that value", func() {
actualValue, err := metadata.GetInt(key)
So(err, ShouldBeNil)
So(actualValue, ShouldEqual, value)
})
})
})
})
}
示例3: TestSerializeMeta
func TestSerializeMeta(t *testing.T) {
Convey("Given an instance", t, func() {
instance := new(fargo.Instance)
Convey("With metadata", func() {
instance.SetMetadataString("test", "value")
Convey("Serializing results in correct JSON", func() {
b, err := instance.Metadata.MarshalJSON()
So(err, ShouldBeNil)
So(string(b), ShouldEqual, "{\"test\":\"value\"}")
})
Convey("Serializing results in correct XML", func() {
b, err := xml.Marshal(instance.Metadata)
So(err, ShouldBeNil)
So(string(b), ShouldEqual, "<InstanceMetadata><test>value</test></InstanceMetadata>")
})
Convey("Blank metadata results in blank XML", func() {
metadata := new(fargo.InstanceMetadata)
b, err := xml.Marshal(metadata)
So(err, ShouldBeNil)
So(string(b), ShouldEqual, "<InstanceMetadata></InstanceMetadata>")
})
})
})
}
示例4: TestInstanceID
func TestInstanceID(t *testing.T) {
i := fargo.Instance{
HostName: "i-6543",
Port: 9090,
App: "TESTAPP",
IPAddr: "127.0.0.10",
VipAddress: "127.0.0.10",
SecureVipAddress: "127.0.0.10",
Status: fargo.UP,
}
Convey("Given an instance with DataCenterInfo.Name set to Amazon", t, func() {
i.DataCenterInfo = fargo.DataCenterInfo{Name: fargo.Amazon}
Convey("When UniqueID function has NOT been set", func() {
i.UniqueID = nil
Convey("And InstanceID has been set in AmazonMetadata", func() {
i.DataCenterInfo.Metadata.InstanceID = "EXPECTED-ID"
Convey("Id() should return the provided InstanceID", func() {
So(i.Id(), ShouldEqual, "EXPECTED-ID")
})
})
Convey("And InstanceID has NOT been set in AmazonMetadata", func() {
i.DataCenterInfo.Metadata.InstanceID = ""
Convey("Id() should return an empty string", func() {
So(i.Id(), ShouldEqual, "")
})
})
})
Convey("When UniqueID function has been set", func() {
i.UniqueID = func(i fargo.Instance) string {
return fmt.Sprintf("%s:%d", i.App, 123)
}
Convey("And InstanceID has been set in AmazonMetadata", func() {
i.DataCenterInfo.Metadata.InstanceID = "UNEXPECTED"
Convey("Id() should return the ID that is provided by UniqueID", func() {
So(i.Id(), ShouldEqual, "TESTAPP:123")
})
})
Convey("And InstanceID has not been set in AmazonMetadata", func() {
i.DataCenterInfo.Metadata.InstanceID = ""
Convey("Id() should return the ID that is provided by UniqueID", func() {
So(i.Id(), ShouldEqual, "TESTAPP:123")
})
})
})
})
Convey("Given an instance with DataCenterInfo.Name set to MyOwn", t, func() {
i.DataCenterInfo = fargo.DataCenterInfo{Name: fargo.MyOwn}
Convey("When UniqueID function has NOT been set", func() {
i.UniqueID = nil
Convey("Id() should return the host name", func() {
So(i.Id(), ShouldEqual, "i-6543")
})
})
Convey("When UniqueID function has been set", func() {
i.Metadata.Raw = []byte(`{"instanceId": "unique-id"}`)
i.UniqueID = func(i fargo.Instance) string {
if id, err := i.Metadata.GetString("instanceId"); err == nil {
return fmt.Sprintf("%s:%s", i.HostName, id)
}
return i.HostName
}
Convey("Id() should return the ID that is provided by UniqueID", func() {
So(i.Id(), ShouldEqual, "i-6543:unique-id")
})
})
})
}
示例5: instanceRegistered
func (e *eurekaRegistry) instanceRegistered(instance *fargo.Instance) bool {
_, err := e.conn.GetInstance(instance.App, instance.UniqueID(*instance))
return err == nil
}