in jetbrains-core/tst/software/aws/toolkits/jetbrains/utils/RunConfigTestUtils.kt [225:269]
fun samImageRunDebugTest(
projectRule: CodeInsightTestFixtureRule,
relativePath: String,
templatePatches: Map<String, String> = emptyMap(),
sourceFileName: String,
runtime: LambdaRuntime,
mockCredentialsId: String,
input: String,
expectedOutput: String? = input.toUpperCase(),
addBreakpoint: (() -> Unit)? = null
) {
assumeImageSupport()
val (_, template) = readProject(relativePath, sourceFileName, projectRule, templatePatches)
addBreakpoint?.let { it() }
val runConfiguration = createTemplateRunConfiguration(
project = projectRule.project,
runtime = runtime,
templateFile = template.path,
logicalId = "SomeFunction",
input = "\"$input\"",
credentialsProviderId = mockCredentialsId,
isImage = true
)
assertNotNull(runConfiguration)
val debuggerIsHit = checkBreakPointHit(projectRule.project)
val executeLambda = if (addBreakpoint != null) {
executeRunConfigurationAndWait(runConfiguration, DefaultDebugExecutor.EXECUTOR_ID)
} else {
executeRunConfigurationAndWait(runConfiguration)
}
assertThat(executeLambda.exitCode).isEqualTo(0)
if (expectedOutput != null) {
assertThat(executeLambda.stdout).contains(expectedOutput)
}
if (addBreakpoint != null) {
assertThat(debuggerIsHit.get()).isTrue
}
}