podman
146 строк · 2.6 Кб
1package specgenutil2
3import (4"reflect"5"testing"6)
7
8func TestCreateExpose(t *testing.T) {9single := make(map[uint16]string, 0)10single[99] = "tcp"11
12simpleRange := make(map[uint16]string, 0)13simpleRange[99] = "tcp"14simpleRange[100] = "tcp"15
16simpleRangeUDP := make(map[uint16]string, 0)17simpleRangeUDP[99] = "udp"18simpleRangeUDP[100] = "udp"19type args struct {20expose []string21}22tests := []struct {23name string24args args
25want map[uint16]string26wantErr bool27}{28{29name: "single port",30args: args{31expose: []string{"99"},32},33want: single,34wantErr: false,35},36{37name: "simple range tcp",38args: args{39expose: []string{"99-100"},40},41want: simpleRange,42wantErr: false,43},44{45name: "simple range udp",46args: args{47expose: []string{"99-100/udp"},48},49want: simpleRangeUDP,50wantErr: false,51},52{53name: "range inverted should fail",54args: args{55expose: []string{"100-99"},56},57want: nil,58wantErr: true,59},60{61name: "specifying protocol twice should fail",62args: args{63expose: []string{"99/tcp-100/tcp"},64},65want: nil,66wantErr: true,67},68}69for _, tt := range tests {70t.Run(tt.name, func(t *testing.T) {71got, err := CreateExpose(tt.args.expose)72if (err != nil) != tt.wantErr {73t.Errorf("CreateExpose() error = %v, wantErr %v", err, tt.wantErr)74return75}76if !reflect.DeepEqual(got, tt.want) {77t.Errorf("CreateExpose() got = %v, want %v", got, tt.want)78}79})80}81}
82
83func Test_parseAndValidatePort(t *testing.T) {84type args struct {85port string86}87tests := []struct {88name string89args args
90want uint1691wantErr bool92}{93{94name: "0 should fail",95args: args{96port: "0",97},98want: 0,99wantErr: true,100},101{102name: "over 65535 should fail",103args: args{104port: "66666",105},106want: 0,107wantErr: true,108},109{110name: "",111args: args{112port: "99",113},114want: 99,115wantErr: false,116},117{118name: "negative values should fail",119args: args{120port: "-1",121},122want: 0,123wantErr: true,124},125{126name: "protocol should fail",127args: args{128port: "99/tcp",129},130want: 0,131wantErr: true,132},133}134for _, tt := range tests {135t.Run(tt.name, func(t *testing.T) {136got, err := parseAndValidatePort(tt.args.port)137if (err != nil) != tt.wantErr {138t.Errorf("parseAndValidatePort() error = %v, wantErr %v", err, tt.wantErr)139return140}141if got != tt.want {142t.Errorf("parseAndValidatePort() got = %v, want %v", got, tt.want)143}144})145}146}
147