Skip to content
Snippets Groups Projects
Commit 4aae4b1a authored by Fabian Seidl's avatar Fabian Seidl
Browse files

test for auth_interceptor unary function

parent dc4823d7
No related branches found
No related tags found
No related merge requests found
This commit is part of merge request !308. Comments created here will be created in the context of that merge request.
package server
import (
"context"
"log"
"net"
"testing"
apb "code.fbi.h-da.de/danet/gosdn/api/go/gosdn/rbac"
"code.fbi.h-da.de/danet/gosdn/controller/rbac"
"code.fbi.h-da.de/danet/gosdn/controller/store"
"google.golang.org/grpc"
"google.golang.org/grpc/credentials/insecure"
"google.golang.org/grpc/metadata"
"google.golang.org/grpc/test/bufconn"
)
func dialer() func(context.Context, string) (net.Conn, error) {
listener := bufconn.Listen(1024 * 1024)
interceptor := NewAuthInterceptor(jwt)
server := grpc.NewServer(grpc.UnaryInterceptor(interceptor.Unary()), grpc.StreamInterceptor(interceptor.Stream()))
apb.RegisterUserServiceServer(server, &User{})
go func() {
if err := server.Serve(listener); err != nil {
log.Fatal(err)
}
}()
return func(context.Context, string) (net.Conn, error) {
return listener.Dial()
}
}
func TestAuthInterceptor_Unary(t *testing.T) {
token, err := jwt.GenerateToken(rbac.User{UserName: "testAdmin"})
if err != nil {
log.Fatal(err)
}
user, err := userc.Get(store.Query{Name: "testAdmin"})
if err != nil {
log.Fatal(err)
}
user.SetToken(token)
err = userc.Update(user)
if err != nil {
log.Fatal(err)
}
md := metadata.Pairs("authorize", token)
type args struct {
ctx context.Context
request *apb.GetUsersRequest
}
tests := []struct {
name string
args args
want *apb.GetUsersResponse
wantErr bool
}{
{
name: "default unary interceptor",
args: args{
ctx: metadata.NewOutgoingContext(context.Background(), md),
request: &apb.GetUsersRequest{},
},
want: &apb.GetUsersResponse{
Status: apb.Status_STATUS_OK,
},
wantErr: false,
},
}
ctx := context.Background()
conn, err := grpc.DialContext(ctx, "", grpc.WithTransportCredentials(insecure.NewCredentials()), grpc.WithContextDialer(dialer()))
if err != nil {
log.Fatal(err)
}
defer conn.Close()
client := apb.NewUserServiceClient(conn)
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
got, err := client.GetUsers(tt.args.ctx, tt.args.request)
if (err != nil) != tt.wantErr {
t.Errorf("AuthInterceptor.Unary() = %v, wantErr %v", err, tt.wantErr)
return
}
if got.Status != tt.want.Status {
t.Errorf("AuthInterceptor.Unary() = %v, wantErr %v", err, tt.wantErr)
return
}
})
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment