package org.lightadmin.core.test.util; import org.easymock.EasyMock; import org.lightadmin.core.config.domain.DomainTypeAdministrationConfiguration; import org.lightadmin.core.config.domain.GlobalAdministrationConfiguration; import org.lightadmin.core.config.domain.unit.ConfigurationUnit; import org.lightadmin.core.config.domain.unit.ConfigurationUnits; import org.lightadmin.core.config.domain.unit.DomainConfigurationUnitType; import org.lightadmin.core.test.model.Address; import org.lightadmin.core.test.model.Customer; import java.util.Collection; import java.util.Set; import static com.google.common.collect.Lists.newArrayList; import static com.google.common.collect.Sets.newLinkedHashSet; public abstract class ConfigurationUnitsUtils { public static ConfigurationUnits configurationUnits(final Class configurationClass, ConfigurationUnit... configurationUnits) { return new ConfigurationUnits(configurationClass, configurationUnits); } public static ConfigurationUnit[] configurationUnitsFor(DomainConfigurationUnitType... unitTypes) { final Set<ConfigurationUnit> configurationUnits = newLinkedHashSet(); for (DomainConfigurationUnitType unitType : unitTypes) { configurationUnits.add(configurationUnitFor(unitType)); } return configurationUnits.toArray(new ConfigurationUnit[configurationUnits.size()]); } public static ConfigurationUnit configurationUnitFor(DomainConfigurationUnitType unitType, Class<? extends ConfigurationUnit> configurationUnitInterface) { ConfigurationUnit configurationUnit = EasyMock.createMock(configurationUnitInterface); EasyMock.expect(configurationUnit.getDomainConfigurationUnitType()).andReturn(unitType).anyTimes(); EasyMock.replay(configurationUnit); return configurationUnit; } public static ConfigurationUnit configurationUnitFor(DomainConfigurationUnitType unitType) { return configurationUnitFor(unitType, ConfigurationUnit.class); } private GlobalAdministrationConfiguration globalAdministrationConfiguration() { final Collection<DomainTypeAdministrationConfiguration> configurations = newArrayList(domainTypeAdministrationConfiguration(Address.class, "AddressConfiguration"), domainTypeAdministrationConfiguration(Customer.class, "CustomerConfiguration")); GlobalAdministrationConfiguration globalAdministrationConfiguration = EasyMock.createMock(GlobalAdministrationConfiguration.class); EasyMock.expect(globalAdministrationConfiguration.getDomainTypeConfigurationsValues()).andReturn(configurations).once(); EasyMock.replay(globalAdministrationConfiguration); return globalAdministrationConfiguration; } private DomainTypeAdministrationConfiguration domainTypeAdministrationConfiguration(Class domainType, String configurationName) { DomainTypeAdministrationConfiguration domainTypeAdministrationConfiguration = EasyMock.createMock(DomainTypeAdministrationConfiguration.class); EasyMock.expect(domainTypeAdministrationConfiguration.getDomainType()).andReturn(domainType).anyTimes(); EasyMock.expect(domainTypeAdministrationConfiguration.getConfigurationName()).andReturn(configurationName).anyTimes(); EasyMock.replay(domainTypeAdministrationConfiguration); return domainTypeAdministrationConfiguration; } }