@Test
public void testItemDefAllowedValuesString() {
final DMNRuntime runtime = DMNRuntimeUtil.createRuntime("0003-input-data-string-allowed-values.dmn", this.getClass() );
final DMNModel dmnModel = runtime.getModel("https://github.com/kiegroup/kie-dmn", "0003-input-data-string-allowed-values" );
assertThat( dmnModel, notNullValue() );
final ItemDefNode itemDef = dmnModel.getItemDefinitionByName("tEmploymentStatus" );
assertThat( itemDef.getName(), is( "tEmploymentStatus" ) );
assertThat( itemDef.getId(), is( nullValue() ) );
final DMNType type = itemDef.getType();
assertThat( type, is( notNullValue() ) );
assertThat( type.getName(), is( "tEmploymentStatus" ) );
assertThat( type.getId(), is( nullValue() ) );
assertThat( type, is( instanceOf( SimpleTypeImpl.class ) ) );
final SimpleTypeImpl feelType = (SimpleTypeImpl) type;
final EvaluationContext ctx = new EvaluationContextImpl(ClassLoaderUtil.findDefaultClassLoader(), null);
assertThat( feelType.getFeelType(), is(instanceOf(AliasFEELType.class)));
assertThat( feelType.getFeelType().getName(), is("tEmploymentStatus"));
assertThat( feelType.getAllowedValuesFEEL().size(), is( 4 ) );
assertThat( feelType.getAllowedValuesFEEL().get( 0 ).apply( ctx, "UNEMPLOYED" ), is( true ) );
assertThat( feelType.getAllowedValuesFEEL().get( 1 ).apply( ctx, "EMPLOYED" ), is( true ) );
assertThat( feelType.getAllowedValuesFEEL().get( 2 ).apply( ctx, "SELF-EMPLOYED" ), is( true ) );
assertThat( feelType.getAllowedValuesFEEL().get( 3 ).apply( ctx, "STUDENT" ), is( true ) );
}