use of com.evolveum.midpoint.repo.common.expression.Source in project midpoint by Evolveum.
the class TestExpression method test100AsIs.
@Test
public void test100AsIs() throws Exception {
// GIVEN
OperationResult result = createOperationResult();
rememberScriptExecutionCount();
ExpressionType expressionType = parseExpression(EXPRESSION_ASIS_FILE);
Collection<Source<?, ?>> sources = prepareStringSources();
VariablesMap variables = prepareBasicVariables();
ExpressionEvaluationContext expressionContext = new ExpressionEvaluationContext(sources, variables, getTestNameShort(), null);
// WHEN
PrismValueDeltaSetTriple<PrismPropertyValue<String>> outputTriple = evaluatePropertyExpression(expressionType, PrimitiveType.STRING, expressionContext, result);
// THEN
assertOutputTriple(outputTriple).assertEmptyMinus().assertEmptyPlus().zeroSet().assertSinglePropertyValue(INPUT_VALUE);
assertScriptExecutionIncrement(0);
}
use of com.evolveum.midpoint.repo.common.expression.Source in project midpoint by Evolveum.
the class TestExpression method test130Const.
@Test
public void test130Const() throws Exception {
// GIVEN
OperationResult result = createOperationResult();
rememberScriptExecutionCount();
ExpressionType expressionType = parseExpression(EXPRESSION_CONST_FILE);
Collection<Source<?, ?>> sources = prepareStringSources();
VariablesMap variables = prepareBasicVariables();
ExpressionEvaluationContext expressionContext = new ExpressionEvaluationContext(sources, variables, getTestNameShort(), null);
// WHEN
PrismValueDeltaSetTriple<PrismPropertyValue<String>> outputTriple = evaluatePropertyExpression(expressionType, PrimitiveType.STRING, expressionContext, result);
// THEN
assertOutputTriple(outputTriple).assertEmptyMinus().assertEmptyPlus().zeroSet().assertSinglePropertyValue(ExpressionTestUtil.CONST_FOO_VALUE);
assertScriptExecutionIncrement(0);
}
use of com.evolveum.midpoint.repo.common.expression.Source in project midpoint by Evolveum.
the class TestExpressionProfileSafe method test160ScriptJavaScript.
@Test
@Override
public void test160ScriptJavaScript() throws Exception {
skipIfEcmaScriptEngineNotSupported();
given();
OperationResult result = createOperationResult();
rememberScriptExecutionCount();
ExpressionType expressionType = parseExpression(EXPRESSION_SCRIPT_JAVASCRIPT_FILE);
Collection<Source<?, ?>> sources = prepareStringSources();
VariablesMap variables = prepareBasicVariables();
ExpressionEvaluationContext expressionContext = new ExpressionEvaluationContext(sources, variables, getTestNameShort(), null);
when();
evaluatePropertyExpressionRestricted(expressionType, PrimitiveType.STRING, expressionContext, result);
then();
assertScriptExecutionIncrement(0);
}
use of com.evolveum.midpoint.repo.common.expression.Source in project midpoint by Evolveum.
the class TestExpressionProfileSafe method test154ScriptGroovySystemDeny.
@Test
@Override
public void test154ScriptGroovySystemDeny() throws Exception {
given();
OperationResult result = createOperationResult();
rememberScriptExecutionCount();
ExpressionType expressionType = parseExpression(EXPRESSION_SCRIPT_GROOVY_SYSTEM_DENY_FILE);
Collection<Source<?, ?>> sources = prepareStringSources();
VariablesMap variables = prepareBasicVariables();
ExpressionEvaluationContext expressionContext = new ExpressionEvaluationContext(sources, variables, getTestNameShort(), null);
when();
evaluatePropertyExpressionRestricted(expressionType, PrimitiveType.STRING, expressionContext, result);
then();
assertScriptExecutionIncrement(0);
}
use of com.evolveum.midpoint.repo.common.expression.Source in project midpoint by Evolveum.
the class MappingTestEvaluator method createInboudMapping.
public <T> Mapping<PrismPropertyValue<T>, PrismPropertyDefinition<T>> createInboudMapping(String filename, String testName, ItemDelta delta, UserType user, ShadowType account, ResourceType resource, final StringPolicyType policy) throws SchemaException, IOException, JAXBException {
MappingType mappingType = PrismTestUtil.parseAtomicValue(new File(TEST_DIR, filename), MappingType.COMPLEX_TYPE);
Mapping.Builder<PrismPropertyValue<T>, PrismPropertyDefinition<T>> builder = mappingFactory.createMappingBuilder(mappingType, testName);
Source<PrismPropertyValue<T>, PrismPropertyDefinition<T>> defaultSource = new Source<>(null, delta, null, ExpressionConstants.VAR_INPUT);
defaultSource.recompute();
builder.setDefaultSource(defaultSource);
builder.setTargetContext(getUserDefinition());
builder.addVariableDefinition(ExpressionConstants.VAR_USER, user);
builder.addVariableDefinition(ExpressionConstants.VAR_FOCUS, user);
builder.addVariableDefinition(ExpressionConstants.VAR_ACCOUNT, account.asPrismObject());
builder.addVariableDefinition(ExpressionConstants.VAR_SHADOW, account.asPrismObject());
StringPolicyResolver stringPolicyResolver = new StringPolicyResolver() {
ItemPath outputPath;
ItemDefinition outputDefinition;
@Override
public void setOutputPath(ItemPath outputPath) {
this.outputPath = outputPath;
}
@Override
public void setOutputDefinition(ItemDefinition outputDefinition) {
this.outputDefinition = outputDefinition;
}
@Override
public StringPolicyType resolve() {
return policy;
}
};
builder.setStringPolicyResolver(stringPolicyResolver);
builder.setOriginType(OriginType.INBOUND);
builder.setOriginObject(resource);
return builder.build();
}
Aggregations