1
- using System ;
2
- using System . Collections . Generic ;
1
+ using Moq ;
2
+ using Moq . Protected ;
3
+ using NUnit . Framework ;
4
+ using NUnit . Framework . Internal ;
5
+ using System ;
3
6
using System . IO ;
4
- using System . Linq ;
5
7
using System . Net ;
6
8
using System . Net . Http ;
7
- using System . Text ;
8
9
using System . Threading ;
9
10
using System . Threading . Tasks ;
10
- using System . Web ;
11
- using Microsoft . AspNet . SignalR . Hubs ;
12
- using Moq ;
13
- using Moq . Protected ;
14
- using Newtonsoft . Json ;
15
- using NUnit . Framework ;
16
- using NUnit . Framework . Internal ;
17
11
using Umbraco . Cms . Integrations . Crm . Hubspot . Configuration ;
18
12
using Umbraco . Cms . Integrations . Crm . Hubspot . Controllers ;
19
13
using Umbraco . Cms . Integrations . Crm . Hubspot . Models ;
20
- using Umbraco . Cms . Integrations . Crm . Hubspot . Models . Dtos ;
21
14
using Umbraco . Cms . Integrations . Crm . Hubspot . Services ;
22
15
using Umbraco . Core . Composing ;
23
- using Umbraco . Core . Configuration ;
24
- using Umbraco . Core . Configuration . UmbracoSettings ;
25
- using Umbraco . Core . Logging ;
26
- using Umbraco . Web ;
27
- using Umbraco . Web . Routing ;
28
- using Umbraco . Web . Security ;
29
16
using ILogger = Umbraco . Core . Logging . ILogger ;
30
17
31
18
namespace Umbraco . Cms . Integrations . Crm . Hubspot . Tests . Controllers
@@ -39,23 +26,11 @@ public class FormsControllerTests
39
26
""correlationId"": ""73f4a25b-7b0a-4537-a490-e5c226619d59""
40
27
}" ;
41
28
42
- private readonly string ExpiredOAuthToken = @"{
43
- ""status"": ""error"",
44
- ""message"": ""This oauth-token is expired! expiresAt: 1643194402611, now: 1643972072320"",
45
- ""correlationId"": ""1ae46a55-f5b9-4f68-811a-695a12aaa4f5"",
46
- ""category"": ""EXPIRED_AUTHENTICATION"",
47
- ""errors"": [
48
- {
49
- ""message"": ""The OAuth token used to make this call expired 9 day(s) ago.""
50
- }
51
- ]
52
- }" ;
29
+ private HubspotSettings MockedAppSettingsApiSetup ;
53
30
54
- private Mock < IAppSettings > MockedAppSettingsApiSetup ;
31
+ private HubspotSettings MockedAppSettingsOAuthSetup ;
55
32
56
- private Mock < IAppSettings > MockedAppSettingsOAuthSetup ;
57
-
58
- private Mock < IAppSettings > MockedAppSettingsNoSetup ;
33
+ private HubspotSettings MockedAppSettingsNoSetup ;
59
34
60
35
private Mock < ILogger > MockedLogger ;
61
36
@@ -81,7 +56,10 @@ public void Init()
81
56
[ Test ]
82
57
public void CheckApiConfiguration_WithApiConfig_ShouldReturnValidConfigurationResponseObjectWithType ( )
83
58
{
84
- var sut = new FormsController ( MockedAppSettingsApiSetup . Object , Mock . Of < ITokenService > ( ) , Mock . Of < ILogger > ( ) ) ;
59
+ var sut = new FormsController ( Mock . Of < ITokenService > ( ) , Mock . Of < ILogger > ( ) )
60
+ {
61
+ Options = MockedAppSettingsApiSetup
62
+ } ;
85
63
86
64
var result = sut . CheckConfiguration ( ) ;
87
65
@@ -92,7 +70,10 @@ public void CheckApiConfiguration_WithApiConfig_ShouldReturnValidConfigurationRe
92
70
[ Test ]
93
71
public void CheckOAuthConfiguration_WithOAuthConfigAndNoApiConfig_ShouldReturnValidConfigurationResponseObjectWithType ( )
94
72
{
95
- var sut = new FormsController ( MockedAppSettingsOAuthSetup . Object , Mock . Of < ITokenService > ( ) , Mock . Of < ILogger > ( ) ) ;
73
+ var sut = new FormsController ( Mock . Of < ITokenService > ( ) , Mock . Of < ILogger > ( ) )
74
+ {
75
+ Options = MockedAppSettingsOAuthSetup
76
+ } ;
96
77
97
78
var result = sut . CheckConfiguration ( ) ;
98
79
@@ -107,7 +88,10 @@ public void CheckOAuthConfiguration_WithOAuthConfigAndNoApiConfig_ShouldReturnVa
107
88
[ Test ]
108
89
public async Task GetAll_WithoutApiKey_ShouldReturnInvalidResponseObjectWithLoggedInfo ( )
109
90
{
110
- var sut = new FormsController ( Mock . Of < IAppSettings > ( ) , Mock . Of < ITokenService > ( ) , MockedLogger . Object ) ;
91
+ var sut = new FormsController ( Mock . Of < ITokenService > ( ) , MockedLogger . Object )
92
+ {
93
+ Options = MockedAppSettingsNoSetup
94
+ } ;
111
95
112
96
var result = await sut . GetAll ( ) ;
113
97
@@ -120,7 +104,8 @@ public async Task GetAll_WithoutApiKey_ShouldReturnInvalidResponseObjectWithLogg
120
104
[ Test ]
121
105
public async Task GetAll_WithUnauthorizedRequest_ShouldReturnExpiredResponseObjectWithLoggedError ( )
122
106
{
123
- var sut = new FormsController ( MockedAppSettingsApiSetup . Object , Mock . Of < ITokenService > ( ) , MockedLogger . Object ) ;
107
+ var sut = new FormsController ( Mock . Of < ITokenService > ( ) , MockedLogger . Object ) ;
108
+ sut . Options = MockedAppSettingsApiSetup ;
124
109
125
110
var httpClient = CreateMockedHttpClient ( HttpStatusCode . Unauthorized , InvalidApiKey ) ;
126
111
FormsController . ClientFactory = ( ) => httpClient ;
@@ -136,7 +121,8 @@ public async Task GetAll_WithUnauthorizedRequest_ShouldReturnExpiredResponseObje
136
121
[ Test ]
137
122
public async Task GetAll_WithSuccessfulRequest_ShouldReturnResponseObjectWithFormsCollection ( )
138
123
{
139
- var sut = new FormsController ( MockedAppSettingsApiSetup . Object , Mock . Of < ITokenService > ( ) , MockedLogger . Object ) ;
124
+ var sut = new FormsController ( Mock . Of < ITokenService > ( ) , MockedLogger . Object ) ;
125
+ sut . Options = MockedAppSettingsApiSetup ;
140
126
141
127
var response = File . ReadAllText ( TestContext . CurrentContext . TestDirectory + "\\ Data\\ mockResponseApiSetup.json" ) ;
142
128
@@ -153,7 +139,8 @@ public async Task GetAll_WithSuccessfulRequest_ShouldReturnResponseObjectWithFor
153
139
[ Test ]
154
140
public async Task GetAll_WithFailedRequest_ShouldReturnDefaultResponseObjectWithLoggedError ( )
155
141
{
156
- var sut = new FormsController ( MockedAppSettingsApiSetup . Object , Mock . Of < ITokenService > ( ) , MockedLogger . Object ) ;
142
+ var sut = new FormsController ( Mock . Of < ITokenService > ( ) , MockedLogger . Object ) ;
143
+ sut . Options = MockedAppSettingsApiSetup ;
157
144
158
145
var response = File . ReadAllText ( TestContext . CurrentContext . TestDirectory + "\\ Data\\ mockResponseApiSetup.json" ) ;
159
146
@@ -178,7 +165,7 @@ public async Task GetAllOAuth_WithoutAccessToken_ShouldReturnInvalidResponseObje
178
165
{
179
166
var mockedTokenService = CreateMockedTokenService ( false ) ;
180
167
181
- var sut = new FormsController ( Mock . Of < IAppSettings > ( ) , mockedTokenService . Object , MockedLogger . Object ) ;
168
+ var sut = new FormsController ( mockedTokenService . Object , MockedLogger . Object ) ;
182
169
183
170
var result = await sut . GetAllOAuth ( ) ;
184
171
@@ -193,7 +180,7 @@ public async Task GetAllOAuth_WithUnauthorizedRequest_ShouldReturnExpiredRespons
193
180
{
194
181
var mockedTokenService = CreateMockedTokenService ( true ) ;
195
182
196
- var sut = new FormsController ( MockedAppSettingsApiSetup . Object , mockedTokenService . Object , MockedLogger . Object ) ;
183
+ var sut = new FormsController ( mockedTokenService . Object , MockedLogger . Object ) ;
197
184
198
185
var httpClient = CreateMockedHttpClient ( HttpStatusCode . Unauthorized ) ;
199
186
FormsController . ClientFactory = ( ) => httpClient ;
@@ -211,14 +198,14 @@ public async Task GetAllOAuth_WithSuccessfulRequest_ShouldReturnResponseObjectWi
211
198
{
212
199
var mockedTokenService = CreateMockedTokenService ( true ) ;
213
200
214
- var sut = new FormsController ( MockedAppSettingsApiSetup . Object , mockedTokenService . Object , MockedLogger . Object ) ;
201
+ var sut = new FormsController ( mockedTokenService . Object , MockedLogger . Object ) ;
215
202
216
203
var response = File . ReadAllText ( TestContext . CurrentContext . TestDirectory + "\\ Data\\ mockResponseOAuthSetup.json" ) ;
217
204
218
205
var httpClient = CreateMockedHttpClient ( HttpStatusCode . OK , response ) ;
219
206
FormsController . ClientFactory = ( ) => httpClient ;
220
207
221
- var result = await sut . GetAll ( ) ;
208
+ var result = await sut . GetAllOAuth ( ) ;
222
209
223
210
Assert . That ( result . IsValid , Is . True ) ;
224
211
Assert . That ( result . IsExpired , Is . False ) ;
@@ -230,14 +217,14 @@ public async Task GetAllOAuth_WithFailedRequest_ShouldReturnDefaultResponseObjec
230
217
{
231
218
var mockedTokenService = CreateMockedTokenService ( true ) ;
232
219
233
- var sut = new FormsController ( MockedAppSettingsApiSetup . Object , mockedTokenService . Object , MockedLogger . Object ) ;
220
+ var sut = new FormsController ( mockedTokenService . Object , MockedLogger . Object ) ;
234
221
235
222
var response = File . ReadAllText ( TestContext . CurrentContext . TestDirectory + "\\ Data\\ mockResponseApiSetup.json" ) ;
236
223
237
224
var httpClient = CreateMockedHttpClient ( HttpStatusCode . InternalServerError , response ) ;
238
225
FormsController . ClientFactory = ( ) => httpClient ;
239
226
240
- var result = await sut . GetAll ( ) ;
227
+ var result = await sut . GetAllOAuth ( ) ;
241
228
242
229
MockedLogger . Verify ( x => x . Error ( It . Is < Type > ( y => y == typeof ( FormsController ) ) , It . IsAny < string > ( ) ) , Times . Once ) ;
243
230
@@ -248,18 +235,11 @@ public async Task GetAllOAuth_WithFailedRequest_ShouldReturnDefaultResponseObjec
248
235
249
236
#endregion
250
237
251
- private static Mock < IAppSettings > CreateMockedAppSettings ( bool includeApiKeySettings = false )
238
+ private static HubspotSettings CreateMockedAppSettings ( bool includeApiKeySettings = false )
252
239
{
253
- var mockedAppSettings = new Mock < IAppSettings > ( ) ;
254
-
255
- if ( includeApiKeySettings )
256
- {
257
- mockedAppSettings
258
- . Setup ( c => c [ AppSettingsConstants . UmbracoCmsIntegrationsCrmHubspotApiKey ] )
259
- . Returns ( "test-api-key" ) ;
260
- }
261
-
262
- return mockedAppSettings ;
240
+ return includeApiKeySettings
241
+ ? new HubspotSettings { ApiKey = "test-api-key" , Region = "eu1" }
242
+ : new HubspotSettings { Region = "eu1" } ;
263
243
}
264
244
265
245
private static Mock < ITokenService > CreateMockedTokenService ( bool includeAccessToken )
0 commit comments