Skip to content

Commit 84fafe4

Browse files
committed
Pipeline
1 parent 77fdab7 commit 84fafe4

File tree

8 files changed

+165
-232
lines changed

8 files changed

+165
-232
lines changed

.github/actions/kyma-setup/action.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,9 +15,9 @@ runs:
1515
- name: Setup Kubectl
1616
uses: azure/setup-kubectl@v4
1717
- name: Setup Tools
18-
uses: buildpacks/github-actions/setup-tools@v5.9.7
18+
uses: buildpacks/github-actions/setup-tools@v5.10.0
1919
- name: Setup Pack
20-
uses: buildpacks/github-actions/setup-pack@v5.9.7
20+
uses: buildpacks/github-actions/setup-pack@v5.10.0
2121
- name: Setup Kube
2222
run: |
2323
mkdir ${HOME}/kyma-binaries

bin/test/.npmignore

Whitespace-only changes.

bin/test/build.test.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ const Commands = {
2222
BEGIN: [`cd ${tempDir}`],
2323
CDS_NODE: [`npx cds init ${PROJECT}`],
2424
CDS_JAVA: [`npx cds init ${PROJECT} --java`],
25-
INSTALL: [`cd ${PROJECT}`, "cp ../../test/.npmrc .", "npm install ../../../"],
25+
INSTALL: [`cd ${PROJECT}`, "cp ../../test/.npmrc .", "cp ../../test/.npmignore .", "npm install ../../../"],
2626
AFC_CF: ["npx afc init cf"],
2727
AFC_KYMA: ["npx afc init kyma"],
2828
AFC_NODE: ["npx afc add -a app,broker,stub,mock,sample,test,http"],

java/project/srv/sap-afc-sdk.iml

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,4 @@
55
<sourceFolder url="file://$MODULE_DIR$/src/gen/java" isTestSource="false" generated="true" />
66
</content>
77
</component>
8-
<component name="FacetManager">
9-
<facet type="web" name="Web">
10-
<configuration>
11-
<webroots />
12-
</configuration>
13-
</facet>
14-
</component>
158
</module>
Lines changed: 65 additions & 84 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,12 @@
11
package com.github.capjscommunity.sapafcsdk.scheduling.outbox;
22

33
import static org.junit.jupiter.api.Assertions.assertEquals;
4-
import static org.junit.jupiter.api.Assertions.assertTrue;
54
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;
65
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post;
76
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.jsonPath;
87
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
98

109
import com.github.capjscommunity.sapafcsdk.model.sapafcsdk.scheduling.JobStatusCode;
11-
import com.github.capjscommunity.sapafcsdk.model.sapafcsdk.scheduling.processingservice.ProcessJobContext;
1210
import com.github.capjscommunity.sapafcsdk.model.sapafcsdk.scheduling.processingservice.ProcessingService_;
1311
import com.github.capjscommunity.sapafcsdk.test.OutboxTestSetup;
1412
import com.sap.cds.services.persistence.PersistenceService;
@@ -43,89 +41,72 @@ public class SchedulingProviderOutboxCancelTest {
4341
@Test
4442
@WithMockUser("authenticated")
4543
public void cancelJobOutboxed() throws Exception {
46-
OutboxTestSetup createSetup = new OutboxTestSetup(
47-
ProcessingService_.CDS_NAME,
48-
ProcessJobContext.CDS_NAME,
49-
cdsRuntime,
50-
persistenceService
51-
);
52-
53-
JSONObject job = new JSONObject(
54-
Map.of(
55-
"name",
56-
"JOB_1",
57-
"referenceID",
58-
"c1253940-5f25-4a0b-8585-f62bd085b327",
59-
"parameters",
60-
new JSONArray(
61-
List.of(
62-
new JSONObject(Map.of("name", "A", "value", "abc")),
63-
new JSONObject(Map.of("name", "C", "value", "true")),
64-
new JSONObject(Map.of("name", "E", "value", JSONObject.NULL))
44+
String ID;
45+
try (OutboxTestSetup setup = new OutboxTestSetup(ProcessingService_.CDS_NAME, cdsRuntime, persistenceService)) {
46+
JSONObject job = new JSONObject(
47+
Map.of(
48+
"name",
49+
"JOB_1",
50+
"referenceID",
51+
"c1253940-5f25-4a0b-8585-f62bd085b327",
52+
"parameters",
53+
new JSONArray(
54+
List.of(
55+
new JSONObject(Map.of("name", "A", "value", "abc")),
56+
new JSONObject(Map.of("name", "C", "value", "true")),
57+
new JSONObject(Map.of("name", "E", "value", JSONObject.NULL))
58+
)
6559
)
6660
)
67-
)
68-
);
69-
MvcResult result = mockMvc
70-
.perform(post("/api/job-scheduling/v1/Job").contentType("application/json").content(job.toString()))
71-
.andExpect(status().isCreated())
72-
.andReturn();
73-
String response = result.getResponse().getContentAsString();
74-
JSONObject json = new JSONObject(response);
75-
String ID = json.getString("ID");
76-
77-
createSetup.eventTriggered.countDown();
78-
assertTrue(createSetup.messageFinished.await(3, TimeUnit.SECONDS));
79-
80-
mockMvc
81-
.perform(get("/api/job-scheduling/v1/Job/" + ID))
82-
.andExpect(status().isOk())
83-
.andExpect(jsonPath("$.status").value(JobStatusCode.RUNNING));
84-
85-
createSetup.end();
86-
87-
OutboxTestSetup cancelSetup = new OutboxTestSetup(
88-
ProcessingService_.CDS_NAME,
89-
ProcessJobContext.CDS_NAME,
90-
cdsRuntime,
91-
persistenceService
92-
);
93-
94-
mockMvc
95-
.perform(post("/api/job-scheduling/v1/Job/" + ID + "/cancel").locale(Locale.ENGLISH))
96-
.andExpect(status().isNoContent());
97-
98-
cancelSetup.eventTriggered.countDown();
99-
100-
mockMvc
101-
.perform(get("/api/job-scheduling/v1/Job/" + ID))
102-
.andExpect(status().isOk())
103-
.andExpect(jsonPath("$.status").value("cancelRequested"));
104-
105-
assertTrue(cancelSetup.messageFinished.await(3, TimeUnit.SECONDS));
106-
107-
mockMvc
108-
.perform(get("/api/job-scheduling/v1/Job/" + ID))
109-
.andExpect(status().isOk())
110-
.andExpect(jsonPath("$.status").value("canceled"));
111-
112-
JSONObject processingEvent = cancelSetup.messageEvents.get(0);
113-
assertEquals("sapafcsdk.scheduling.ProcessingService", processingEvent.get("event"));
114-
assertEquals("cancelJob", processingEvent.getJSONObject("message").get("event"));
115-
assertEquals(ID, processingEvent.getJSONObject("message").getJSONObject("params").get("ID"));
116-
117-
JSONObject websocketEvent = cancelSetup.messageEvents.get(1);
118-
assertEquals("sapafcsdk.scheduling.WebsocketService", websocketEvent.get("event"));
119-
assertEquals("jobStatusChanged", websocketEvent.getJSONObject("message").get("event"));
120-
assertEquals(
121-
"cancelRequested",
122-
websocketEvent.getJSONObject("message").getJSONObject("params").getJSONObject("data").get("status")
123-
);
124-
assertEquals(
125-
ID,
126-
websocketEvent.getJSONObject("message").getJSONObject("params").getJSONObject("data").getJSONArray("IDs").get(0)
127-
);
128-
129-
cancelSetup.end();
61+
);
62+
MvcResult result = mockMvc
63+
.perform(post("/api/job-scheduling/v1/Job").contentType("application/json").content(job.toString()))
64+
.andExpect(status().isCreated())
65+
.andReturn();
66+
String response = result.getResponse().getContentAsString();
67+
JSONObject json = new JSONObject(response);
68+
ID = json.getString("ID");
69+
70+
setup.awaitCompleted(5, TimeUnit.SECONDS);
71+
72+
mockMvc
73+
.perform(get("/api/job-scheduling/v1/Job/" + ID))
74+
.andExpect(status().isOk())
75+
.andExpect(jsonPath("$.status").value(JobStatusCode.RUNNING));
76+
}
77+
78+
try (OutboxTestSetup setup = new OutboxTestSetup(ProcessingService_.CDS_NAME, cdsRuntime, persistenceService)) {
79+
mockMvc
80+
.perform(post("/api/job-scheduling/v1/Job/" + ID + "/cancel").locale(Locale.ENGLISH))
81+
.andExpect(status().isNoContent());
82+
mockMvc
83+
.perform(get("/api/job-scheduling/v1/Job/" + ID))
84+
.andExpect(status().isOk())
85+
.andExpect(jsonPath("$.status").value("cancelRequested"));
86+
87+
List<JSONObject> messageEvents = setup.awaitCompleted(5, TimeUnit.SECONDS);
88+
89+
mockMvc
90+
.perform(get("/api/job-scheduling/v1/Job/" + ID))
91+
.andExpect(status().isOk())
92+
.andExpect(jsonPath("$.status").value("canceled"));
93+
94+
JSONObject processingEvent = messageEvents.get(0);
95+
assertEquals("sapafcsdk.scheduling.ProcessingService", processingEvent.get("event"));
96+
assertEquals("cancelJob", processingEvent.getJSONObject("message").get("event"));
97+
assertEquals(ID, processingEvent.getJSONObject("message").getJSONObject("params").get("ID"));
98+
99+
JSONObject websocketEvent = messageEvents.get(1);
100+
assertEquals("sapafcsdk.scheduling.WebsocketService", websocketEvent.get("event"));
101+
assertEquals("jobStatusChanged", websocketEvent.getJSONObject("message").get("event"));
102+
assertEquals(
103+
"cancelRequested",
104+
websocketEvent.getJSONObject("message").getJSONObject("params").getJSONObject("data").get("status")
105+
);
106+
assertEquals(
107+
ID,
108+
websocketEvent.getJSONObject("message").getJSONObject("params").getJSONObject("data").getJSONArray("IDs").get(0)
109+
);
110+
}
130111
}
131112
}
Lines changed: 54 additions & 64 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,12 @@
11
package com.github.capjscommunity.sapafcsdk.scheduling.outbox;
22

33
import static org.junit.jupiter.api.Assertions.assertEquals;
4-
import static org.junit.jupiter.api.Assertions.assertTrue;
54
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;
65
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post;
76
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.jsonPath;
87
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
98

109
import com.github.capjscommunity.sapafcsdk.model.sapafcsdk.scheduling.JobStatusCode;
11-
import com.github.capjscommunity.sapafcsdk.model.sapafcsdk.scheduling.processingservice.ProcessJobContext;
1210
import com.github.capjscommunity.sapafcsdk.model.sapafcsdk.scheduling.processingservice.ProcessingService_;
1311
import com.github.capjscommunity.sapafcsdk.test.OutboxTestSetup;
1412
import com.sap.cds.services.persistence.PersistenceService;
@@ -42,74 +40,66 @@ public class SchedulingProviderOutboxCreateTest {
4240
@Test
4341
@WithMockUser("authenticated")
4442
public void createJobOutboxed() throws Exception {
45-
OutboxTestSetup setup = new OutboxTestSetup(
46-
ProcessingService_.CDS_NAME,
47-
ProcessJobContext.CDS_NAME,
48-
cdsRuntime,
49-
persistenceService
50-
);
51-
JSONObject job = new JSONObject(
52-
Map.of(
53-
"name",
54-
"JOB_1",
55-
"referenceID",
56-
"c1253940-5f25-4a0b-8585-f62bd085b327",
57-
"parameters",
58-
new JSONArray(
59-
List.of(
60-
new JSONObject(Map.of("name", "A", "value", "abc")),
61-
new JSONObject(Map.of("name", "C", "value", "true")),
62-
new JSONObject(Map.of("name", "E", "value", JSONObject.NULL))
43+
try (OutboxTestSetup setup = new OutboxTestSetup(ProcessingService_.CDS_NAME, cdsRuntime, persistenceService)) {
44+
JSONObject job = new JSONObject(
45+
Map.of(
46+
"name",
47+
"JOB_1",
48+
"referenceID",
49+
"c1253940-5f25-4a0b-8585-f62bd085b327",
50+
"parameters",
51+
new JSONArray(
52+
List.of(
53+
new JSONObject(Map.of("name", "A", "value", "abc")),
54+
new JSONObject(Map.of("name", "C", "value", "true")),
55+
new JSONObject(Map.of("name", "E", "value", JSONObject.NULL))
56+
)
6357
)
6458
)
65-
)
66-
);
67-
MvcResult result = mockMvc
68-
.perform(post("/api/job-scheduling/v1/Job").contentType("application/json").content(job.toString()))
69-
.andExpect(status().isCreated())
70-
.andReturn();
71-
String response = result.getResponse().getContentAsString();
72-
JSONObject json = new JSONObject(response);
73-
String ID = json.getString("ID");
74-
assertEquals("http://localhost:8080/launchpad.html#Job-monitor&/Job(" + ID + ")", json.get("link"));
75-
assertEquals("JOB_1", json.get("name"));
76-
assertEquals("c1253940-5f25-4a0b-8585-f62bd085b327", json.get("referenceID"));
77-
assertEquals(JSONObject.NULL, json.get("startDateTime"));
78-
assertEquals(JobStatusCode.REQUESTED, json.get("status"));
79-
assertEquals(JSONObject.NULL, json.get("testRun"));
80-
assertEquals("1", json.get("version"));
59+
);
60+
MvcResult result = mockMvc
61+
.perform(post("/api/job-scheduling/v1/Job").contentType("application/json").content(job.toString()))
62+
.andExpect(status().isCreated())
63+
.andReturn();
64+
String response = result.getResponse().getContentAsString();
65+
JSONObject json = new JSONObject(response);
66+
String ID = json.getString("ID");
67+
assertEquals("http://localhost:8080/launchpad.html#Job-monitor&/Job(" + ID + ")", json.get("link"));
68+
assertEquals("JOB_1", json.get("name"));
69+
assertEquals("c1253940-5f25-4a0b-8585-f62bd085b327", json.get("referenceID"));
70+
assertEquals(JSONObject.NULL, json.get("startDateTime"));
71+
assertEquals(JobStatusCode.REQUESTED, json.get("status"));
72+
assertEquals(JSONObject.NULL, json.get("testRun"));
73+
assertEquals("1", json.get("version"));
8174

82-
mockMvc
83-
.perform(get("/api/job-scheduling/v1/Job/" + ID))
84-
.andExpect(status().isOk())
85-
.andExpect(jsonPath("$.status").value(JobStatusCode.REQUESTED));
75+
mockMvc
76+
.perform(get("/api/job-scheduling/v1/Job/" + ID))
77+
.andExpect(status().isOk())
78+
.andExpect(jsonPath("$.status").value(JobStatusCode.REQUESTED));
8679

87-
setup.eventTriggered.countDown();
80+
List<JSONObject> messageEvents = setup.awaitCompleted(5, TimeUnit.SECONDS);
8881

89-
JSONObject processingEvent = setup.messageEvents.get(0);
90-
assertEquals("sapafcsdk.scheduling.ProcessingService", processingEvent.get("event"));
91-
assertEquals("processJob", processingEvent.getJSONObject("message").get("event"));
92-
assertEquals(ID, processingEvent.getJSONObject("message").getJSONObject("params").get("ID"));
82+
JSONObject processingEvent = messageEvents.get(0);
83+
assertEquals("sapafcsdk.scheduling.ProcessingService", processingEvent.get("event"));
84+
assertEquals("processJob", processingEvent.getJSONObject("message").get("event"));
85+
assertEquals(ID, processingEvent.getJSONObject("message").getJSONObject("params").get("ID"));
9386

94-
JSONObject websocketEvent = setup.messageEvents.get(1);
95-
assertEquals("sapafcsdk.scheduling.WebsocketService", websocketEvent.get("event"));
96-
assertEquals("jobStatusChanged", websocketEvent.getJSONObject("message").get("event"));
97-
assertEquals(
98-
JobStatusCode.REQUESTED,
99-
websocketEvent.getJSONObject("message").getJSONObject("params").getJSONObject("data").get("status")
100-
);
101-
assertEquals(
102-
ID,
103-
websocketEvent.getJSONObject("message").getJSONObject("params").getJSONObject("data").getJSONArray("IDs").get(0)
104-
);
87+
JSONObject websocketEvent = messageEvents.get(1);
88+
assertEquals("sapafcsdk.scheduling.WebsocketService", websocketEvent.get("event"));
89+
assertEquals("jobStatusChanged", websocketEvent.getJSONObject("message").get("event"));
90+
assertEquals(
91+
JobStatusCode.REQUESTED,
92+
websocketEvent.getJSONObject("message").getJSONObject("params").getJSONObject("data").get("status")
93+
);
94+
assertEquals(
95+
ID,
96+
websocketEvent.getJSONObject("message").getJSONObject("params").getJSONObject("data").getJSONArray("IDs").get(0)
97+
);
10598

106-
assertTrue(setup.messageFinished.await(3, TimeUnit.SECONDS));
107-
108-
mockMvc
109-
.perform(get("/api/job-scheduling/v1/Job/" + ID))
110-
.andExpect(status().isOk())
111-
.andExpect(jsonPath("$.status").value(JobStatusCode.RUNNING));
112-
113-
setup.end();
99+
mockMvc
100+
.perform(get("/api/job-scheduling/v1/Job/" + ID))
101+
.andExpect(status().isOk())
102+
.andExpect(jsonPath("$.status").value(JobStatusCode.RUNNING));
103+
}
114104
}
115105
}

0 commit comments

Comments
 (0)