Completed
Push — main ( d66aeb...e43a38 )
by Acho
25s queued 13s
created

lemonsqueezy.TestLicensesService_Validate   A

Complexity

Conditions 1

Size

Total Lines 20
Code Lines 10

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 10
nop 1
dl 0
loc 20
rs 9.9
c 0
b 0
f 0
1
package lemonsqueezy
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 TestLicensesService_Activate(t *testing.T) {
14
	// Setup
15
	t.Parallel()
16
17
	// Arrange
18
	server := helpers.MakeTestServer(http.StatusOK, stubs.LicenseActivateResponse())
19
	client := New(WithBaseURL(server.URL))
20
21
	// Act
22
	licenseActivation, response, err := client.Licenses.Activate(context.Background(), "1234567890", "test")
23
24
	// Assert
25
	assert.Nil(t, err)
26
27
	assert.Equal(t, http.StatusOK, response.HTTPResponse.StatusCode)
28
	assert.Equal(t, stubs.LicenseActivateResponse(), *response.Body)
29
	assert.Equal(t, true, licenseActivation.Activated)
30
31
	// Teardown
32
	server.Close()
33
}
34
35
func TestLicensesService_ActivateWithError(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.Licenses.Activate(context.Background(), "1234567890", "test")
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 TestLicensesService_Validate(t *testing.T) {
56
	// Setup
57
	t.Parallel()
58
59
	// Arrange
60
	server := helpers.MakeTestServer(http.StatusOK, stubs.LicenseValidateResponse())
61
	client := New(WithBaseURL(server.URL))
62
63
	// Act
64
	licenseValidation, response, err := client.Licenses.Validate(context.Background(), "1234567890", "")
65
66
	// Assert
67
	assert.Nil(t, err)
68
69
	assert.Equal(t, http.StatusOK, response.HTTPResponse.StatusCode)
70
	assert.Equal(t, stubs.LicenseValidateResponse(), *response.Body)
71
	assert.Equal(t, true, licenseValidation.Valid)
72
73
	// Teardown
74
	server.Close()
75
}
76
77
func TestLicensesService_ValidateWithError(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.Licenses.Validate(context.Background(), "1234567890", "")
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
97
func TestLicensesService_Deactivate(t *testing.T) {
98
	// Setup
99
	t.Parallel()
100
101
	// Arrange
102
	server := helpers.MakeTestServer(http.StatusOK, stubs.LicenseDeactivateResponse())
103
	client := New(WithBaseURL(server.URL))
104
105
	// Act
106
	licenseDeactivation, response, err := client.Licenses.Deactivate(context.Background(), "1234567890", "abc123")
107
108
	// Assert
109
	assert.Nil(t, err)
110
111
	assert.Equal(t, http.StatusOK, response.HTTPResponse.StatusCode)
112
	assert.Equal(t, stubs.LicenseDeactivateResponse(), *response.Body)
113
	assert.Equal(t, true, licenseDeactivation.Deactivated)
114
115
	// Teardown
116
	server.Close()
117
}
118
119
func TestLicensesService_DeactivateWithError(t *testing.T) {
120
	// Setup
121
	t.Parallel()
122
123
	// Arrange
124
	server := helpers.MakeTestServer(http.StatusInternalServerError, nil)
125
	client := New(WithBaseURL(server.URL))
126
127
	// Act
128
	_, response, err := client.Licenses.Deactivate(context.Background(), "1234567890", "abc123")
129
130
	// Assert
131
	assert.NotNil(t, err)
132
133
	assert.Equal(t, http.StatusInternalServerError, response.HTTPResponse.StatusCode)
134
135
	// Teardown
136
	server.Close()
137
}
138