package fr.gouv.vitam.metadata.rest; import static org.junit.Assume.assumeTrue; import java.io.File; import java.io.IOException; import org.junit.AfterClass; import org.junit.BeforeClass; import org.junit.ClassRule; import org.junit.Test; import org.junit.rules.TemporaryFolder; import fr.gouv.vitam.common.PropertiesUtils; import fr.gouv.vitam.common.SystemPropertyUtil; import fr.gouv.vitam.common.exception.VitamApplicationServerException; import fr.gouv.vitam.common.junit.JunitHelper; import fr.gouv.vitam.common.junit.JunitHelper.ElasticsearchTestConfiguration; import fr.gouv.vitam.metadata.api.config.MetaDataConfiguration; import fr.gouv.vitam.metadata.core.database.collections.MongoDbAccessMetadataImpl; import ru.yandex.qatools.embed.service.MongoEmbeddedService; public class MetaDataApplicationAuthenticationTest { private static final String DATABASE_HOST = "localhost"; static MongoDbAccessMetadataImpl mongoDbAccess; private static int port; private static JunitHelper junitHelper; private static MongoEmbeddedService mongo; private static final String databaseName = "db-metadata"; private static final String user = "user-metadata"; private static final String pwd = "user-metadata"; private static final String METADATA_CONF = "metadata-auth.conf"; private static File metadata; private static MetaDataConfiguration metadataConfig; @ClassRule public static TemporaryFolder tempFolder = new TemporaryFolder(); private final static String CLUSTER_NAME = "vitam-cluster"; private static ElasticsearchTestConfiguration config = null; @BeforeClass public static void setup() throws IOException { // ES try { config = JunitHelper.startElasticsearchForTest(tempFolder, CLUSTER_NAME); } catch (final VitamApplicationServerException e1) { assumeTrue(false); } junitHelper = JunitHelper.getInstance(); port = junitHelper.findAvailablePort(); // Starting the embedded services within temporary dir mongo = new MongoEmbeddedService( DATABASE_HOST + ":" + port, databaseName, user, pwd, "localreplica"); mongo.start(); metadata = PropertiesUtils.findFile(METADATA_CONF); metadataConfig = PropertiesUtils.readYaml(metadata, MetaDataConfiguration.class); metadataConfig.getMongoDbNodes().get(0).setDbPort(port); metadataConfig.getElasticsearchNodes().get(0).setTcpPort(config.getTcpPort()); final int metadataPort = junitHelper.findAvailablePort(); SystemPropertyUtil.set("jetty.port", metadataPort); } @AfterClass public static void tearDownAfterClass() throws Exception { if (config == null) { return; } mongo.stop(); junitHelper.releasePort(port); JunitHelper.stopElasticsearchForTest(config); } @Test public void testLauchApplication() throws Exception { final File newConf = File.createTempFile("test", METADATA_CONF, metadata.getParentFile()); PropertiesUtils.writeYaml(newConf, metadataConfig); final MetaDataApplication application = new MetaDataApplication(newConf.getAbsolutePath()); newConf.delete(); application.stop(); } }