Skip to content

Commit cbd99ae

Browse files
Record both FaaS and container metadata when both are present (#1661)
JAVA-5541
1 parent 4f8217a commit cbd99ae

File tree

1 file changed

+21
-8
lines changed

1 file changed

+21
-8
lines changed

driver-core/src/test/functional/com/mongodb/internal/connection/ClientMetadataHelperProseTest.java

+21-8
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@
4747
import static org.junit.jupiter.api.Assertions.assertThrows;
4848

4949
/**
50-
* See <a href="https://github.com/mongodb/specifications/blob/master/source/mongodb-handshake/handshake.rst#test-plan">spec</a>
50+
* See <a href="https://github.com/mongodb/specifications/blob/master/source/mongodb-handshake/handshake.md#test-plan">spec</a>
5151
*
5252
* <p>
5353
* NOTE: This class also contains tests that aren't categorized as Prose tests.
@@ -175,16 +175,32 @@ public void test08NotLambda() {
175175
});
176176
}
177177

178+
@Test
179+
public void test09ValidContainerAndFaasProvider() {
180+
withWrapper()
181+
.withEnvironmentVariable("AWS_EXECUTION_ENV", "AWS_Lambda_java8")
182+
.withEnvironmentVariable("AWS_REGION", "us-east-2")
183+
.withEnvironmentVariable("AWS_LAMBDA_FUNCTION_MEMORY_SIZE", "1024")
184+
.withEnvironmentVariable("KUBERNETES_SERVICE_HOST", "1")
185+
.run(() -> {
186+
BsonDocument expected = createExpectedClientMetadataDocument(APP_NAME);
187+
expected.put("env", BsonDocument.parse("{'name': 'aws.lambda', 'memory_mb': 1024, 'region': 'us-east-2', 'container': {'orchestrator': 'kubernetes'}}"));
188+
BsonDocument actual = createActualClientMetadataDocument();
189+
assertEquals(expected, actual);
190+
191+
performHello();
192+
});
193+
}
194+
178195
// Additional tests, not specified as prose tests:
179196

180197
@Test
181198
void testKubernetesMetadataIncluded() {
182199
withWrapper()
183-
.withEnvironmentVariable("AWS_EXECUTION_ENV", "AWS_Lambda_java8")
184200
.withEnvironmentVariable("KUBERNETES_SERVICE_HOST", "kubernetes.default.svc.cluster.local")
185201
.run(() -> {
186202
BsonDocument expected = createExpectedClientMetadataDocument(APP_NAME);
187-
expected.put("env", BsonDocument.parse("{'name': 'aws.lambda', 'container': {'orchestrator': 'kubernetes'}}"));
203+
expected.put("env", BsonDocument.parse("{'container': {'orchestrator': 'kubernetes'}}"));
188204
BsonDocument actual = createActualClientMetadataDocument();
189205
assertEquals(expected, actual);
190206

@@ -199,10 +215,9 @@ void testDockerMetadataIncluded() {
199215
pathsMockedStatic.when(() -> Files.exists(path)).thenReturn(true);
200216

201217
withWrapper()
202-
.withEnvironmentVariable("AWS_EXECUTION_ENV", "AWS_Lambda_java8")
203218
.run(() -> {
204219
BsonDocument expected = createExpectedClientMetadataDocument(APP_NAME);
205-
expected.put("env", BsonDocument.parse("{'name': 'aws.lambda', 'container': {'runtime': 'docker'}}"));
220+
expected.put("env", BsonDocument.parse("{'container': {'runtime': 'docker'}}"));
206221
BsonDocument actual = createActualClientMetadataDocument();
207222
assertEquals(expected, actual);
208223

@@ -218,12 +233,10 @@ void testDockerAndKubernetesMetadataIncluded() {
218233
pathsMockedStatic.when(() -> Files.exists(path)).thenReturn(true);
219234

220235
withWrapper()
221-
.withEnvironmentVariable("AWS_EXECUTION_ENV", "AWS_Lambda_java8")
222236
.withEnvironmentVariable("KUBERNETES_SERVICE_HOST", "kubernetes.default.svc.cluster.local")
223237
.run(() -> {
224238
BsonDocument expected = createExpectedClientMetadataDocument(APP_NAME);
225-
expected.put("env", BsonDocument.parse("{'name': 'aws.lambda', 'container': {'runtime': 'docker', "
226-
+ "'orchestrator': 'kubernetes'}}"));
239+
expected.put("env", BsonDocument.parse("{'container': {'runtime': 'docker', 'orchestrator': 'kubernetes'}}"));
227240
BsonDocument actual = createActualClientMetadataDocument();
228241
assertEquals(expected, actual);
229242

0 commit comments

Comments
 (0)