Skip to content

Commit b74c411

Browse files
code Refactoring
1 parent 025bc9f commit b74c411

File tree

2 files changed

+98
-64
lines changed

2 files changed

+98
-64
lines changed

Cognite.Simulator.Tests/UtilsTests/SimulationRunnerUnitTest.cs

Lines changed: 6 additions & 64 deletions
Original file line numberDiff line numberDiff line change
@@ -33,97 +33,39 @@ public class SimulationRunnerUnitTest
3333
public async Task TestSimulationRunner_CallbackNetworkError_HandledGracefully()
3434
{
3535
var runsListCallCount = 0;
36-
var now = DateTimeOffset.UtcNow.ToUnixTimeMilliseconds();
3736

3837
var networkErrorMocks = new List<SimpleRequestMocker>
3938
{
4039
new SimpleRequestMocker(uri => uri.EndsWith("/token"), MockAzureAADTokenEndpoint),
4140
new SimpleRequestMocker(uri => uri.EndsWith("/token/inspect"), MockTokenInspectEndpoint),
4241
new SimpleRequestMocker(uri => uri.Contains("/extpipes"), MockExtPipesEndpoint),
4342
new SimpleRequestMocker(uri => uri.EndsWith("/simulators/list") || uri.EndsWith("/simulators") || uri.EndsWith("/simulators/update"), MockSimulatorsEndpoint),
44-
45-
new SimpleRequestMocker(uri => uri.Contains("/simulators/integrations/list"), () =>
46-
{
47-
var item = $@"{{
48-
""id"": 999,
49-
""externalId"": ""{SeedData.TestIntegrationExternalId}"",
50-
""simulatorExternalId"": ""{SeedData.TestSimulatorExternalId}"",
51-
""dataSetId"": {SeedData.TestDataSetId}
52-
}}";
53-
return OkItemsResponse(item);
54-
}),
55-
56-
new SimpleRequestMocker(uri => uri.Contains("/simulators/integrations/update"), () =>
57-
{
58-
return MockSimulatorsIntegrationsEndpoint();
59-
}),
43+
new SimpleRequestMocker(uri => uri.Contains("/simulators/integrations/list"), () => MockSimulatorIntegrationsListEndpoint()),
44+
new SimpleRequestMocker(uri => uri.Contains("/simulators/integrations/update"), MockSimulatorsIntegrationsEndpoint),
6045

6146
new SimpleRequestMocker(uri => uri.Contains("/simulators/runs/list"), () =>
6247
{
6348
runsListCallCount++;
6449
if (runsListCallCount == 1)
6550
{
66-
var item = $@"{{
67-
""id"": 12345,
68-
""status"": ""ready"",
69-
""simulatorExternalId"": ""{SeedData.TestSimulatorExternalId}"",
70-
""simulatorIntegrationExternalId"": ""{SeedData.TestIntegrationExternalId}"",
71-
""routineRevisionExternalId"": ""test-routine-rev"",
72-
""modelRevisionExternalId"": ""test-model-rev"",
73-
""routineExternalId"": ""test-routine"",
74-
""runType"": ""external"",
75-
""createdTime"": {now},
76-
""lastUpdatedTime"": {now}
77-
}}";
78-
return OkItemsResponse(item);
51+
return MockSimulationRunsListEndpoint();
7952
}
80-
return OkItemsResponse("");
53+
return MockSimulationRunsListEmptyEndpoint();
8154
}),
8255

8356
new SimpleRequestMocker(uri => uri.Contains("/simulators/run/callback"), () =>
8457
{
8558
throw new HttpRequestException("Network error during callback update");
8659
}),
8760

