/* * codjo.net * * Common Apache License 2.0 */ package net.codjo.control.server.plugin; import net.codjo.agent.AclMessage; import net.codjo.control.common.message.ControlJobRequest; import net.codjo.test.common.LogString; import net.codjo.workflow.common.message.JobAudit; import net.codjo.workflow.server.api.JobAgent; import net.codjo.workflow.server.api.JobAgent.MODE; import net.codjo.workflow.server.api.JobAgentTestCase; /** * */ public class ControlJobAgentTest extends JobAgentTestCase { private ControlerFactoryMock controlFactory; public void test_control() throws Exception { record().startJobAgent(createJobAgent()); PostControlAudit postControlAudit = new PostControlAudit(); postControlAudit.setBadLineCount(2); mockAudit(postControlAudit); record().startTester("tester") .sendMessage(createControlRequest("oggi", "MY_QUARANTINE", "control-321")) .then() .receiveMessage(hasAuditType(JobAudit.Type.PRE)) .then() .receiveMessage(hasAuditType(JobAudit.Type.POST)) .assertReceivedMessage(hasAuditWarningMessage("Il y a 2 ligne(s) plac�es en quarantaine.")); executeStory(); log.assertContent( "controlFactory.init(agent:job-agent, message:REQUEST)" + ", controlFactory.createControler()" + ", controler.execute(MY_QUARANTINE, oggi, control-321)"); } @Override protected JobAgent createJobAgent() throws Exception { controlFactory = new ControlerFactoryMock(new LogString("controlFactory", log)); return new ControlJobAgent(controlFactory, MODE.NOT_DELEGATE); } @Override protected String getServiceType() throws Exception { return ControlServerPlugin.CONTROL_REQUEST_TYPE; } private void mockAudit(PostControlAudit postControlAudit) { ControlerMock controlerMock = new ControlerMock(new LogString("controler", log)); controlFactory.mockCreateControler(controlerMock); controlerMock.mockExecuteResult(postControlAudit); } private AclMessage createControlRequest(String initiator, String quarantineTable, String requestId) { ControlJobRequest request = new ControlJobRequest(); request.setId(requestId); request.setInitiatorLogin(initiator); request.setQuarantineTable(quarantineTable); return createJobRequestMessage(request.toRequest()); } }