1package proxyproto
2
3import (
4	"testing"
5)
6
7func TestTCPoverIPv4(t *testing.T) {
8	b := byte(TCPv4)
9	if !AddressFamilyAndProtocol(b).IsIPv4() {
10		t.Fail()
11	}
12	if !AddressFamilyAndProtocol(b).IsStream() {
13		t.Fail()
14	}
15	if AddressFamilyAndProtocol(b).toByte() != b {
16		t.Fail()
17	}
18}
19
20func TestTCPoverIPv6(t *testing.T) {
21	b := byte(TCPv6)
22	if !AddressFamilyAndProtocol(b).IsIPv6() {
23		t.Fail()
24	}
25	if !AddressFamilyAndProtocol(b).IsStream() {
26		t.Fail()
27	}
28	if AddressFamilyAndProtocol(b).toByte() != b {
29		t.Fail()
30	}
31}
32
33func TestUDPoverIPv4(t *testing.T) {
34	b := byte(UDPv4)
35	if !AddressFamilyAndProtocol(b).IsIPv4() {
36		t.Fail()
37	}
38	if !AddressFamilyAndProtocol(b).IsDatagram() {
39		t.Fail()
40	}
41	if AddressFamilyAndProtocol(b).toByte() != b {
42		t.Fail()
43	}
44}
45
46func TestUDPoverIPv6(t *testing.T) {
47	b := byte(UDPv6)
48	if !AddressFamilyAndProtocol(b).IsIPv6() {
49		t.Fail()
50	}
51	if !AddressFamilyAndProtocol(b).IsDatagram() {
52		t.Fail()
53	}
54	if AddressFamilyAndProtocol(b).toByte() != b {
55		t.Fail()
56	}
57}
58
59func TestUnixStream(t *testing.T) {
60	b := byte(UnixStream)
61	if !AddressFamilyAndProtocol(b).IsUnix() {
62		t.Fail()
63	}
64	if !AddressFamilyAndProtocol(b).IsStream() {
65		t.Fail()
66	}
67	if AddressFamilyAndProtocol(b).toByte() != b {
68		t.Fail()
69	}
70}
71
72func TestUnixDatagram(t *testing.T) {
73	b := byte(UnixDatagram)
74	if !AddressFamilyAndProtocol(b).IsUnix() {
75		t.Fail()
76	}
77	if !AddressFamilyAndProtocol(b).IsDatagram() {
78		t.Fail()
79	}
80	if AddressFamilyAndProtocol(b).toByte() != b {
81		t.Fail()
82	}
83}
84
85func TestInvalidAddressFamilyAndProtocol(t *testing.T) {
86	b := byte(UNSPEC)
87	if !AddressFamilyAndProtocol(b).IsUnspec() {
88		t.Fail()
89	}
90	if AddressFamilyAndProtocol(b).toByte() != b {
91		t.Fail()
92	}
93}
94