/*
* oxAuth is available under the MIT License (2008). See http://opensource.org/licenses/MIT for full text.
*
* Copyright (c) 2014, Gluu
*/
package org.xdi.oxauth.comp;
import java.io.File;
import java.io.FileInputStream;
import javax.inject.Inject;
import javax.xml.bind.JAXBContext;
import javax.xml.bind.JAXBException;
import javax.xml.bind.Unmarshaller;
import org.apache.commons.io.IOUtils;
import org.gluu.site.ldap.persistence.LdapEntryManager;
import org.testng.Assert;
import org.testng.annotations.Test;
import org.xdi.oxauth.ConfigurableTest;
import org.xdi.oxauth.model.config.Conf;
import org.xdi.oxauth.model.config.ConfigurationFactory;
import org.xdi.oxauth.model.configuration.AppConfiguration;
import org.xdi.oxauth.util.ServerUtil;
/**
* @author Yuriy Zabrovarnyy
* @version 0.9, 03/01/2013
*/
public class ConfigurationTest extends ConfigurableTest {
@Inject
private ConfigurationFactory configurationFactory;
@Inject
private LdapEntryManager ldapEntryManager;
/*
* Configuration must be present, otherwise server will not start
* normally... There is fallback configuration from file but server will not
* work as expected in cluster.`
*/
@Test
public void configurationPresence() {
Assert.assertTrue((configurationFactory != null) && (configurationFactory.getLdapConfiguration() != null)
&& (configurationFactory.getAppConfiguration() != null)
&& (configurationFactory.getErrorResponseFactory() != null)
&& (configurationFactory.getStaticConfiguration() != null)
&& (configurationFactory.getWebKeysConfiguration() != null));
}
/*
* Useful test method to get create newest test configuration. It shouldn't
* be used directly for testing.
*/
// @Test
public void createLatestTestConfInLdapFromFiles() throws Exception {
final String prefix = "U:\\own\\project\\oxAuth\\Server\\src\\test\\resources\\conf";
final String errorsFile = prefix + "\\oxauth-errors.json";
final String staticFile = prefix + "\\oxauth-static-conf.json";
final String webKeysFile = prefix + "\\oxauth-web-keys.json";
final String configFile = prefix + "\\oxauth-config.xml";
final String errorsJson = IOUtils.toString(new FileInputStream(errorsFile));
final String staticConfJson = IOUtils.toString(new FileInputStream(staticFile));
final String webKeysJson = IOUtils.toString(new FileInputStream(webKeysFile));
final String configJson = ServerUtil.createJsonMapper().writeValueAsString(loadConfFromFile(configFile));
final Conf c = new Conf();
c.setDn("ou=testconfiguration,o=@!1111,o=gluu");
c.setDynamic(configJson);
c.setErrors(errorsJson);
c.setStatics(staticConfJson);
c.setWebKeys(webKeysJson);
ldapEntryManager.persist(c);
}
private static AppConfiguration loadConfFromFile(String p_filePath) throws JAXBException {
final JAXBContext jc = JAXBContext.newInstance(AppConfiguration.class);
final Unmarshaller u = jc.createUnmarshaller();
return (AppConfiguration) u.unmarshal(new File(p_filePath));
}
}