Skip to content
Snippets Groups Projects
transport_test.go 2.21 KiB
Newer Older
  • Learn to ignore specific revisions
  • package nucleus
    
    
    import (
    	"testing"
    
    
    	tpb "code.fbi.h-da.de/danet/gosdn/api/go/gosdn/transport"
    
    	"code.fbi.h-da.de/danet/gosdn/controller/interfaces/plugin"
    
    	gpb "github.com/openconfig/gnmi/proto/gnmi"
    
    // TestNewTransport is for input validation only. Functional tests
    // are conducted at the transport implementation constructors.
    
    func TestNewTransport(t *testing.T) {
    	type args struct {
    
    		opts   *tpb.TransportOption
    		plugin plugin.Plugin
    
    	}
    	tests := []struct {
    		name    string
    		args    args
    		wantErr bool
    	}{
    
    		{
    			name: "default",
    			args: args{
    				opts: &tpb.TransportOption{
    					Address:  "test",
    					Username: "test",
    					Password: "test",
    					Tls:      false,
    					TransportOption: &tpb.TransportOption_GnmiTransportOption{
    						GnmiTransportOption: &tpb.GnmiTransportOption{
    							Encoding: gpb.Encoding_PROTO,
    						},
    					},
    				},
    
    			},
    			wantErr: false,
    		},
    		{
    			name: "no opt",
    			args: args{
    
    			},
    			wantErr: true,
    		},
    		{
    			name: "no sbi",
    			args: args{
    				opts: &tpb.TransportOption{
    					Address:  "test",
    					Username: "test",
    					Password: "test",
    					Tls:      false,
    					TransportOption: &tpb.TransportOption_GnmiTransportOption{
    						GnmiTransportOption: &tpb.GnmiTransportOption{
    							Encoding: gpb.Encoding_PROTO,
    						},
    					},
    				},
    
    			},
    			wantErr: true,
    		},
    		{
    			name: "no implementation options",
    			args: args{
    				opts: &tpb.TransportOption{
    					Address:  "test",
    					Username: "test",
    					Password: "test",
    					Tls:      false,
    				},
    
    			},
    			wantErr: true,
    		},
    		{
    			name: "no inner implementation options",
    			args: args{
    				opts: &tpb.TransportOption{
    					Address:         "test",
    					Username:        "test",
    					Password:        "test",
    					Tls:             false,
    					TransportOption: &tpb.TransportOption_GnmiTransportOption{},
    				},
    
    	}
    	for _, tt := range tests {
    		t.Run(tt.name, func(t *testing.T) {
    
    			_, err := NewTransport(tt.args.opts, tt.args.plugin)
    
    			if (err != nil) != tt.wantErr {
    				t.Errorf("NewTransport() error = %v, wantErr %v", err, tt.wantErr)
    				return
    			}
    		})
    	}
    }