Search in sources :

Example 21 with Opcode

use of org.nhindirect.policy.Opcode in project nhin-d by DirectProject.

the class StackMachine_evaluateTest method testEvaluate_notEnoughParamsForUnaryOperation_assertException.

public void testEvaluate_notEnoughParamsForUnaryOperation_assertException() throws Exception {
    final Vector<Opcode> stuffToProcess = new Vector<Opcode>();
    stuffToProcess.add(new StackMachineEntry(PolicyOperator.LOGICAL_NOT));
    boolean exceptionOccured = false;
    final StackMachine stMachine = new StackMachine();
    try {
        stMachine.evaluate(stuffToProcess);
    } catch (IllegalStateException e) {
        exceptionOccured = true;
    }
    assertTrue(exceptionOccured);
}
Also used : StackMachine(org.nhindirect.policy.impl.machine.StackMachine) StackMachineEntry(org.nhindirect.policy.impl.machine.StackMachineEntry) Opcode(org.nhindirect.policy.Opcode) Vector(java.util.Vector)

Example 22 with Opcode

use of org.nhindirect.policy.Opcode in project nhin-d by DirectProject.

the class StackMachine_evaluateTest method testEvaluate_logicalOrNeitherTrue_assertFalse.

public void testEvaluate_logicalOrNeitherTrue_assertFalse() throws Exception {
    final Vector<Opcode> stuffToProcess = new Vector<Opcode>();
    stuffToProcess.add(new StackMachineEntry(PolicyValueFactory.getInstance(false)));
    stuffToProcess.add(new StackMachineEntry(PolicyValueFactory.getInstance(false)));
    stuffToProcess.add(new StackMachineEntry(PolicyOperator.LOGICAL_OR));
    final StackMachine stMachine = new StackMachine();
    assertFalse(stMachine.evaluate(stuffToProcess));
}
Also used : StackMachine(org.nhindirect.policy.impl.machine.StackMachine) StackMachineEntry(org.nhindirect.policy.impl.machine.StackMachineEntry) Opcode(org.nhindirect.policy.Opcode) Vector(java.util.Vector)

Example 23 with Opcode

use of org.nhindirect.policy.Opcode in project nhin-d by DirectProject.

the class StackMachine_evaluateTest method testEvaluate_bitwiseOrBitSetOnBoth_assertEquals.

public void testEvaluate_bitwiseOrBitSetOnBoth_assertEquals() throws Exception {
    final Vector<Opcode> stuffToProcess = new Vector<Opcode>();
    stuffToProcess.add(new StackMachineEntry(PolicyValueFactory.getInstance(1)));
    stuffToProcess.add(new StackMachineEntry(PolicyValueFactory.getInstance(1)));
    stuffToProcess.add(new StackMachineEntry(PolicyOperator.BITWISE_OR));
    stuffToProcess.add(new StackMachineEntry(PolicyValueFactory.getInstance(1)));
    stuffToProcess.add(new StackMachineEntry(PolicyOperator.EQUALS));
    final StackMachine stMachine = new StackMachine();
    assertTrue(stMachine.evaluate(stuffToProcess));
}
Also used : StackMachine(org.nhindirect.policy.impl.machine.StackMachine) StackMachineEntry(org.nhindirect.policy.impl.machine.StackMachineEntry) Opcode(org.nhindirect.policy.Opcode) Vector(java.util.Vector)

Example 24 with Opcode

use of org.nhindirect.policy.Opcode in project nhin-d by DirectProject.

the class StackMachine_evaluateTest method testEvaluate_bitwiseAndBitSetOnBoth_assertEquals.

