package com.condado.newsletter.service import org.assertj.core.api.Assertions.assertThat import org.junit.jupiter.api.Test import org.springframework.beans.factory.annotation.Value import java.nio.file.Files import java.nio.file.Path class LlamaConfigurationBindingTest { @Test fun should_bindLlamaBaseUrlAndModelWithoutFallback_when_readingServiceValueAnnotations() { val constructor = LlamaPreviewService::class.java.declaredConstructors.single() val baseUrlExpression = constructor.parameters[1].getAnnotation(Value::class.java).value val modelExpression = constructor.parameters[2].getAnnotation(Value::class.java).value assertThat(baseUrlExpression).isEqualTo("\${llama.base-url}") assertThat(modelExpression).isEqualTo("\${llama.model}") } @Test fun should_referenceEnvironmentPlaceholdersWithoutFallback_when_readingApplicationYaml() { val yaml = Files.readString(Path.of("src/main/resources/application.yml")) assertThat(yaml).contains("base-url: \${LLAMA_BASE_URL}") assertThat(yaml).contains("model: \${LLAMA_MODEL}") assertThat(yaml).doesNotContain("LLAMA_BASE_URL:http://localhost:11434") assertThat(yaml).doesNotContain("LLAMA_MODEL:gemma3:4b") } }