package org.cloudfoundry.identity.uaa.login.saml;
import org.apache.commons.httpclient.contrib.ssl.StrictSSLProtocolSocketFactory;
import org.junit.Test;
import java.io.File;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.fail;
public class IdentityProviderDefinitionTests {
@Test
public void testGetType() throws Exception {
IdentityProviderDefinition def = new IdentityProviderDefinition();
def.setMetaDataLocation("<?xml>");
assertEquals(IdentityProviderDefinition.MetadataLocation.DATA, def.getType());
def.setMetaDataLocation("https://dadas.dadas.dadas/sdada");
assertEquals(IdentityProviderDefinition.MetadataLocation.URL, def.getType());
def.setMetaDataLocation("http://dadas.dadas.dadas/sdada");
assertEquals(IdentityProviderDefinition.MetadataLocation.URL, def.getType());
def.setMetaDataLocation("sample-okta-localhost.xml");
assertEquals(IdentityProviderDefinition.MetadataLocation.FILE, def.getType());
File f = new File(System.getProperty("java.io.tmpdir"),IdentityProviderDefinitionTests.class.getName()+".testcase");
f.createNewFile();
f.deleteOnExit();
def.setMetaDataLocation(f.getAbsolutePath());
assertEquals(IdentityProviderDefinition.MetadataLocation.FILE, def.getType());
f.delete();
def.setMetaDataLocation(f.getAbsolutePath());
assertEquals(IdentityProviderDefinition.MetadataLocation.UNKNOWN, def.getType());
}
@Test
public void testSetIdpEntityAlias() throws Exception {
IdentityProviderDefinition def = new IdentityProviderDefinition();
def.setIdpEntityAlias("testalias");
}
@Test(expected = NullPointerException.class)
public void testSetNullIdpEntityAlias() throws Exception {
IdentityProviderDefinition def = new IdentityProviderDefinition();
def.setIdpEntityAlias(null);
}
@Test
public void testGetSocketFactoryClassName() throws Exception {
IdentityProviderDefinition def = new IdentityProviderDefinition();
def.setMetaDataLocation("https://dadas.dadas.dadas/sdada");
assertEquals("org.apache.commons.httpclient.contrib.ssl.EasySSLProtocolSocketFactory", def.getSocketFactoryClassName());
def.setMetaDataLocation("http://dadas.dadas.dadas/sdada");
assertEquals("org.apache.commons.httpclient.protocol.DefaultProtocolSocketFactory", def.getSocketFactoryClassName());
def.setSocketFactoryClassName("");
assertEquals("org.apache.commons.httpclient.protocol.DefaultProtocolSocketFactory", def.getSocketFactoryClassName());
def.setSocketFactoryClassName(null);
assertEquals("org.apache.commons.httpclient.protocol.DefaultProtocolSocketFactory", def.getSocketFactoryClassName());
try {
def.setSocketFactoryClassName("test.class.that.DoesntExist");
fail("ClassNotFound is expected here");
} catch (IllegalArgumentException x) {
assertEquals(ClassNotFoundException.class, x.getCause().getClass());
}
try {
def.setSocketFactoryClassName("java.lang.Object");
fail("ClassCastException is expected here");
} catch (IllegalArgumentException x) {
assertEquals(ClassCastException.class, x.getCause().getClass());
}
def.setSocketFactoryClassName(StrictSSLProtocolSocketFactory.class.getName());
assertEquals(StrictSSLProtocolSocketFactory.class.getName(), def.getSocketFactoryClassName());
}
}