use of org.drools.scenariosimulation.api.model.FactMappingValue in project drools by kiegroup.
the class AbstractRunnerHelperTest method getResultWrapper.
@Test
public void getResultWrapper() {
ExpressionEvaluator expressionEvaluatorMock = mock(ExpressionEvaluator.class);
Object resultRaw = "test";
Object expectedResultRaw = "";
String collectionWrongValue = "value";
String collectionValuePath = "Item #: 1";
String genericErrorMessage = "errorMessage";
// case 1: succeed
when(expressionEvaluatorMock.evaluateUnaryExpression(any(), any(), any(Class.class))).thenReturn(ExpressionEvaluatorResult.ofSuccessful());
ValueWrapper valueWrapper = abstractRunnerHelper.getResultWrapper(String.class.getCanonicalName(), new FactMappingValue(), expressionEvaluatorMock, expectedResultRaw, resultRaw, String.class);
assertTrue(valueWrapper.isValid());
assertNull(valueWrapper.getCollectionPathToValue());
// case 2: failed with actual value
when(expressionEvaluatorMock.evaluateUnaryExpression(any(), any(), any(Class.class))).thenReturn(ExpressionEvaluatorResult.ofFailed());
valueWrapper = abstractRunnerHelper.getResultWrapper(String.class.getCanonicalName(), new FactMappingValue(), expressionEvaluatorMock, expectedResultRaw, resultRaw, String.class);
assertFalse(valueWrapper.isValid());
assertEquals(resultRaw, valueWrapper.getValue());
assertNull(valueWrapper.getCollectionPathToValue());
// case 3: failed without actual value (list)
valueWrapper = abstractRunnerHelper.getResultWrapper(List.class.getCanonicalName(), new FactMappingValue(), expressionEvaluatorMock, expectedResultRaw, resultRaw, List.class);
assertFalse(valueWrapper.getErrorMessage().isPresent());
assertTrue(valueWrapper.getCollectionPathToValue().isEmpty());
assertNull(valueWrapper.getValue());
// case 4: failed without actual value (map)
valueWrapper = abstractRunnerHelper.getResultWrapper(Map.class.getCanonicalName(), new FactMappingValue(), expressionEvaluatorMock, expectedResultRaw, resultRaw, Map.class);
assertFalse(valueWrapper.getErrorMessage().isPresent());
assertTrue(valueWrapper.getCollectionPathToValue().isEmpty());
assertNull(valueWrapper.getValue());
// case 5: failed with wrong value (list)
ExpressionEvaluatorResult result = ExpressionEvaluatorResult.ofFailed(collectionWrongValue, collectionValuePath);
when(expressionEvaluatorMock.evaluateUnaryExpression(any(), any(), any(Class.class))).thenReturn(result);
valueWrapper = abstractRunnerHelper.getResultWrapper(List.class.getCanonicalName(), new FactMappingValue(), expressionEvaluatorMock, expectedResultRaw, resultRaw, List.class);
assertFalse(valueWrapper.getErrorMessage().isPresent());
assertEquals(1, valueWrapper.getCollectionPathToValue().size());
assertEquals(collectionWrongValue, valueWrapper.getValue());
// case 6: failed without actual value (map)
valueWrapper = abstractRunnerHelper.getResultWrapper(Map.class.getCanonicalName(), new FactMappingValue(), expressionEvaluatorMock, expectedResultRaw, resultRaw, Map.class);
assertFalse(valueWrapper.getErrorMessage().isPresent());
assertEquals(1, valueWrapper.getCollectionPathToValue().size());
assertEquals(collectionWrongValue, valueWrapper.getValue());
// case 7: failed without wrong value (list)
result = ExpressionEvaluatorResult.ofFailed(null, collectionValuePath);
when(expressionEvaluatorMock.evaluateUnaryExpression(any(), any(), any(Class.class))).thenReturn(result);
valueWrapper = abstractRunnerHelper.getResultWrapper(List.class.getCanonicalName(), new FactMappingValue(), expressionEvaluatorMock, expectedResultRaw, resultRaw, List.class);
assertFalse(valueWrapper.getErrorMessage().isPresent());
assertEquals(1, valueWrapper.getCollectionPathToValue().size());
assertNull(valueWrapper.getValue());
// case 8: failed without actual value (map)
valueWrapper = abstractRunnerHelper.getResultWrapper(Map.class.getCanonicalName(), new FactMappingValue(), expressionEvaluatorMock, expectedResultRaw, resultRaw, Map.class);
assertFalse(valueWrapper.getErrorMessage().isPresent());
assertEquals(1, valueWrapper.getCollectionPathToValue().size());
assertNull(valueWrapper.getValue());
// case 9: failed with generic exception
when(expressionEvaluatorMock.evaluateUnaryExpression(any(), any(), any(Class.class))).thenThrow(new IllegalArgumentException(genericErrorMessage));
FactMappingValue expectedResult5 = new FactMappingValue();
valueWrapper = abstractRunnerHelper.getResultWrapper(Map.class.getCanonicalName(), expectedResult5, expressionEvaluatorMock, expectedResultRaw, resultRaw, Map.class);
assertEquals(genericErrorMessage, valueWrapper.getErrorMessage().get());
assertEquals(genericErrorMessage, expectedResult5.getExceptionMessage());
}
use of org.drools.scenariosimulation.api.model.FactMappingValue in project drools by kiegroup.
the class AbstractRunnerHelperTest method isFactMappingValueToSkip.
@Test
public void isFactMappingValueToSkip() {
FactIdentifier factIdentifier = FactIdentifier.create("MyInstance", String.class.getCanonicalName());
ExpressionIdentifier expressionIdentifier = ExpressionIdentifier.create("MyProperty", FactMappingType.GIVEN);
FactMappingValue factMappingValueWithValidValue = new FactMappingValue(factIdentifier, expressionIdentifier, VALUE);
assertFalse(abstractRunnerHelper.isFactMappingValueToSkip(factMappingValueWithValidValue));
FactMappingValue factMappingValueWithoutValue = new FactMappingValue(factIdentifier, expressionIdentifier, null);
assertTrue(abstractRunnerHelper.isFactMappingValueToSkip(factMappingValueWithoutValue));
}
use of org.drools.scenariosimulation.api.model.FactMappingValue in project drools-wb by kiegroup.
the class AbstractScesimGridModelTest method refreshErrorsRow.
@Test
public void refreshErrorsRow() {
int expectedCalls = abstractScesimGridModelSpy.getColumnCount();
FactMappingValue factMappingValue = mock(FactMappingValue.class);
when(factMappingValue.getStatus()).thenReturn(FactMappingValueStatus.FAILED_WITH_ERROR);
when(scenarioMock.getFactMappingValue(any(), any())).thenReturn(Optional.empty());
abstractScesimGridModelSpy.refreshErrorsRow(0);
verify(gridCellMock, times(expectedCalls)).setErrorMode(false);
when(scenarioMock.getFactMappingValue(any(), any())).thenReturn(Optional.of(factMappingValue));
abstractScesimGridModelSpy.refreshErrorsRow(0);
verify(gridCellMock, times(expectedCalls)).setErrorMode(true);
}
use of org.drools.scenariosimulation.api.model.FactMappingValue in project drools-wb by kiegroup.
the class AbstractScesimGridModel method refreshErrorsRow.
protected void refreshErrorsRow(int rowIndex) {
ScesimModelDescriptor simulationDescriptor = abstractScesimModel.getScesimModelDescriptor();
E scesimDataByIndex = abstractScesimModel.getDataByIndex(rowIndex);
IntStream.range(0, getColumnCount()).forEach(columnIndex -> {
ScenarioGridCell cell = (ScenarioGridCell) getCell(rowIndex, columnIndex);
if (cell == null) {
return;
}
final FactMapping factMappingByIndex = simulationDescriptor.getFactMappingByIndex(columnIndex);
Optional<FactMappingValue> factMappingValue = scesimDataByIndex.getFactMappingValue(factMappingByIndex.getFactIdentifier(), factMappingByIndex.getExpressionIdentifier());
if (factMappingValue.isPresent()) {
cell.setErrorMode(FactMappingValueStatus.SUCCESS != factMappingValue.get().getStatus());
} else {
cell.setErrorMode(false);
}
});
}
use of org.drools.scenariosimulation.api.model.FactMappingValue in project drools-wb by kiegroup.
the class AbstractScesimGridModel method resetError.
/**
* It resets the <code>FactMappingValue</code> status for a specific CELL
* @param rowIndex
* @param columnIndex
*/
public void resetError(int rowIndex, int columnIndex) {
E scesimDataByIndex = abstractScesimModel.getDataByIndex(rowIndex);
FactMapping factMapping = abstractScesimModel.getScesimModelDescriptor().getFactMappingByIndex(columnIndex);
Optional<FactMappingValue> factMappingValue = scesimDataByIndex.getFactMappingValue(factMapping);
factMappingValue.ifPresent(FactMappingValue::resetStatus);
refreshErrors();
}
Aggregations