88-
new SimpleRequestMocker(uri => uri.Contains("/simulators/routines/revisions/list") || uri.Contains("/simulators/routines/revisions/byids"), () =>
89-
{
90-
var item = $@"{{
91-
""id"": 123,
92-
""externalId"": ""test-routine-rev"",
93-
""routineExternalId"": ""test-routine"",
94-
""simulatorExternalId"": ""{SeedData.TestSimulatorExternalId}"",
95-
""simulatorIntegrationExternalId"": ""{SeedData.TestIntegrationExternalId}"",
96-
""modelExternalId"": ""test-model"",
97-
""name"": ""Test routine revision"",
98-
""dataSetId"": 123,
99-
""createdTime"": {now},
100-
""lastUpdatedTime"": {now},
101-
""configuration"": {{}}
102-
}}";
103-
return OkItemsResponse(item);
104-
}),
105-
new SimpleRequestMocker(uri => uri.Contains("/simulators/models/revisions"), () =>
106-
{
107-
var item = $@"{{
108-
""id"": 100,
109-
""externalId"": ""test-model-rev"",
110-
""simulatorExternalId"": ""{SeedData.TestSimulatorExternalId}"",
111-
""modelExternalId"": ""test-model"",
112-
""fileId"": 100,
113-
""createdTime"": {now},
114-
""lastUpdatedTime"": {now}
115-
}}";
116-
return OkItemsResponse(item);
117-
}),
61+
new SimpleRequestMocker(uri => uri.Contains("/simulators/routines/revisions/list") || uri.Contains("/simulators/routines/revisions/byids"), () => MockSimulatorRoutineRevWithIntegrationEndpoint()),
62+
new SimpleRequestMocker(uri => uri.Contains("/simulators/models/revisions"), () => MockSimulatorModelRevListEndpoint()),
11863
new SimpleRequestMocker(uri => uri.Contains("/files/byids"), MockFilesByIdsEndpoint),
11964
new SimpleRequestMocker(uri => uri.Contains("/files/downloadlink"), MockFilesDownloadLinkEndpoint),
12065
new SimpleRequestMocker(uri => uri.Contains("/files/download"), () => MockFilesDownloadEndpoint(1)),
12166
new SimpleRequestMocker(uri => uri.Contains("/simulators/logs"), () => OkItemsResponse("{}")),
12267
};
12368

124-
Environment.SetEnvironmentVariable("COGNITE_HOST", "https://bluefile.cognitedata.net");
125-
Environment.SetEnvironmentVariable("COGNITE_PROJECT", "testProject");
126-
12769
WriteConfig();
12870

12971
using var cts = new CancellationTokenSource();

Cognite.Simulator.Tests/UtilsTests/TestUtilities.cs

Lines changed: 92 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -275,6 +275,53 @@ public static HttpResponseMessage MockSimulatorsIntegrationsEndpoint()
275275
return OkItemsResponse(item);
276276
}
277277

278+
public static HttpResponseMessage MockSimulatorIntegrationsListEndpoint(
279+
long? id = null,
280+
string? externalId = null,
281+
string? simulatorExternalId = null,
282+
long? dataSetId = null)
283+
{
284+
var item = $@"{{
285+
""id"": {id ?? 999},
286+
""externalId"": ""{externalId ?? SeedData.TestIntegrationExternalId}"",
287+
""simulatorExternalId"": ""{simulatorExternalId ?? SeedData.TestSimulatorExternalId}"",
288+
""dataSetId"": {dataSetId ?? SeedData.TestDataSetId}
289+
}}";
290+
return OkItemsResponse(item);
291+
}
292+
293+
public static HttpResponseMessage MockSimulationRunsListEndpoint(
294+
long? id = null,
295+
string status = "ready",
296+
string? simulatorExternalId = null,
297+
string? integrationExternalId = null,
298+
string? routineRevisionExternalId = null,
299+
string? modelRevisionExternalId = null,
300+
string? routineExternalId = null,
301+
string runType = "external")
302+
{
303+
var now = DateTimeOffset.UtcNow.ToUnixTimeMilliseconds();
304+
var runId = id ?? 12345;
305+
var item = $@"{{
306+
""id"": {runId},
307+
""status"": ""{status}"",
308+
""simulatorExternalId"": ""{simulatorExternalId ?? SeedData.TestSimulatorExternalId}"",
309+
""simulatorIntegrationExternalId"": ""{integrationExternalId ?? SeedData.TestIntegrationExternalId}"",
310+
""routineRevisionExternalId"": ""{routineRevisionExternalId ?? "test-routine-rev"}"",
311+
""modelRevisionExternalId"": ""{modelRevisionExternalId ?? "test-model-rev"}"",
312+
""routineExternalId"": ""{routineExternalId ?? "test-routine"}"",
313+
""runType"": ""{runType}"",
314+
""createdTime"": {now},
315+
""lastUpdatedTime"": {now}
316+
}}";
317+
return OkItemsResponse(item);
318+
}
319+
320+
public static HttpResponseMessage MockSimulationRunsListEmptyEndpoint()
321+
{
322+
return OkItemsResponse("");
323+
}
324+
278325
public static HttpResponseMessage MockSimulatorRoutineRevEndpoint()
279326
{
280327
var item = $@"{{
@@ -286,6 +333,31 @@ public static HttpResponseMessage MockSimulatorRoutineRevEndpoint()
286333
return OkItemsResponse(item);
287334
}
288335

