summaryrefslogtreecommitdiffstats
path: root/vendor/github.com/hashicorp/go-sockaddr/sockaddr_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/github.com/hashicorp/go-sockaddr/sockaddr_test.go')
-rw-r--r--vendor/github.com/hashicorp/go-sockaddr/sockaddr_test.go67
1 files changed, 67 insertions, 0 deletions
diff --git a/vendor/github.com/hashicorp/go-sockaddr/sockaddr_test.go b/vendor/github.com/hashicorp/go-sockaddr/sockaddr_test.go
index babaf2a8c..2471beb24 100644
--- a/vendor/github.com/hashicorp/go-sockaddr/sockaddr_test.go
+++ b/vendor/github.com/hashicorp/go-sockaddr/sockaddr_test.go
@@ -1,6 +1,7 @@
package sockaddr_test
import (
+ "encoding/json"
"fmt"
"testing"
@@ -371,3 +372,69 @@ func TestToFoo(t *testing.T) {
}
}
+
+func TestSockAddrMarshaler(t *testing.T) {
+ addr := "192.168.10.24/24"
+ sa, err := sockaddr.NewSockAddr(addr)
+ if err != nil {
+ t.Fatal(err)
+ }
+ sam := &sockaddr.SockAddrMarshaler{
+ SockAddr: sa,
+ }
+ marshaled, err := json.Marshal(sam)
+ if err != nil {
+ t.Fatal(err)
+ }
+ sam2 := &sockaddr.SockAddrMarshaler{}
+ err = json.Unmarshal(marshaled, sam2)
+ if err != nil {
+ t.Fatal(err)
+ }
+ if sam.SockAddr.String() != sam2.SockAddr.String() {
+ t.Fatalf("mismatch after marshaling: %s vs %s", sam.SockAddr.String(), sam2.SockAddr.String())
+ }
+ if sam2.SockAddr.String() != addr {
+ t.Fatalf("mismatch after marshaling: %s vs %s", addr, sam2.SockAddr.String())
+ }
+}
+
+func TestSockAddrMultiMarshaler(t *testing.T) {
+ addr := "192.168.10.24/24"
+ type d struct {
+ Addr *sockaddr.SockAddrMarshaler
+ Addrs []*sockaddr.SockAddrMarshaler
+ }
+ sa, err := sockaddr.NewSockAddr(addr)
+ if err != nil {
+ t.Fatal(err)
+ }
+ myD := &d{
+ Addr: &sockaddr.SockAddrMarshaler{SockAddr: sa},
+ Addrs: []*sockaddr.SockAddrMarshaler{
+ &sockaddr.SockAddrMarshaler{SockAddr: sa},
+ &sockaddr.SockAddrMarshaler{SockAddr: sa},
+ &sockaddr.SockAddrMarshaler{SockAddr: sa},
+ },
+ }
+ marshaled, err := json.Marshal(myD)
+ if err != nil {
+ t.Fatal(err)
+ }
+ var myD2 d
+ err = json.Unmarshal(marshaled, &myD2)
+ if err != nil {
+ t.Fatal(err)
+ }
+ if myD.Addr.String() != myD2.Addr.String() {
+ t.Fatalf("mismatch after marshaling: %s vs %s", myD.Addr.String(), myD2.Addr.String())
+ }
+ if len(myD.Addrs) != len(myD2.Addrs) {
+ t.Fatalf("mismatch after marshaling: %d vs %d", len(myD.Addrs), len(myD2.Addrs))
+ }
+ for i, v := range myD.Addrs {
+ if v.String() != myD2.Addrs[i].String() {
+ t.Fatalf("mismatch after marshaling: %s vs %s", v.String(), myD2.Addrs[i].String())
+ }
+ }
+}