lemonsqueezy.TestStoresService_ListWithError   A
last analyzed

Complexity

Conditions 1

Size

Total Lines 18
Code Lines 8

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 8
nop 1
dl 0
loc 18
rs 10
c 0
b 0
f 0
1
package lemonsqueezy
2
3
import (
4
	"context"
5
	"net/http"
6
	"testing"
7
8
	"github.com/stretchr/testify/assert"
9
10
	"github.com/NdoleStudio/lemonsqueezy-go/internal/helpers"
11
	"github.com/NdoleStudio/lemonsqueezy-go/internal/stubs"
12
)
13
14
func TestStoreService_Get(t *testing.T) {
15
	// Setup
16
	t.Parallel()
17
18
	// Arrange
19
	server := helpers.MakeTestServer(http.StatusOK, stubs.StoreGetResponse())
20
	client := New(WithBaseURL(server.URL))
21
22
	// Act
23
	stores, response, err := client.Stores.Get(context.Background(), 1)
24
25
	// Assert
26
	assert.Nil(t, err)
27
28
	assert.Equal(t, http.StatusOK, response.HTTPResponse.StatusCode)
29
	assert.Equal(t, stubs.StoreGetResponse(), *response.Body)
30
	assert.Equal(t, "1", stores.Data.ID)
31
32
	// Teardown
33
	server.Close()
34
}
35
36
func TestStoreService_GetWithError(t *testing.T) {
37
	// Setup
38
	t.Parallel()
39
40
	// Arrange
41
	server := helpers.MakeTestServer(http.StatusInternalServerError, nil)
42
	client := New(WithBaseURL(server.URL))
43
44
	// Act
45
	_, response, err := client.Stores.Get(context.Background(), 1)
46
47
	// Assert
48
	assert.NotNil(t, err)
49
50
	assert.Equal(t, http.StatusInternalServerError, response.HTTPResponse.StatusCode)
51
52
	// Teardown
53
	server.Close()
54
}
55
56
func TestStoresService_List(t *testing.T) {
57
	// Setup
58
	t.Parallel()
59
60
	// Arrange
61
	server := helpers.MakeTestServer(http.StatusOK, stubs.StoresListResponse())
62
	client := New(WithBaseURL(server.URL))
63
64
	// Act
65
	stores, response, err := client.Stores.List(context.Background())
66
67
	// Assert
68
	assert.Nil(t, err)
69
70
	assert.Equal(t, http.StatusOK, response.HTTPResponse.StatusCode)
71
	assert.Equal(t, stubs.StoresListResponse(), *response.Body)
72
	assert.Equal(t, 2, len(stores.Data))
73
74
	// Teardown
75
	server.Close()
76
}
77
78
func TestStoresService_ListWithError(t *testing.T) {
79
	// Setup
80
	t.Parallel()
81
82
	// Arrange
83
	server := helpers.MakeTestServer(http.StatusInternalServerError, nil)
84
	client := New(WithBaseURL(server.URL))
85
86
	// Act
87
	_, response, err := client.Stores.List(context.Background())
88
89
	// Assert
90
	assert.NotNil(t, err)
91
92
	assert.Equal(t, http.StatusInternalServerError, response.HTTPResponse.StatusCode)
93
94
	// Teardown
95
	server.Close()
96
}
97