Skip to content
Snippets Groups Projects
auth_test.go 1.86 KiB
Newer Older
  • Learn to ignore specific revisions
  • Fabian Seidl's avatar
    Fabian Seidl committed
    package api
    
    import (
    	"context"
    	"reflect"
    	"testing"
    
    	apb "code.fbi.h-da.de/danet/gosdn/api/go/gosdn/rbac"
    	"code.fbi.h-da.de/danet/gosdn/controller/rbac"
    	"github.com/google/uuid"
    )
    
    func TestLogin(t *testing.T) {
    	type args struct {
    		ctx      context.Context
    		addr     string
    		username string
    		pwd      string
    	}
    	tests := []struct {
    		name    string
    		args    args
    		want    *apb.LoginResponse
    		wantErr bool
    	}{
    		{
    			name: "default",
    			args: args{
    				ctx:      context.TODO(),
    				addr:     testAPIEndpoint,
    
    Fabian Seidl's avatar
    Fabian Seidl committed
    				username: "testAdmin",
    
    Fabian Seidl's avatar
    Fabian Seidl committed
    				pwd:      "admin",
    			},
    			want: &apb.LoginResponse{
    				Status: apb.Status_STATUS_OK,
    			},
    			wantErr: false,
    		},
    	}
    
    
    Fabian Seidl's avatar
    Fabian Seidl committed
    	err := userService.Add(&rbac.User{UserID: uuid.New(), UserName: "testAdmin", Roles: map[string]string{pndID: "admin"}, Password: "admin"})
    
    Fabian Seidl's avatar
    Fabian Seidl committed
    	if err != nil {
    		t.Errorf("Login() error = %v", err)
    		return
    	}
    
    	for _, tt := range tests {
    		t.Run(tt.name, func(t *testing.T) {
    			got, err := Login(tt.args.ctx, tt.args.addr, tt.args.username, tt.args.pwd)
    			if (err != nil) != tt.wantErr {
    				t.Errorf("Login() error = %v, wantErr %v", err, tt.wantErr)
    				return
    			}
    			if got.Status != apb.Status_STATUS_OK || got.Token == "" {
    				t.Errorf("Login() = %v, want %v", got, tt.want)
    			}
    		})
    	}
    }
    
    func TestLogout(t *testing.T) {
    	type args struct {
    		ctx      context.Context
    		addr     string
    		username string
    	}
    	tests := []struct {
    		name    string
    		args    args
    		want    *apb.LogoutResponse
    		wantErr bool
    	}{
    		// TODO: Add test cases.
    		// Not implemented yet!
    	}
    	for _, tt := range tests {
    		t.Run(tt.name, func(t *testing.T) {
    			got, err := Logout(tt.args.ctx, tt.args.addr, tt.args.username)
    			if (err != nil) != tt.wantErr {
    				t.Errorf("Logout() error = %v, wantErr %v", err, tt.wantErr)
    				return
    			}
    			if !reflect.DeepEqual(got, tt.want) {
    				t.Errorf("Logout() = %v, want %v", got, tt.want)
    			}
    		})
    	}
    }