package org.picketlink.test.idm.identitymodel.complex;
import org.junit.Ignore;
import org.junit.Test;
import org.picketlink.idm.IdentityManager;
import org.picketlink.test.idm.identitymodel.complex.model.Application;
import org.picketlink.test.idm.identitymodel.complex.model.OrganizationUnit;
import org.picketlink.idm.query.IdentityQuery;
import org.picketlink.test.idm.Configuration;
import org.picketlink.test.idm.basic.AbstractIdentityTypeTestCase;
import org.picketlink.test.idm.testers.IdentityConfigurationTester;
import org.picketlink.test.idm.testers.JPAStoreComplexSchemaConfigurationTester;
import java.util.List;
import static org.junit.Assert.*;
/**
*/
@Configuration(include = JPAStoreComplexSchemaConfigurationTester.class)
public class ApplicationTestCase extends AbstractIdentityTypeTestCase<Application> {
private ComplexSchemaHelper helper;
public ApplicationTestCase(final IdentityConfigurationTester builder) {
super(builder);
}
@Override
public void onBefore() {
super.onBefore();
this.helper = new ComplexSchemaHelper("Acme", "acme.com", getVisitor());
}
@Override
protected Application createIdentityType() {
Application orgUnit = new Application("Employee Manager");
getIdentityManager().add(orgUnit);
return orgUnit;
}
@Test
public void testCreate() {
Application orgUnit = createIdentityType();
Application storedOrgUnit = getIdentityType();
assertEquals(orgUnit.getName(), storedOrgUnit.getName());
assertEquals(orgUnit.getId(), storedOrgUnit.getId());
}
@Test
public void testUpdate() {
Application orgUnit = createIdentityType();
Application parent = new Application("Customer Relationship");
IdentityManager identityManager = getIdentityManager();
identityManager.add(parent);
identityManager.update(orgUnit);
}
@Override
@Test
@Ignore("In this case we do not need enable/disable this type.")
public void testDisable() throws Exception {
}
@Override
@Test
@Ignore("In this case we do not need expiry this type.")
public void testExpiration() throws Exception {
}
@Override
protected Application getIdentityType() {
IdentityQuery<Application> query = this.helper.getIdentityManager().createIdentityQuery(Application.class);
query.setParameter(OrganizationUnit.QUERY_ATTRIBUTE.byName("name"), "Employee Manager");
List<Application> result = query.getResultList();
assertEquals(1, result.size());
return result.get(0);
}
@Override
public IdentityManager getIdentityManager() {
return this.helper.getIdentityManager();
}
}