package net.codjo.control.server.plugin;
import net.codjo.aspect.AspectManager;
import net.codjo.control.common.loader.ApplicationIP;
import net.codjo.control.common.loader.IntegrationDefinition;
import net.codjo.control.common.loader.TransfertData;
import net.codjo.control.common.message.TransferJobRequest;
import java.util.Collections;
import junit.framework.TestCase;
/**
*
*/
public class ControlPreferenceTest extends TestCase {
public void test_constructor() throws Exception {
AspectManager aspectManager = new AspectManager();
ControlPreference preference = new ControlPreference(new ApplicationIP(), aspectManager);
assertNotNull(preference.getDispatchPoint());
assertEquals(ControlServerPlugin.DISPATCH_ASPECT_POINT_ID,
preference.getDispatchPoint().getPointId());
assertSame(aspectManager, preference.getDispatchPoint().getManager());
}
public void test_getTransfertData() throws Exception {
TransfertData transfertData = new TransfertData("AP_QUARANTINE", "AP_USER_QUARANTINE");
TransferJobRequest request = createTransfert("AP_QUARANTINE", "AP_USER_QUARANTINE");
ControlPreference preference = createPreferenceWith(transfertData);
assertSame(transfertData, preference.getTransfertData(request));
}
public void test_getTransfertData_forUnknownTables() throws Exception {
TransferJobRequest request = createTransfert("AP_QUARANTINE", "AP_USER_QUARANTINE");
ControlPreference preference = createPreferenceWith(new TransfertData("AP_QUARANTINE", "B"));
try {
preference.getTransfertData(request);
fail();
}
catch (IllegalArgumentException ex) {
assertEquals("M�canisme de transfert entre les tables 'AP_QUARANTINE' et 'AP_USER_QUARANTINE' "
+ "est inconnu (absent du fichier META-INF/ApplicationIP.xml)",
ex.getLocalizedMessage());
}
}
private TransferJobRequest createTransfert(String quarantine, String userQuarantine) {
TransferJobRequest transferRequest = new TransferJobRequest();
transferRequest.setQuarantine(quarantine);
transferRequest.setUserQuarantine(userQuarantine);
return transferRequest;
}
private ControlPreference createPreferenceWith(TransfertData transfertData) {
IntegrationDefinition integrationDefinition = new IntegrationDefinition();
integrationDefinition.setTransfert(transfertData);
ApplicationIP applicationIP = new ApplicationIP();
applicationIP.setIntegrationDefinitions(Collections.singleton(integrationDefinition));
return new ControlPreference(applicationIP, new AspectManager());
}
}