Skip to content

Commit d98bba3

Browse files
increasing code cov
1 parent e596925 commit d98bba3

7 files changed

+168
-4
lines changed
Lines changed: 44 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,52 @@
11
package servicenowsdkgo
22

3-
import "testing"
3+
import (
4+
"errors"
5+
"testing"
6+
7+
"github.com/michaeldcanady/servicenow-sdk-go/internal/mocking"
8+
"github.com/stretchr/testify/assert"
9+
)
410

511
func TestNewCredentialAuthenticationProviderAdapter(t *testing.T) {
6-
// TODO: add tests
12+
tests := []struct {
13+
name string
14+
test func(*testing.T)
15+
}{
16+
{
17+
name: "successful",
18+
test: func(t *testing.T) {
19+
cred := mocking.NewMockCredential()
20+
21+
authenticationProvider, err := newCredentialAuthenticationProviderAdapter(cred)
22+
assert.Nil(t, err)
23+
assert.Equal(t, &credentialAuthenticationProviderAdapter{
24+
cred: cred,
25+
}, authenticationProvider)
26+
},
27+
},
28+
{
29+
name: "nil credential",
30+
test: func(t *testing.T) {
31+
authenticationProvider, err := newCredentialAuthenticationProviderAdapter(nil)
32+
assert.Equal(t, errors.New("credential is nil"), err)
33+
assert.Nil(t, authenticationProvider)
34+
},
35+
},
36+
}
37+
38+
for _, test := range tests {
39+
t.Run(test.name, test.test)
40+
}
741
}
842

943
func TestCredentialAuthenticationProviderAdapter_AuthenticateRequest(t *testing.T) {
10-
// TODO: add tests
44+
tests := []struct {
45+
name string
46+
test func(*testing.T)
47+
}{}
48+
49+
for _, test := range tests {
50+
t.Run(test.name, test.test)
51+
}
1152
}

internal/mocking/mock_context.go

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
package mocking
2+
3+
import (
4+
"time"
5+
6+
"github.com/stretchr/testify/mock"
7+
)
8+
9+
type MockContext struct {
10+
mock.Mock
11+
}
12+
13+
func NewMockContext() *MockContext {
14+
return &MockContext{
15+
mock.Mock{},
16+
}
17+
}
18+
19+
func (c *MockContext) Deadline() (deadline time.Time, ok bool) {
20+
_ = c.Called(deadline, ok)
21+
return
22+
}
23+
24+
func (c *MockContext) Done() <-chan struct{} {
25+
args := c.Called()
26+
return args.Get(0).(<-chan struct{})
27+
}
28+
29+
func (c *MockContext) Err() error {
30+
args := c.Called()
31+
return args.Error(0)
32+
}
33+
34+
func (c *MockContext) Value(key any) any {
35+
args := c.Called(key)
36+
return args.Get(0)
37+
}

internal/mocking/mock_credential.go

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
package mocking
2+
3+
import "github.com/stretchr/testify/mock"
4+
5+
type MockCredential struct {
6+
mock.Mock
7+
}
8+
9+
func NewMockCredential() *MockCredential {
10+
return &MockCredential{
11+
mock.Mock{},
12+
}
13+
}
14+
15+
func (c *MockCredential) GetAuthentication() (string, error) {
16+
args := c.Called()
17+
return args.String(0), args.Error(1)
18+
}

internal/mocking/mock_option.go

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
package mocking
2+
3+
import "github.com/stretchr/testify/mock"
4+
5+
type MockOption[T any] struct {
6+
mock.Mock
7+
}
8+
9+
func NewMockOption[T any]() *MockOption[T] {
10+
return &MockOption[T]{
11+
mock.Mock{},
12+
}
13+
}
14+
15+
func (o *MockOption[T]) Option(config T) error {
16+
args := o.Called(config)
17+
return args.Error(0)
18+
}

internal/new/servicenow_request_adapter.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ func NewServiceNowRequestAdapter(authenticationProvider authentication.Authentic
2626

2727
baseAdapter, err := nethttplibrary.NewNetHttpRequestAdapterWithParseNodeFactoryAndSerializationWriterFactoryAndHttpClient(authenticationProvider, config.parseNodeFactory, config.serializationWriterFactory, config.client)
2828
if err != nil {
29+
// can't test
2930
return nil, err
3031
}
3132
return &ServiceNowRequestAdapter{baseAdapter}, nil
Lines changed: 42 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,50 @@
11
package internal
22

33
import (
4+
"errors"
45
"testing"
6+
7+
"github.com/michaeldcanady/servicenow-sdk-go/internal/mocking"
8+
"github.com/stretchr/testify/assert"
9+
"github.com/stretchr/testify/mock"
510
)
611

712
func TestNewServiceNowRequestAdapter(t *testing.T) {
8-
// TODO: add tests
13+
tests := []struct {
14+
name string
15+
test func(*testing.T)
16+
}{
17+
{
18+
name: "successful",
19+
test: func(t *testing.T) {
20+
authProvider := mocking.NewMockAuthenticationProvider()
21+
22+
_, err := NewServiceNowRequestAdapter(authProvider)
23+
assert.Nil(t, err)
24+
},
25+
},
26+
{
27+
name: "nil AuthenticationProvider",
28+
test: func(t *testing.T) {
29+
_, err := NewServiceNowRequestAdapter(nil)
30+
assert.Equal(t, errors.New("authenticationProvider cannot be nil"), err)
31+
},
32+
},
33+
{
34+
name: "successful",
35+
test: func(t *testing.T) {
36+
authProvider := mocking.NewMockAuthenticationProvider()
37+
strct := mocking.NewMockOption[*serviceNowRequestAdapterConfig]()
38+
strct.On("Option", mock.IsType(&serviceNowRequestAdapterConfig{})).Return(errors.New("opt error"))
39+
opt := strct.Option
40+
41+
_, err := NewServiceNowRequestAdapter(authProvider, opt)
42+
assert.Equal(t, errors.New("opt error"), err)
43+
},
44+
},
45+
}
46+
47+
for _, test := range tests {
48+
t.Run(test.name, test.test)
49+
}
950
}

servicenow_service_client_config_test.go

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,14 @@ func TestBuildServiceClientConfig(t *testing.T) {
3737
assert.Nil(t, config)
3838
},
3939
},
40+
{
41+
name: "instance and raw uri",
42+
test: func(t *testing.T) {
43+
config, err := buildServiceClientConfig(withInstance("fdasfsda"), withURL("https://dafsfd.com"))
44+
assert.Equal(t, errors.New("rawURL and instance cannot be used together"), err)
45+
assert.Nil(t, config)
46+
},
47+
},
4048
}
4149

4250
for _, test := range tests {

0 commit comments

Comments
 (0)