mirror of
https://github.com/absmach/magistrala.git
synced 2026-06-23 04:10:28 +00:00
61d0427898
Signed-off-by: dusan <borovcanindusan1@gmail.com>
169 lines
4.8 KiB
Go
169 lines
4.8 KiB
Go
// Copyright (c) Abstract Machines
|
|
// SPDX-License-Identifier: Apache-2.0
|
|
|
|
package grpcclient_test
|
|
|
|
import (
|
|
"context"
|
|
"fmt"
|
|
"testing"
|
|
"time"
|
|
|
|
grpcClientsV1 "github.com/absmach/magistrala/api/grpc/clients/v1"
|
|
grpcDomainsV1 "github.com/absmach/magistrala/api/grpc/domains/v1"
|
|
grpcTokenV1 "github.com/absmach/magistrala/api/grpc/token/v1"
|
|
tokengrpcapi "github.com/absmach/magistrala/auth/api/grpc/token"
|
|
"github.com/absmach/magistrala/auth/mocks"
|
|
clientsgrpcapi "github.com/absmach/magistrala/clients/api/grpc"
|
|
climocks "github.com/absmach/magistrala/clients/private/mocks"
|
|
domainsgrpcapi "github.com/absmach/magistrala/domains/api/grpc"
|
|
domainsMocks "github.com/absmach/magistrala/domains/private/mocks"
|
|
mglog "github.com/absmach/magistrala/logger"
|
|
"github.com/absmach/magistrala/pkg/errors"
|
|
"github.com/absmach/magistrala/pkg/grpcclient"
|
|
"github.com/absmach/magistrala/pkg/server"
|
|
grpcserver "github.com/absmach/magistrala/pkg/server/grpc"
|
|
"github.com/stretchr/testify/assert"
|
|
"google.golang.org/grpc"
|
|
)
|
|
|
|
func TestSetupToken(t *testing.T) {
|
|
ctx, cancel := context.WithCancel(context.Background())
|
|
defer cancel()
|
|
registerAuthServiceServer := func(srv *grpc.Server) {
|
|
grpcTokenV1.RegisterTokenServiceServer(srv, tokengrpcapi.NewTokenServer(new(mocks.Service)))
|
|
}
|
|
gs := grpcserver.NewServer(ctx, cancel, "auth", server.Config{Port: "12345"}, registerAuthServiceServer, mglog.NewMock())
|
|
go func() {
|
|
err := gs.Start()
|
|
assert.Nil(t, err, fmt.Sprintf(`"Unexpected error creating server %s"`, err))
|
|
}()
|
|
defer func() {
|
|
err := gs.Stop()
|
|
assert.Nil(t, err, fmt.Sprintf(`"Unexpected error stopping server %s"`, err))
|
|
}()
|
|
|
|
cases := []struct {
|
|
desc string
|
|
config grpcclient.Config
|
|
err error
|
|
}{
|
|
{
|
|
desc: "successful",
|
|
config: grpcclient.Config{
|
|
URL: "localhost:12345",
|
|
Timeout: time.Second,
|
|
},
|
|
err: nil,
|
|
},
|
|
{
|
|
desc: "failed with empty URL",
|
|
config: grpcclient.Config{
|
|
URL: "",
|
|
Timeout: time.Second,
|
|
},
|
|
err: errors.New("service is not serving"),
|
|
},
|
|
}
|
|
|
|
for _, c := range cases {
|
|
t.Run(c.desc, func(t *testing.T) {
|
|
client, handler, err := grpcclient.SetupTokenClient(context.Background(), c.config)
|
|
assert.True(t, errors.Contains(err, c.err), fmt.Sprintf("expected %s to contain %s", err, c.err))
|
|
if err == nil {
|
|
assert.NotNil(t, client)
|
|
assert.NotNil(t, handler)
|
|
}
|
|
})
|
|
}
|
|
}
|
|
|
|
func TestSetupClientsClient(t *testing.T) {
|
|
ctx, cancel := context.WithCancel(context.Background())
|
|
defer cancel()
|
|
|
|
registerClientsServiceServer := func(srv *grpc.Server) {
|
|
grpcClientsV1.RegisterClientsServiceServer(srv, clientsgrpcapi.NewServer(new(climocks.Service)))
|
|
}
|
|
gs := grpcserver.NewServer(ctx, cancel, "clients", server.Config{Port: "12345"}, registerClientsServiceServer, mglog.NewMock())
|
|
go func() {
|
|
err := gs.Start()
|
|
assert.Nil(t, err, fmt.Sprintf(`"Unexpected error creating server %s"`, err))
|
|
}()
|
|
time.Sleep(time.Second)
|
|
defer func() {
|
|
err := gs.Stop()
|
|
assert.Nil(t, err, fmt.Sprintf(`"Unexpected error stopping server %s"`, err))
|
|
}()
|
|
|
|
cases := []struct {
|
|
desc string
|
|
config grpcclient.Config
|
|
err error
|
|
}{
|
|
{
|
|
desc: "successful",
|
|
config: grpcclient.Config{
|
|
URL: "localhost:12345",
|
|
Timeout: time.Second,
|
|
},
|
|
err: nil,
|
|
},
|
|
}
|
|
|
|
for _, c := range cases {
|
|
t.Run(c.desc, func(t *testing.T) {
|
|
client, handler, err := grpcclient.SetupClientsClient(context.Background(), c.config)
|
|
assert.True(t, errors.Contains(err, c.err), fmt.Sprintf("expected %s to contain %s", err, c.err))
|
|
if err == nil {
|
|
assert.NotNil(t, client)
|
|
assert.NotNil(t, handler)
|
|
}
|
|
})
|
|
}
|
|
}
|
|
|
|
func TestSetupDomainsClient(t *testing.T) {
|
|
ctx, cancel := context.WithCancel(context.Background())
|
|
defer cancel()
|
|
registerDomainsServiceServer := func(srv *grpc.Server) {
|
|
grpcDomainsV1.RegisterDomainsServiceServer(srv, domainsgrpcapi.NewDomainsServer(new(domainsMocks.Service)))
|
|
}
|
|
gs := grpcserver.NewServer(ctx, cancel, "domains", server.Config{Port: "12345"}, registerDomainsServiceServer, mglog.NewMock())
|
|
go func() {
|
|
err := gs.Start()
|
|
assert.Nil(t, err, fmt.Sprintf("Unexpected error creating server %s", err))
|
|
}()
|
|
time.Sleep(time.Second)
|
|
defer func() {
|
|
err := gs.Stop()
|
|
assert.Nil(t, err, fmt.Sprintf("Unexpected error stopping server %s", err))
|
|
}()
|
|
|
|
cases := []struct {
|
|
desc string
|
|
config grpcclient.Config
|
|
err error
|
|
}{
|
|
{
|
|
desc: "successfully",
|
|
config: grpcclient.Config{
|
|
URL: "localhost:12345",
|
|
Timeout: time.Second,
|
|
},
|
|
err: nil,
|
|
},
|
|
}
|
|
|
|
for _, c := range cases {
|
|
t.Run(c.desc, func(t *testing.T) {
|
|
client, handler, err := grpcclient.SetupDomainsClient(context.Background(), c.config)
|
|
assert.True(t, errors.Contains(err, c.err), fmt.Sprintf("expected %s to contain %s", err, c.err))
|
|
if err == nil {
|
|
assert.NotNil(t, client)
|
|
assert.NotNil(t, handler)
|
|
}
|
|
})
|
|
}
|
|
}
|