Skip to content
This repository was archived by the owner on Apr 6, 2026. It is now read-only.

Commit 39afa64

Browse files
authored
feat(lambda): implement ListVersionsByFunction API (#40)
1 parent b2c0b99 commit 39afa64

1 file changed

Lines changed: 40 additions & 5 deletions

File tree

sdk-test-java/src/main/java/com/floci/test/tests/LambdaTests.java

Lines changed: 40 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,8 @@ public void run(TestContext ctx) {
4545
ctx.check("Lambda CreateFunction",
4646
functionName.equals(createResp.functionName())
4747
&& functionArn != null && functionArn.contains(functionName)
48-
&& "Active".equals(createResp.stateAsString()));
48+
&& "Active".equals(createResp.stateAsString())
49+
&& "$LATEST".equals(createResp.version()));
4950
} catch (Exception e) {
5051
ctx.check("Lambda CreateFunction", false, e);
5152
return;
@@ -120,7 +121,32 @@ public void run(TestContext ctx) {
120121
ctx.check("Lambda UpdateFunctionCode", false, e);
121122
}
122123

123-
// 8. CreateFunction duplicate → ResourceConflictException
124+
// 8. PublishVersion & ListVersionsByFunction
125+
try {
126+
PublishVersionResponse v1 = lambda.publishVersion(PublishVersionRequest.builder()
127+
.functionName(functionName)
128+
.description("v1")
129+
.build());
130+
ctx.check("Lambda PublishVersion (1)", "1".equals(v1.version()) && "v1".equals(v1.description()));
131+
132+
PublishVersionResponse v2 = lambda.publishVersion(PublishVersionRequest.builder()
133+
.functionName(functionName)
134+
.description("v2")
135+
.build());
136+
ctx.check("Lambda PublishVersion (2)", "2".equals(v2.version()) && "v2".equals(v2.description()));
137+
138+
ListVersionsByFunctionResponse listVersions = lambda.listVersionsByFunction(ListVersionsByFunctionRequest.builder()
139+
.functionName(functionName)
140+
.build());
141+
boolean hasLatest = listVersions.versions().stream().anyMatch(v -> "$LATEST".equals(v.version()));
142+
boolean hasV1 = listVersions.versions().stream().anyMatch(v -> "1".equals(v.version()));
143+
boolean hasV2 = listVersions.versions().stream().anyMatch(v -> "2".equals(v.version()));
144+
ctx.check("Lambda ListVersionsByFunction", hasLatest && hasV1 && hasV2 && listVersions.versions().size() >= 3);
145+
} catch (Exception e) {
146+
ctx.check("Lambda ListVersionsByFunction", false, e);
147+
}
148+
149+
// 9. CreateFunction duplicate → ResourceConflictException
124150
try {
125151
lambda.createFunction(CreateFunctionRequest.builder()
126152
.functionName(functionName)
@@ -138,7 +164,7 @@ public void run(TestContext ctx) {
138164
ctx.check("Lambda CreateFunction duplicate → 409", false, e);
139165
}
140166

141-
// 9. GetFunction non-existent → ResourceNotFoundException
167+
// 10. GetFunction non-existent → ResourceNotFoundException
142168
try {
143169
lambda.getFunction(GetFunctionRequest.builder()
144170
.functionName("does-not-exist").build());
@@ -149,7 +175,7 @@ public void run(TestContext ctx) {
149175
ctx.check("Lambda GetFunction non-existent → 404", false, e);
150176
}
151177

152-
// 10. DeleteFunction
178+
// 11. DeleteFunction
153179
try {
154180
lambda.deleteFunction(DeleteFunctionRequest.builder()
155181
.functionName(functionName).build());
@@ -160,11 +186,20 @@ public void run(TestContext ctx) {
160186
} catch (ResourceNotFoundException e) {
161187
ctx.check("Lambda DeleteFunction", true);
162188
}
189+
190+
// Verify versions are also gone
191+
try {
192+
lambda.listVersionsByFunction(ListVersionsByFunctionRequest.builder()
193+
.functionName(functionName).build());
194+
ctx.check("Lambda DeleteFunction (versions deleted)", false);
195+
} catch (ResourceNotFoundException e) {
196+
ctx.check("Lambda DeleteFunction (versions deleted)", true);
197+
}
163198
} catch (Exception e) {
164199
ctx.check("Lambda DeleteFunction", false, e);
165200
}
166201

167-
// 11. Ruby runtime support
202+
// 12. Ruby runtime support
168203
String rubyFn = "sdk-test-ruby-fn";
169204
try {
170205
CreateFunctionResponse rubyResp = lambda.createFunction(CreateFunctionRequest.builder()

0 commit comments

Comments
 (0)