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);
}
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));
}
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));
}
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));
}
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);
}
Aggregations