Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Kotlin Added logging functionality to tests #7225

Merged
merged 8 commits into from
Feb 3, 2025
Merged
Show file tree
Hide file tree
Changes from 6 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions kotlin/services/apigateway/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,8 @@ dependencies {
implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.4")
implementation("com.fasterxml.jackson.core:jackson-databind:2.14.2")
implementation("com.google.code.gson:gson:2.10")
implementation("org.slf4j:slf4j-api:2.0.15")
implementation("org.slf4j:slf4j-simple:2.0.15")
}
tasks.withType<KotlinCompile> {
kotlinOptions.jvmTarget = "17"
Expand Down
27 changes: 7 additions & 20 deletions kotlin/services/apigateway/src/test/kotlin/APIGatewayTest.kt
Original file line number Diff line number Diff line change
Expand Up @@ -19,10 +19,13 @@ import org.junit.jupiter.api.Test
import org.junit.jupiter.api.TestInstance
import org.junit.jupiter.api.TestMethodOrder
import java.util.Random
import org.slf4j.Logger
import org.slf4j.LoggerFactory

@TestInstance(TestInstance.Lifecycle.PER_CLASS)
@TestMethodOrder(OrderAnnotation::class)
class APIGatewayTest {
private val logger: Logger = LoggerFactory.getLogger(APIGatewayTest::class.java)
lateinit var apiGatewayClient: ApiGatewayClient
private var restApiId = ""
private var httpMethod = ""
Expand All @@ -33,7 +36,6 @@ class APIGatewayTest {
@BeforeAll
fun setup() = runBlocking {
apiGatewayClient = ApiGatewayClient { region = "us-east-1" }
// Get values from AWS Secrets Manager.
val random = Random()
val randomNum = random.nextInt(10000 - 1 + 1) + 1
val gson = Gson()
Expand All @@ -43,49 +45,34 @@ class APIGatewayTest {
httpMethod = values.httpMethod.toString()
restApiName = values.restApiName.toString() + randomNum
stageName = values.stageName.toString()

/*
val input: InputStream = this.javaClass.getClassLoader().getResourceAsStream("config.properties")
val prop = Properties()

// load the properties file.
prop.load(input)

// Populate the data members required for all tests
restApiId = prop.getProperty("restApiId")
resourceId = prop.getProperty("resourceId")
httpMethod = prop.getProperty("httpMethod")
restApiName = prop.getProperty("restApiName")
stageName = prop.getProperty("stageName")
*/
}

@Test
@Order(1)
fun createRestApiTest() = runBlocking {
newApiId = createAPI(restApiId).toString()
println("Test 2 passed")
logger.info("Test 1 passed")
}

@Test
@Order(2)
fun getDeploymentsTest() = runBlocking {
getAllDeployments(newApiId)
println("Test 4 passed")
logger.info("Test 2 passed")
}

@Test
@Order(3)
fun getAllStagesTest() = runBlocking {
getAllStages(newApiId)
println("Test 5 passed")
logger.info("Test 3 passed")
}

@Test
@Order(4)
fun deleteRestApi() = runBlocking {
deleteAPI(newApiId)
println("Test 6 passed")
logger.info("Test 4 passed")
}

private suspend fun getSecretValues(): String {
Expand Down
11 changes: 11 additions & 0 deletions kotlin/services/apigateway/src/test/resources/logback.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
<configuration>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n</pattern>
</encoder>
</appender>

<root level="info">
<appender-ref ref="STDOUT"/>
</root>
</configuration>
2 changes: 2 additions & 0 deletions kotlin/services/appsync/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,8 @@ dependencies {
implementation("com.googlecode.json-simple:json-simple:1.1.1")
testImplementation("org.junit.jupiter:junit-jupiter:5.9.2")
implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.4")
implementation("org.slf4j:slf4j-api:2.0.15")
implementation("org.slf4j:slf4j-simple:2.0.15")
}
tasks.withType<KotlinCompile> {
kotlinOptions.jvmTarget = "17"
Expand Down
30 changes: 10 additions & 20 deletions kotlin/services/appsync/src/test/kotlin/AppSyncTest.kt
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
// SPDX-License-Identifier: Apache-2.0

import aws.sdk.kotlin.runtime.auth.credentials.EnvironmentCredentialsProvider
import aws.sdk.kotlin.services.secretsmanager.SecretsManagerClient
import aws.sdk.kotlin.services.secretsmanager.model.GetSecretValueRequest
import com.example.appsync.createDS
Expand All @@ -21,10 +20,13 @@ import org.junit.jupiter.api.Order
import org.junit.jupiter.api.Test
import org.junit.jupiter.api.TestInstance
import org.junit.jupiter.api.TestMethodOrder
import org.slf4j.Logger
import org.slf4j.LoggerFactory

@TestInstance(TestInstance.Lifecycle.PER_CLASS)
@TestMethodOrder(OrderAnnotation::class)
class AppSyncTest {
private val logger: Logger = LoggerFactory.getLogger(AppSyncTest::class.java)
private var apiId = ""
private var dsName = ""
private var dsRole = ""
Expand All @@ -42,17 +44,6 @@ class AppSyncTest {
dsName = values.dsName.toString()
dsRole = values.dsRole.toString()
tableName = values.tableName.toString()

// Uncomment this code block if you prefer using a config.properties file to retrieve AWS values required for these tests.
/*
val input: InputStream = this.javaClass.getClassLoader().getResourceAsStream("config.properties")
val prop = Properties()
prop.load(input)
apiId = prop.getProperty("apiId")
dsName = prop.getProperty("dsName")
dsRole = prop.getProperty("dsRole")
tableName = prop.getProperty("tableName")
*/
}

@Test
Expand All @@ -61,7 +52,7 @@ class AppSyncTest {
runBlocking {
keyId = createKey(apiId).toString()
assertTrue(!keyId.isEmpty())
println("Test 1 passed")
logger.info("Test 1 passed")
}

@Test
Expand All @@ -72,47 +63,47 @@ class AppSyncTest {
if (dsARN != null) {
assertTrue(dsARN.isNotEmpty())
}
println("Test 2 passed")
logger.info("Test 2 passed")
}

@Test
@Order(3)
fun getDataSource() =
runBlocking {
getDS(apiId, dsName)
println("Test 3 passed")
logger.info("Test 3 passed")
}

@Test
@Order(4)
fun listGraphqlApis() =
runBlocking {
getKeys(apiId)
println("Test 4 passed")
logger.info("Test 4 passed")
}

@Test
@Order(5)
fun listApiKeys() =
runBlocking {
getKeys(apiId)
println("Test 5 passed")
logger.info("Test 5 passed")
}

@Test
@Order(6)
fun deleteDataSource() =
runBlocking {
deleteDS(apiId, dsName)
println("Test 6 passed")
logger.info("Test 6 passed")
}

@Test
@Order(7)
fun deleteApiKey() =
runBlocking {
deleteKey(keyId, apiId)
println("Test 7 passed")
logger.info("Test 7 passed")
}

private suspend fun getSecretValues(): String {
Expand All @@ -123,7 +114,6 @@ class AppSyncTest {
}
SecretsManagerClient {
region = "us-east-1"
credentialsProvider = EnvironmentCredentialsProvider()
}.use { secretClient ->
val valueResponse = secretClient.getSecretValue(valueRequest)
return valueResponse.secretString.toString()
Expand Down
11 changes: 11 additions & 0 deletions kotlin/services/appsync/src/test/resources/logback.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
<configuration>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n</pattern>
</encoder>
</appender>

<root level="info">
<appender-ref ref="STDOUT"/>
</root>
</configuration>
Loading