Passed
Push — main ( cf0300...2d689f )
by Acho
01:43 queued 15s
created

prices_service_test.go   A

Size/Duplication

Total Lines 95
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
cc 4
eloc 44
dl 0
loc 95
rs 10
c 0
b 0
f 0

4 Methods

Rating   Name   Duplication   Size   Complexity  
A lemonsqueezy.TestPricesService_GetWithError 0 18 1
A lemonsqueezy.TestPricesService_List 0 20 1
A lemonsqueezy.TestPricesService_Get 0 20 1
A lemonsqueezy.TestPricesService_ListWithError 0 18 1
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 TestPricesService_Get(t *testing.T) {
15
	// Setup
16
	t.Parallel()
17
18
	// Arrange
19
	server := helpers.MakeTestServer(http.StatusOK, stubs.PriceGetResponse())
20
	client := New(WithBaseURL(server.URL))
21
22
	// Act
23
	price, response, err := client.Prices.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.PriceGetResponse(), *response.Body)
30
	assert.Equal(t, "1", price.Data.ID)
31
32
	// Teardown
33
	server.Close()
34
}
35
36
func TestPricesService_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.Prices.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 TestPricesService_List(t *testing.T) {
57
	// Setup
58
	t.Parallel()
59
60
	// Arrange
61
	server := helpers.MakeTestServer(http.StatusOK, stubs.PriceListResponse())
62
	client := New(WithBaseURL(server.URL))
63
64
	// Act
65
	prices, response, err := client.Prices.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.PriceListResponse(), *response.Body)
72
	assert.Equal(t, 2, len(prices.Data))
73
74
	// Teardown
75
	server.Close()
76
}
77
78
func TestPricesService_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.Prices.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