336+
public static HttpResponseMessage MockSimulatorRoutineRevWithIntegrationEndpoint(
337+
long? id = null,
338+
string? externalId = null,
339+
string? routineExternalId = null,
340+
string? simulatorExternalId = null,
341+
string? integrationExternalId = null,
342+
string? modelExternalId = null)
343+
{
344+
var now = DateTimeOffset.UtcNow.ToUnixTimeMilliseconds();
345+
var item = $@"{{
346+
""id"": {id ?? 123},
347+
""externalId"": ""{externalId ?? "test-routine-rev"}"",
348+
""routineExternalId"": ""{routineExternalId ?? "test-routine"}"",
349+
""simulatorExternalId"": ""{simulatorExternalId ?? SeedData.TestSimulatorExternalId}"",
350+
""simulatorIntegrationExternalId"": ""{integrationExternalId ?? SeedData.TestIntegrationExternalId}"",
351+
""modelExternalId"": ""{modelExternalId ?? "test-model"}"",
352+
""name"": ""Test routine revision"",
353+
""dataSetId"": 123,
354+
""createdTime"": {now},
355+
""lastUpdatedTime"": {now},
356+
""configuration"": {{}}
357+
}}";
358+
return OkItemsResponse(item);
359+
}
360+
289361
public static HttpResponseMessage MockSimulatorModelRevEndpoint()
290362
{
291363
var item = $@"{{
@@ -307,6 +379,26 @@ public static HttpResponseMessage MockSimulatorModelRevEndpoint()
307379
return OkItemsResponse(item);
308380
}
309381

382+
public static HttpResponseMessage MockSimulatorModelRevListEndpoint(
383+
long? id = null,
384+
string? externalId = null,
385+
string? simulatorExternalId = null,
386+
string? modelExternalId = null,
387+
long? fileId = null)
388+
{
389+
var now = DateTimeOffset.UtcNow.ToUnixTimeMilliseconds();
390+
var item = $@"{{
391+
""id"": {id ?? 100},
392+
""externalId"": ""{externalId ?? "test-model-rev"}"",
393+
""simulatorExternalId"": ""{simulatorExternalId ?? SeedData.TestSimulatorExternalId}"",
394+
""modelExternalId"": ""{modelExternalId ?? "test-model"}"",
395+
""fileId"": {fileId ?? 100},
396+
""createdTime"": {now},
397+
""lastUpdatedTime"": {now}
398+
}}";
399+
return OkItemsResponse(item);
400+
}
401+
310402
public static HttpResponseMessage MockFilesDownloadLinkEndpoint()
311403
{
312404
var item = $@"{{

0 commit comments

Comments
 (0)