public void testEvaluate_bitwiseAndBitSetOnBoth_assertEquals() throws Exception {
    final Vector<Opcode> stuffToProcess = new Vector<Opcode>();
    stuffToProcess.add(new StackMachineEntry(PolicyValueFactory.getInstance(1)));
    stuffToProcess.add(new StackMachineEntry(PolicyValueFactory.getInstance(1)));
    stuffToProcess.add(new StackMachineEntry(PolicyOperator.BITWISE_AND));
    stuffToProcess.add(new StackMachineEntry(PolicyValueFactory.getInstance(1)));
    stuffToProcess.add(new StackMachineEntry(PolicyOperator.EQUALS));
    final StackMachine stMachine = new StackMachine();
    assertTrue(stMachine.evaluate(stuffToProcess));
}
Also used : StackMachine(org.nhindirect.policy.impl.machine.StackMachine) StackMachineEntry(org.nhindirect.policy.impl.machine.StackMachineEntry) Opcode(org.nhindirect.policy.Opcode) Vector(java.util.Vector)

Example 25 with Opcode

use of org.nhindirect.policy.Opcode in project nhin-d by DirectProject.

the class StackMachineCompiler_compileTest method testCompile_simpleBinaryLiteralOperation_assertEntriesAndEvaluation.

public void testCompile_simpleBinaryLiteralOperation_assertEntriesAndEvaluation() throws Exception {
    // build the expression
    final PolicyValue<Integer> op1 = PolicyValueFactory.getInstance(1);
    final PolicyValue<Integer> op2 = PolicyValueFactory.getInstance(1);
    final LiteralPolicyExpression<Integer> expr1 = LiteralPolicyExpressionFactory.getInstance(op1);
    final LiteralPolicyExpression<Integer> expr2 = LiteralPolicyExpressionFactory.getInstance(op2);
    final Vector<PolicyExpression> operands = new Vector<PolicyExpression>();
    operands.add(expr1);
    operands.add(expr2);
    final OperationPolicyExpression oper = OperationPolicyExpressionFactory.getInstance(PolicyOperator.EQUALS, operands);
    final StackMachineCompiler compiler = new StackMachineCompiler();
    final Vector<Opcode> entries = compiler.compile(null, oper);
    assertEquals(3, entries.size());
    assertEquals(op1, ((StackMachineEntry) entries.get(0)).getValue());
    assertEquals(op2, ((StackMachineEntry) entries.get(1)).getValue());
    assertEquals(PolicyOperator.EQUALS, ((StackMachineEntry) entries.get(2)).getOperator());
    // execute the compiled expression in the stack machine
    final StackMachine machine = new StackMachine();
    final Boolean evalVal = machine.evaluate(entries);
    assertTrue(evalVal);
}
Also used : StackMachine(org.nhindirect.policy.impl.machine.StackMachine) Opcode(org.nhindirect.policy.Opcode) LiteralPolicyExpression(org.nhindirect.policy.LiteralPolicyExpression) PolicyExpression(org.nhindirect.policy.PolicyExpression) OperationPolicyExpression(org.nhindirect.policy.OperationPolicyExpression) StackMachineCompiler(org.nhindirect.policy.impl.machine.StackMachineCompiler) Vector(java.util.Vector) OperationPolicyExpression(org.nhindirect.policy.OperationPolicyExpression)

Aggregations

Opcode (org.nhindirect.policy.Opcode)47 Vector (java.util.Vector)43 StackMachine (org.nhindirect.policy.impl.machine.StackMachine)43 StackMachineEntry (org.nhindirect.policy.impl.machine.StackMachineEntry)40 PolicyExpression (org.nhindirect.policy.PolicyExpression)7 X509Certificate (java.security.cert.X509Certificate)6 LiteralPolicyExpression (org.nhindirect.policy.LiteralPolicyExpression)5 OperationPolicyExpression (org.nhindirect.policy.OperationPolicyExpression)5 StackMachineCompiler (org.nhindirect.policy.impl.machine.StackMachineCompiler)5 Compiler (org.nhindirect.policy.Compiler)3 ExecutionEngine (org.nhindirect.policy.ExecutionEngine)3 ExtendedKeyUsageExtensionField (org.nhindirect.policy.x509.ExtendedKeyUsageExtensionField)3 KeyUsageExtensionField (org.nhindirect.policy.x509.KeyUsageExtensionField)3 File (java.io.File)1 InputStream (java.io.InputStream)1 PolicyOperatorExecutor (org.nhindirect.policy.PolicyOperatorExecutor)1