package fr.gael.dhus.system.config; import java.io.IOException; import java.util.List; import javax.xml.bind.JAXBException; import org.testng.Assert; import org.testng.annotations.BeforeClass; import org.testng.annotations.Test; import fr.gael.dhus.database.object.config.Configuration; import fr.gael.dhus.database.object.config.cron.ArchiveSynchronizationCronConfiguration; import fr.gael.dhus.database.object.config.cron.CleanDatabaseCronConfiguration; import fr.gael.dhus.database.object.config.cron.CleanDatabaseDumpCronConfiguration; import fr.gael.dhus.database.object.config.cron.CronConfiguration; import fr.gael.dhus.database.object.config.cron.DumpDatabaseCronConfiguration; import fr.gael.dhus.database.object.config.cron.EvictionCronConfiguration; import fr.gael.dhus.database.object.config.cron.FileScannersCronConfiguration; import fr.gael.dhus.database.object.config.cron.SearchesCronConfiguration; import fr.gael.dhus.database.object.config.cron.SendLogsCronConfiguration; import fr.gael.dhus.database.object.config.cron.SystemCheckCronConfiguration; import fr.gael.dhus.database.object.config.gui.GuiConfiguration; import fr.gael.dhus.database.object.config.messaging.MailConfiguration; import fr.gael.dhus.database.object.config.messaging.MailFromConfiguration; import fr.gael.dhus.database.object.config.messaging.MailServerConfiguration; import fr.gael.dhus.database.object.config.messaging.MessagingConfiguration; import fr.gael.dhus.database.object.config.messaging.jms.JmsConfiguration; import fr.gael.dhus.database.object.config.messaging.jms.JmsDestination; import fr.gael.dhus.database.object.config.network.ChannelType; import fr.gael.dhus.database.object.config.network.NetworkConfiguration; import fr.gael.dhus.database.object.config.network.TrafficShapingType; import fr.gael.dhus.database.object.config.product.ProductConfiguration; import fr.gael.dhus.database.object.config.search.OdataConfiguration; import fr.gael.dhus.database.object.config.search.SearchConfiguration; import fr.gael.dhus.database.object.config.server.AbstractServerConfiguration; import fr.gael.dhus.database.object.config.system.AdministratorConfiguration; import fr.gael.dhus.database.object.config.system.ArchiveConfiguration; import fr.gael.dhus.database.object.config.system.DatabaseConfiguration; import fr.gael.dhus.database.object.config.system.NameConfiguration; import fr.gael.dhus.database.object.config.system.ProcessingConfiguration; import fr.gael.dhus.database.object.config.system.SupportConfiguration; import fr.gael.dhus.database.object.config.system.SystemConfiguration; import fr.gael.dhus.database.object.config.system.TomcatConfiguration; import fr.gael.dhus.system.config.ConfigurationManager.ConfigurationLoader; public class ConfigurationManagerTest { Configuration conf ; @BeforeClass public void init () throws JAXBException, IOException { ConfigurationLoader loader = new ConfigurationLoader (); conf = loader.loadConfiguation (ClassLoader. getSystemResource ("dhus-config-test.xml")); } @Test public void checkConfigurationLoaderCron () { CronConfiguration cron = conf.getCronConfiguration (); Assert.assertNotNull (cron, "cron configuration is null."); ArchiveSynchronizationCronConfiguration as = cron.getArchiveSynchronizationConfiguration (); Assert.assertNotNull (as, "ArchivesSync :"); Assert.assertNotNull (as.getSchedule (), "ArchivesSync schedule :"); Assert.assertNotNull (as.isActive (), "ArchivesSync active flag :"); CleanDatabaseCronConfiguration db = cron.getCleanDatabaseConfiguration (); Assert.assertNotNull (db, "CleanDB :"); Assert.assertNotNull (db.getSchedule (), "CleanDB schedule :"); Assert.assertNotNull (db.isActive (), "CleanDB active flag :"); Assert.assertNotNull (db.getLogStatConfiguration (), "db cleanup stats: "); Assert.assertNotNull (db.getLogStatConfiguration ().getKeepPeriod (), "db cleanup stats keep period: "); } @Test (dependsOnMethods="checkConfigurationLoaderCron") public void checkConfigurationLoaderCronArchiveSynchronization () { CronConfiguration cron = conf.getCronConfiguration (); ArchiveSynchronizationCronConfiguration as = cron.getArchiveSynchronizationConfiguration (); Assert.assertNotNull (as, "archiveSynchronization: "); Assert.assertNotNull (as.getSchedule (), "archiveSynchronization schedule:"); Assert.assertNotNull (as.isActive (), "archiveSynchronization active flag :"); } @Test (dependsOnMethods="checkConfigurationLoaderCron") public void checkConfigurationLoaderCronCleanDatabse () { CronConfiguration cron = conf.getCronConfiguration (); CleanDatabaseCronConfiguration db = cron.getCleanDatabaseConfiguration (); Assert.assertNotNull (db, "cleanDatabase :"); Assert.assertNotNull (db.getSchedule (), "cleanDatabase schedule :"); Assert.assertNotNull (db.isActive (), "cleanDatabase active flag :"); Assert.assertNotNull (db.getLogStatConfiguration (), "cleanDatabase stats: "); Assert.assertNotNull (db.getLogStatConfiguration ().getKeepPeriod (), "cleanDatabase stats keep period: "); Assert.assertNotNull (db.getTempUsersConfiguration (), "cleanDatabase temp users"); Assert.assertNotNull (db.getTempUsersConfiguration ().getKeepPeriod (), "cleanDatabase temp users keep period"); } @Test (dependsOnMethods="checkConfigurationLoaderCron") public void checkConfigurationLoaderCronDumpDatabase () { CronConfiguration cron = conf.getCronConfiguration (); DumpDatabaseCronConfiguration dd = cron.getDumpDatabaseConfiguration (); Assert.assertNotNull (dd, "dumpDatabase: "); Assert.assertNotNull (dd.getSchedule (),"dumpDatabase schedule:"); Assert.assertNotNull (dd.isActive (),"dumpDatabase active flag :"); } @Test (dependsOnMethods="checkConfigurationLoaderCron") public void checkConfigurationLoaderCronCleanDatabaseDump () { CronConfiguration cron = conf.getCronConfiguration (); CleanDatabaseDumpCronConfiguration cdd = cron.getCleanDatabaseDumpConfiguration (); Assert.assertNotNull (cdd, "cleanDatabaseDump: "); Assert.assertNotNull (cdd.getSchedule (),"cleanDatabaseDump schedule:"); Assert.assertNotNull (cdd.isActive (),"cleanDatabaseDump active flag :"); Assert.assertNotNull (cdd.getKeep (),"cleanDatabaseDump keep :"); } @Test (dependsOnMethods="checkConfigurationLoaderCron") public void checkConfigurationLoaderCronEviction () { CronConfiguration cron = conf.getCronConfiguration (); EvictionCronConfiguration e = cron.getEvictionConfiguration (); Assert.assertNotNull (e, "eviction: "); Assert.assertNotNull (e.getSchedule (),"eviction schedule:"); Assert.assertNotNull (e.isActive (),"eviction active flag :"); } @Test (dependsOnMethods="checkConfigurationLoaderCron") public void checkConfigurationLoaderCronFileScanners () { CronConfiguration cron = conf.getCronConfiguration (); FileScannersCronConfiguration fs = cron.getFileScannersConfiguration (); Assert.assertNotNull (fs, "fileScanners: "); Assert.assertNotNull (fs.getSchedule (),"fileScanners schedule:"); Assert.assertNotNull (fs.isActive (),"fileScanners active flag :"); Assert.assertNotNull (fs.isSourceRemove (), "fileScanners remove source flag :"); } @Test (dependsOnMethods="checkConfigurationLoaderCron") public void checkConfigurationLoaderCronSearches () { CronConfiguration cron = conf.getCronConfiguration (); SearchesCronConfiguration s = cron.getSearchesConfiguration (); Assert.assertNotNull (s, "searches: "); Assert.assertNotNull (s.getSchedule (),"searches schedule:"); Assert.assertNotNull (s.isActive (),"searches active flag :"); } @Test (dependsOnMethods="checkConfigurationLoaderCron") public void checkConfigurationLoaderCronSendLogs () { CronConfiguration cron = conf.getCronConfiguration (); SendLogsCronConfiguration s = cron.getSendLogsConfiguration (); Assert.assertNotNull (s, "sendLogs: "); Assert.assertNotNull (s.getSchedule (),"sendLogs schedule:"); Assert.assertNotNull (s.isActive (),"sendLogs active flag :"); Assert.assertNotNull (s.getAddresses (),"sendLogs address:"); } @Test (dependsOnMethods="checkConfigurationLoaderCron") public void checkConfigurationLoaderCronSytemCheck() { CronConfiguration cron = conf.getCronConfiguration (); SystemCheckCronConfiguration s = cron.getSystemCheckConfiguration (); Assert.assertNotNull (s, "systemCheck: "); Assert.assertNotNull (s.getSchedule (),"systemCheck schedule:"); Assert.assertNotNull (s.isActive (),"systemCheck active flag :"); } @Test public void checkConfigurationLoaderMessage () { MessagingConfiguration message = conf.getMessagingConfiguration (); Assert.assertNotNull (message, "messaging configuration is null."); } @Test (dependsOnMethods="checkConfigurationLoaderMessage") public void checkConfigurationLoaderMessageJms() { MessagingConfiguration message = conf.getMessagingConfiguration (); JmsConfiguration jms = message.getJmsConfiguration (); Assert.assertNotNull (jms, "Jms: "); Assert.assertNotNull (jms.getFolder (),"jms folder :"); Assert.assertNotNull (jms.getPort (),"jms port:"); List<JmsDestination>jmsds=jms.getDestinations (); Assert.assertNotNull (jmsds,"Jms destinations:"); for(JmsDestination d:jmsds) { Assert.assertNotNull (d,"Jms destination:"); Assert.assertNotNull (d.getName (), "Jms destination name:"); Assert.assertNotNull (d.getMessageTypes (),"Jms destination type:"); Assert.assertNotNull (d.getDestination (),"Jms destination:"); } } @Test (dependsOnMethods="checkConfigurationLoaderMessage") public void checkConfigurationLoaderMessageMail () { MessagingConfiguration message = conf.getMessagingConfiguration (); MailConfiguration mail = message.getMailConfiguration (); Assert.assertNotNull (mail, "mail: "); Assert.assertNotNull (mail.isOnUserCreate (),"mail on user create flag:"); Assert.assertNotNull (mail.isOnUserDelete (),"mail on user delete flag:"); Assert.assertNotNull (mail.isOnUserUpdate (),"mail on user delete flag:"); MailServerConfiguration ms = mail.getServerConfiguration (); Assert.assertNotNull (ms, "mail server configuration:"); Assert.assertNotNull (ms.getUsername (), "mail server username:"); Assert.assertNotNull (ms.getPassword (), "mail server password:"); Assert.assertNotNull (ms.getPort (), "mail server port:"); Assert.assertNotNull (ms.getReplyTo (), "mail server reply-to:"); Assert.assertNotNull (ms.getSmtp (), "mail server smtp:"); MailFromConfiguration mf = ms.getMailFromConfiguration (); Assert.assertNotNull (mf, "mail server from:"); Assert.assertNotNull (mf.getAddress (), "mail server from address:"); Assert.assertNotNull (mf.getName (), "mail server from name:"); } @Test public void checkConfigurationLoaderNetwork () { NetworkConfiguration network = conf.getNetworkConfiguration (); Assert.assertNotNull (network, "network configuration is null."); } @Test (dependsOnMethods="checkConfigurationLoaderNetwork") public void checkConfigurationLoaderNetworkInbound () { NetworkConfiguration network = conf.getNetworkConfiguration (); checkBounds (network.getInbound (),"inbound channel"); } @Test (dependsOnMethods="checkConfigurationLoaderNetwork") public void checkConfigurationLoaderNetworkOutbound () { NetworkConfiguration network = conf.getNetworkConfiguration (); checkBounds (network.getOutbound (), "outbound channel"); } void checkBounds (TrafficShapingType bound, String message) { Assert.assertNotNull (bound, message); List<ChannelType> channels = bound.getChannel (); Assert.assertNotNull (channels, message+" channel types"); for (ChannelType c: channels) { checkChannel (c, message+" sub channel"); } } void checkChannel (ChannelType channel, String message) { Assert.assertNotNull (channel.getName (), message+", channel name"); Assert.assertNotNull (channel.getWeight (), message+", channel weight"); Assert.assertNotNull (channel, message+" channel"); Assert.assertNotNull (channel.getClassifier (), message+", classifier"); Assert.assertNotNull (channel.getClassifier ().getExcludes (), message+", classifier/excludes"); Assert.assertNotNull (channel.getClassifier ().getExcludes ().getExclude(), message+", classifier/excludes/exclude"); Assert.assertNotNull (channel.getClassifier ().getIncludes (), message+", classifier/includes"); Assert.assertNotNull (channel.getClassifier ().getIncludes ().getInclude(), message+", classifier/includes/include"); Assert.assertNotNull (channel.getDefaultUserQuotas (), message+", user quota"); Assert.assertNotNull (channel.getDefaultUserQuotas ().getMaxBandwidth (), message+", user quota/max bandwidth"); Assert.assertNotNull (channel.getDefaultUserQuotas ().getMaxConcurrent (), message+", user quota/max concurrent"); Assert.assertNotNull (channel.getDefaultUserQuotas ().getMaxCount (), message+", user quota/max count"); Assert.assertNotNull (channel.getDefaultUserQuotas (). getMaxCumulativeSize (),message+", user quota/max cumulative size"); Assert.assertNotNull (channel.getDefaultUserQuotas ().getMaxSize (), message+", user quota/max size"); if (channel.getChannel () != null) for (ChannelType c:channel.getChannel ()) checkChannel (c, message); } @Test public void checkConfigurationLoaderGUI () { GuiConfiguration gui = conf.getGuiConfiguration (); Assert.assertNotNull (gui, "gui configuration is null."); } @Test public void checkConfigurationLoaderProduct () { ProductConfiguration product = conf.getProductConfiguration (); Assert.assertNotNull (product, "product configuration is null."); } @Test public void checkConfigurationLoaderSearch () { SearchConfiguration search = conf.getSearchConfiguration (); Assert.assertNotNull (search, "search configuration is null."); } @Test(dependsOnMethods="checkConfigurationLoaderSearch") public void checkConfigurationLoaderOdata () { SearchConfiguration search = conf.getSearchConfiguration (); OdataConfiguration oc = search.getOdataConfiguration (); Assert.assertNotNull (oc, "odata configuration is null."); Assert.assertNotNull (oc.getMaxRows (), "odata configuration maxRow is null."); Assert.assertEquals (oc.getMaxRows ().intValue (), 50, "odata configuration maxRow value not expected."); } @Test public void checkConfigurationLoaderServer () { AbstractServerConfiguration server = conf.getServerConfiguration (); Assert.assertNotNull (server, "server configuration is null."); } @Test public void checkConfigurationLoaderSystem () { SystemConfiguration system = conf.getSystemConfiguration (); Assert.assertNotNull (system, "system configuration is null."); AdministratorConfiguration ac = system.getAdministratorConfiguration (); Assert.assertNotNull (ac, "system admin configuration is null."); ArchiveConfiguration arc = system.getArchiveConfiguration (); Assert.assertNotNull (arc, "system archive configuration is null."); DatabaseConfiguration db = system.getDatabaseConfiguration (); Assert.assertNotNull (db, "system database configuration is null."); NameConfiguration nc = system.getNameConfiguration (); Assert.assertNotNull (nc, "system name configuration is null."); ProcessingConfiguration proc = system.getProcessingConfiguration (); Assert.assertNotNull (proc, "system processing configuration is null."); SupportConfiguration sp = system.getSupportConfiguration (); Assert.assertNotNull (sp, "system support configuration is null."); TomcatConfiguration tc = system.getTomcatConfiguration (); Assert.assertNotNull (tc, "system tomcat configuration is null."); } }