Skip to content
This repository was archived by the owner on Feb 26, 2024. It is now read-only.

Commit 6d1e305

Browse files
committed
update: add ip array test
1 parent 9246655 commit 6d1e305

File tree

1 file changed

+54
-0
lines changed

1 file changed

+54
-0
lines changed

lib/column/column_test.go

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ package column_test
33
import (
44
"bytes"
55
"fmt"
6+
"net"
67
"reflect"
78
"testing"
89
"time"
@@ -480,3 +481,56 @@ func Test_Column_UUID(t *testing.T) {
480481
}
481482
}
482483
}
484+
485+
func Test_Column_IP(t *testing.T) {
486+
var (
487+
buf bytes.Buffer
488+
encoder = binary.NewEncoder(&buf)
489+
decoder = binary.NewDecoder(&buf)
490+
)
491+
if column, err := columns.Factory("column_name", "IPv4", time.Local); assert.NoError(t, err) {
492+
for _, ip := range []string{
493+
"127.0.0.1",
494+
} {
495+
if err := column.Write(encoder, ip); assert.NoError(t, err) {
496+
if v, err := column.Read(decoder); assert.NoError(t, err) {
497+
assert.Equal(t, net.ParseIP(ip), v)
498+
}
499+
}
500+
}
501+
if assert.Equal(t, "column_name", column.Name()) && assert.Equal(t, "IPv4", column.CHType()) {
502+
assert.Equal(t, reflect.TypeOf(net.IP{}).Kind(), column.ScanType().Kind())
503+
}
504+
if err := column.Write(encoder, int8(0)); assert.Error(t, err) {
505+
if e, ok := err.(*columns.ErrUnexpectedType); assert.True(t, ok) {
506+
assert.Equal(t, int8(0), e.T)
507+
}
508+
}
509+
if err := column.Write(encoder, ""); assert.Error(t, err) {
510+
assert.Equal(t, &columns.ErrUnexpectedType{Column: column, T: ""}, err)
511+
}
512+
}
513+
514+
if column, err := columns.Factory("column_name", "IPv6", time.Local); assert.NoError(t, err) {
515+
for _, ip := range []string{
516+
"2001:0db8:0000:0000:0000:ff00:0042:8329",
517+
} {
518+
if err := column.Write(encoder, ip); assert.NoError(t, err) {
519+
if v, err := column.Read(decoder); assert.NoError(t, err) {
520+
assert.Equal(t, net.ParseIP(ip), v)
521+
}
522+
}
523+
}
524+
if assert.Equal(t, "column_name", column.Name()) && assert.Equal(t, "IPv6", column.CHType()) {
525+
assert.Equal(t, reflect.TypeOf(net.IP{}).Kind(), column.ScanType().Kind())
526+
}
527+
if err := column.Write(encoder, int8(0)); assert.Error(t, err) {
528+
if e, ok := err.(*columns.ErrUnexpectedType); assert.True(t, ok) {
529+
assert.Equal(t, int8(0), e.T)
530+
}
531+
}
532+
if err := column.Write(encoder, ""); assert.Error(t, err) {
533+
assert.Equal(t, &columns.ErrUnexpectedType{Column: column, T: ""}, err)
534+
}
535+
}
536+
}

0 commit comments

Comments
 (0)