Passed
Push — main ( 6e8bbe...6c1cc7 )
by Acho
01:10
created

files_service_test.go   A

Size/Duplication

Total Lines 94
Duplicated Lines 0 %

Importance

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

4 Methods

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