-
Notifications
You must be signed in to change notification settings - Fork 2
/
type_test.go
83 lines (76 loc) · 2.38 KB
/
type_test.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
package eureka_test
import (
"encoding/xml"
"io/ioutil"
"path/filepath"
"time"
. "github.com/onsi/ginkgo"
. "github.com/onsi/gomega"
"github.com/st3v/go-eureka"
)
var _ = Describe("Instance", func() {
var (
instanceXml []byte
instance = eureka.Instance{
XMLName: xml.Name{Local: "instance"},
ID: "id",
HostName: "host",
AppName: "myapp",
IPAddr: "1.2.3.4",
VIPAddr: "vip.address",
SecureVIPAddr: "secure.vip.address",
Status: eureka.StatusUp,
StatusOverride: eureka.StatusUnknown,
Port: 80,
SecurePort: 443,
HomePageURL: "home.page.url",
StatusPageURL: "status.page.url",
HealthCheckURL: "health.check.url",
LeaseInfo: eureka.Lease{
RenewalInterval: eureka.Duration(30 * time.Second),
Duration: eureka.Duration(90 * time.Second),
RegistrationTime: eureka.Time(time.Unix(0, 1468519783576*int64(time.Millisecond))),
LastRenewalTime: eureka.Time(time.Unix(0, 1468519783577*int64(time.Millisecond))),
EvictionTime: eureka.Time(time.Unix(0, 1468519783578*int64(time.Millisecond))),
ServiceUpTime: eureka.Time(time.Unix(0, 1468519783579*int64(time.Millisecond))),
},
DataCenterInfo: eureka.DataCenter{
Type: eureka.DataCenterTypePrivate,
Metadata: eureka.AmazonMetadata{
HostName: "dchost",
PublicHostName: "dc.public.host",
LocalHostName: "dc.local.host",
PublicIPV4: "1.2.3.5",
LocalIPV4: "1.2.3.6",
AvailabilityZone: "az",
InstanceID: "instance.id",
InstanceType: "instance.type",
AmiID: "ami.id",
AmiLaunchIndex: "ami.launch.index",
AmiManifestPath: "ami.manifest.path",
},
},
Metadata: map[string]string{
"b": "two",
"a": "one",
},
}
)
BeforeEach(func() {
var err error
instanceXml, err = ioutil.ReadFile(filepath.Join("fixtures", "instance.xml"))
Expect(err).ToNot(HaveOccurred())
instanceXml = removeIdendation(instanceXml)
})
It("can be marshaled to an XML string", func() {
data, err := xml.Marshal(instance)
Expect(err).ToNot(HaveOccurred())
Expect(data).To(Equal(instanceXml))
})
It("can be unmarshaled from an XML string", func() {
var actual eureka.Instance
err := xml.Unmarshal(instanceXml, &actual)
Expect(err).ToNot(HaveOccurred())
Expect(actual).To(Equal(instance))
})
})