package org.ovirt.engine.core.bll.job;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertNull;
import org.apache.commons.lang.StringUtils;
import org.junit.Test;
import org.ovirt.engine.core.common.action.VdcActionParametersBase;
import org.ovirt.engine.core.common.action.VdcReturnValueBase;
import org.ovirt.engine.core.common.businessentities.BusinessEntitiesDefinitions;
import org.ovirt.engine.core.utils.CorrelationIdTracker;
public class CorrelationIdValidationTest {
public void setUp() {
CorrelationIdTracker.setCorrelationId(null);
}
@Test
public void validCorrelationId() {
VdcActionParametersBase parameters = new VdcActionParametersBase();
parameters.setCorrelationId("VALID_CORRELATION_ID");
VdcReturnValueBase result = ExecutionHandler.evaluateCorrelationId(parameters);
assertNull("Correlation id is valid", result);
}
@Test
public void invalidCorrelationId() {
VdcActionParametersBase parameters = new VdcActionParametersBase();
parameters.setCorrelationId("INVALID_CORRELATION_@#$%@#");
VdcReturnValueBase result = ExecutionHandler.evaluateCorrelationId(parameters);
assertNotNull("Correlation id is invalid", result);
assertFalse("Correlation id is invalid", result.getSucceeded());
}
@Test
public void correlationIdMaxSize() {
VdcActionParametersBase parameters = new VdcActionParametersBase();
parameters.setCorrelationId(StringUtils.leftPad("", BusinessEntitiesDefinitions.CORRELATION_ID_SIZE, "A"));
VdcReturnValueBase result = ExecutionHandler.evaluateCorrelationId(parameters);
assertNull("Correlation id is size is at max permitted length", result);
}
@Test
public void correlationIdTooLong() {
VdcActionParametersBase parameters = new VdcActionParametersBase();
parameters.setCorrelationId(StringUtils.leftPad("", BusinessEntitiesDefinitions.CORRELATION_ID_SIZE + 1, "A"));
VdcReturnValueBase result = ExecutionHandler.evaluateCorrelationId(parameters);
assertNotNull("Correlation id exceeds max size", result);
assertFalse("Correlation id exceeds max size", result.getSucceeded());
}
}