Search in sources :

Example 11 with Source

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);
}
Also used : ExpressionEvaluationContext(com.evolveum.midpoint.repo.common.expression.ExpressionEvaluationContext) OperationResult(com.evolveum.midpoint.schema.result.OperationResult) VariablesMap(com.evolveum.midpoint.schema.expression.VariablesMap) Source(com.evolveum.midpoint.repo.common.expression.Source) Test(org.testng.annotations.Test) AbstractModelCommonTest(com.evolveum.midpoint.model.common.AbstractModelCommonTest)

Example 12 with Source

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);
}
Also used : ExpressionEvaluationContext(com.evolveum.midpoint.repo.common.expression.ExpressionEvaluationContext) OperationResult(com.evolveum.midpoint.schema.result.OperationResult) VariablesMap(com.evolveum.midpoint.schema.expression.VariablesMap) Source(com.evolveum.midpoint.repo.common.expression.Source) Test(org.testng.annotations.Test) AbstractModelCommonTest(com.evolveum.midpoint.model.common.AbstractModelCommonTest)

Example 13 with Source

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);
}
Also used : ExpressionEvaluationContext(com.evolveum.midpoint.repo.common.expression.ExpressionEvaluationContext) OperationResult(com.evolveum.midpoint.schema.result.OperationResult) VariablesMap(com.evolveum.midpoint.schema.expression.VariablesMap) ExpressionType(com.evolveum.midpoint.xml.ns._public.common.common_3.ExpressionType) Source(com.evolveum.midpoint.repo.common.expression.Source) Test(org.testng.annotations.Test)

Example 14 with Source

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);
}
Also used : ExpressionEvaluationContext(com.evolveum.midpoint.repo.common.expression.ExpressionEvaluationContext) OperationResult(com.evolveum.midpoint.schema.result.OperationResult) VariablesMap(com.evolveum.midpoint.schema.expression.VariablesMap) ExpressionType(com.evolveum.midpoint.xml.ns._public.common.common_3.ExpressionType) Source(com.evolveum.midpoint.repo.common.expression.Source) Test(org.testng.annotations.Test)

Example 15 with Source

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();
}
Also used : MappingType(com.evolveum.midpoint.xml.ns._public.common.common_3.MappingType) PrismPropertyDefinition(com.evolveum.midpoint.prism.PrismPropertyDefinition) ItemDefinition(com.evolveum.midpoint.prism.ItemDefinition) StringPolicyResolver(com.evolveum.midpoint.repo.common.expression.StringPolicyResolver) File(java.io.File) Source(com.evolveum.midpoint.repo.common.expression.Source) PrismPropertyValue(com.evolveum.midpoint.prism.PrismPropertyValue) ItemPath(com.evolveum.midpoint.prism.path.ItemPath)

Aggregations

Source (com.evolveum.midpoint.repo.common.expression.Source)26 ExpressionEvaluationContext (com.evolveum.midpoint.repo.common.expression.ExpressionEvaluationContext)15 OperationResult (com.evolveum.midpoint.schema.result.OperationResult)14 VariablesMap (com.evolveum.midpoint.schema.expression.VariablesMap)11 Test (org.testng.annotations.Test)11 ItemPath (com.evolveum.midpoint.prism.path.ItemPath)9 AbstractModelCommonTest (com.evolveum.midpoint.model.common.AbstractModelCommonTest)8 QName (javax.xml.namespace.QName)6 ExpressionEvaluationException (com.evolveum.midpoint.util.exception.ExpressionEvaluationException)5 ItemDeltaItem (com.evolveum.midpoint.repo.common.expression.ItemDeltaItem)4 ObjectNotFoundException (com.evolveum.midpoint.util.exception.ObjectNotFoundException)4 SchemaException (com.evolveum.midpoint.util.exception.SchemaException)4 ItemDefinition (com.evolveum.midpoint.prism.ItemDefinition)3 PrismPropertyValue (com.evolveum.midpoint.prism.PrismPropertyValue)3 ItemDeltaItem (com.evolveum.midpoint.prism.util.ItemDeltaItem)3 ExpressionConstants (com.evolveum.midpoint.schema.constants.ExpressionConstants)3 Trace (com.evolveum.midpoint.util.logging.Trace)3 TraceManager (com.evolveum.midpoint.util.logging.TraceManager)3 ExpressionType (com.evolveum.midpoint.xml.ns._public.common.common_3.ExpressionType)3 ArrayList (java.util.ArrayList)3