package com.mailserver.config; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.io.TempDir; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.attribute.PosixFilePermissions; import static org.assertj.core.api.Assertions.assertThat; class DataInitializerTest { @Test void generatedPasswordsAreAppendedToAFileOnlyTheOwnerReads(@TempDir Path dir) throws Exception { Path file = dir.resolve("data/initial-passwords.txt"); DataInitializer.appendPassword(file, "admin@mail.test", "secret-1"); DataInitializer.appendPassword(file, "trap@mail.test", "secret-2"); assertThat(Files.readAllLines(file)).hasSize(2); assertThat(Files.readAllLines(file).get(0)).endsWith(" admin@mail.test secret-1"); assertThat(Files.readAllLines(file).get(1)).endsWith(" trap@mail.test secret-2"); assertThat(PosixFilePermissions.toString(Files.getPosixFilePermissions(file))).isEqualTo("rw-------"); } }