...
1 package pgtype_test
2
3 import (
4 "bytes"
5 "net"
6 "reflect"
7 "testing"
8
9 "github.com/jackc/pgtype"
10 "github.com/jackc/pgtype/testutil"
11 )
12
13 func TestMacaddrTranscode(t *testing.T) {
14 testutil.TestSuccessfulTranscode(t, "macaddr", []interface{}{
15 &pgtype.Macaddr{Addr: mustParseMacaddr(t, "01:23:45:67:89:ab"), Status: pgtype.Present},
16 &pgtype.Macaddr{Status: pgtype.Null},
17 })
18 }
19
20 func TestMacaddrSet(t *testing.T) {
21 successfulTests := []struct {
22 source interface{}
23 result pgtype.Macaddr
24 }{
25 {
26 source: mustParseMacaddr(t, "01:23:45:67:89:ab"),
27 result: pgtype.Macaddr{Addr: mustParseMacaddr(t, "01:23:45:67:89:ab"), Status: pgtype.Present},
28 },
29 {
30 source: "01:23:45:67:89:ab",
31 result: pgtype.Macaddr{Addr: mustParseMacaddr(t, "01:23:45:67:89:ab"), Status: pgtype.Present},
32 },
33 }
34
35 for i, tt := range successfulTests {
36 var r pgtype.Macaddr
37 err := r.Set(tt.source)
38 if err != nil {
39 t.Errorf("%d: %v", i, err)
40 }
41
42 if !reflect.DeepEqual(r, tt.result) {
43 t.Errorf("%d: expected %v to convert to %v, but it was %v", i, tt.source, tt.result, r)
44 }
45 }
46 }
47
48 func TestMacaddrAssignTo(t *testing.T) {
49 {
50 src := pgtype.Macaddr{Addr: mustParseMacaddr(t, "01:23:45:67:89:ab"), Status: pgtype.Present}
51 var dst net.HardwareAddr
52 expected := mustParseMacaddr(t, "01:23:45:67:89:ab")
53
54 err := src.AssignTo(&dst)
55 if err != nil {
56 t.Error(err)
57 }
58
59 if bytes.Compare([]byte(dst), []byte(expected)) != 0 {
60 t.Errorf("expected %v to assign %v, but result was %v", src, expected, dst)
61 }
62 }
63
64 {
65 src := pgtype.Macaddr{Addr: mustParseMacaddr(t, "01:23:45:67:89:ab"), Status: pgtype.Present}
66 var dst string
67 expected := "01:23:45:67:89:ab"
68
69 err := src.AssignTo(&dst)
70 if err != nil {
71 t.Error(err)
72 }
73
74 if dst != expected {
75 t.Errorf("expected %v to assign %v, but result was %v", src, expected, dst)
76 }
77 }
78 }
79
View as plain text