/*
* Copyright 2014 Red Hat, Inc. and/or its affiliates.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.kie.workbench.common.services.datamodel.backend.server.builder.util;
import org.junit.Test;
import static org.jgroups.util.Util.*;
/**
* DataEnumLoader tests
*/
public class DataEnumLoaderTests {
@Test
public void testValidDependentEnum() {
final String e = "'Fact.field2[field1=A]':'[1, 2, 3]'";
final DataEnumLoader loader = new DataEnumLoader( e );
assertFalse( loader.hasErrors() );
}
@Test
public void testInvalidDependentEnum_Empty() {
final String e = "'Fact.field2[]':'[1, 2, 3]'";
final DataEnumLoader loader = new DataEnumLoader( e );
assertTrue( loader.hasErrors() );
assertTrue( loader.getErrors().contains( "Invalid dependent definition: Empty [] detected." ) );
}
@Test
public void testInvalidDependentEnum_EqualsNoFieldNoValue1() {
final String e = "'Fact.field2[=]':'[1, 2, 3]'";
final DataEnumLoader loader = new DataEnumLoader( e );
assertTrue( loader.hasErrors() );
assertTrue( loader.getErrors().contains( "Invalid dependent definition: No field or value detected." ) );
}
@Test
public void testInvalidDependentEnum_EqualsNoFieldNoValue2() {
final String e = "'Fact.field2[ = ]':'[1, 2, 3]'";
final DataEnumLoader loader = new DataEnumLoader( e );
assertTrue( loader.hasErrors() );
assertTrue( loader.getErrors().contains( "Invalid dependent definition: No field or value detected." ) );
}
@Test
public void testInvalidDependentEnum_EqualsNoField1() {
final String e = "'Fact.field2[=A]':'[1, 2, 3]'";
final DataEnumLoader loader = new DataEnumLoader( e );
assertTrue( loader.hasErrors() );
assertTrue( loader.getErrors().contains( "Invalid dependent definition: No field detected." ) );
}
@Test
public void testInvalidDependentEnum_EqualsNoField2() {
final String e = "'Fact.field2[ =A]':'[1, 2, 3]'";
final DataEnumLoader loader = new DataEnumLoader( e );
assertTrue( loader.hasErrors() );
assertTrue( loader.getErrors().contains( "Invalid dependent definition: No field detected." ) );
}
@Test
public void testInvalidDependentEnum_EqualsNoValue1() {
final String e = "'Fact.field2[field1=]':'[1, 2, 3]'";
final DataEnumLoader loader = new DataEnumLoader( e );
assertTrue( loader.hasErrors() );
assertTrue( loader.getErrors().contains( "Invalid dependent definition: No value detected." ) );
}
@Test
public void testInvalidDependentEnum_EqualsNoValue2() {
final String e = "'Fact.field2[field1= ]':'[1, 2, 3]'";
final DataEnumLoader loader = new DataEnumLoader( e );
assertTrue( loader.hasErrors() );
assertTrue( loader.getErrors().contains( "Invalid dependent definition: No value detected." ) );
}
@Test
public void testInvalidDependentEnum_ContainsQuotes1() {
final String e = "'Fact.field2[field1=\"A\"]':'[1, 2, 3]'";
final DataEnumLoader loader = new DataEnumLoader( e );
assertTrue( loader.hasErrors() );
assertTrue( loader.getErrors().contains( "Invalid dependent definition: Found quote literal." ) );
}
@Test
public void testInvalidDependentEnum_ContainsQuotes2() {
final String e = "'Fact.field2[field1=\"A]':'[1, 2, 3]'";
final DataEnumLoader loader = new DataEnumLoader( e );
assertTrue( loader.hasErrors() );
assertTrue( loader.getErrors().contains( "Invalid dependent definition: Found quote literal." ) );
}
@Test
public void testInvalidDependentEnum_ContainsQuotes3() {
final String e = "'Fact.field2[field1=A\"]':'[1, 2, 3]'";
final DataEnumLoader loader = new DataEnumLoader( e );
assertTrue( loader.hasErrors() );
assertTrue( loader.getErrors().contains( "Invalid dependent definition: Found quote literal." ) );
}
@Test
public void testInvalidDependentEnum_AdvancedEnum1() {
final String e = "'Fact.field[dependentField1, dependentField2]' : '(new org.company.DataHelper()).getList(\"@{dependentField1}\", \"@{dependentField2}\")'";
final DataEnumLoader loader = new DataEnumLoader( e );
assertFalse( loader.hasErrors() );
}
@Test
public void testInvalidDependentEnum_AdvancedEnum2() {
final String e = "'Fact.field[dependentField1]' : '(new org.company.DataHelper()).getList(\"@{dependentField1}\")'";
final DataEnumLoader loader = new DataEnumLoader( e );
assertFalse( loader.hasErrors() );
}
@Test
public void testInvalidDependentEnum_AdvancedEnum3() {
final String e = "'Fact.field[dependentField1,]' : '(new org.company.DataHelper()).getList(\"@{dependentField1}\")'";
final DataEnumLoader loader = new DataEnumLoader( e );
assertTrue( loader.hasErrors() );
assertTrue( loader.getErrors().contains( "Invalid definition: Field definitions are incomplete." ) );
}
@Test
public void testInvalidDependentEnum_AdvancedEnum4() {
final String e = "'Fact.field[,dependentField1]' : '(new org.company.DataHelper()).getList(\"@{dependentField1}\")'";
final DataEnumLoader loader = new DataEnumLoader( e );
assertTrue( loader.hasErrors() );
assertTrue( loader.getErrors().contains( "Invalid definition: Field definitions are incomplete." ) );
}
@Test
public void testInvalidDependentEnum_AdvancedEnum5() {
final String e = "'Fact.field[,]' : '(new org.company.DataHelper()).getList(\"@{dependentField1}\")'";
final DataEnumLoader loader = new DataEnumLoader( e );
assertTrue( loader.hasErrors() );
assertTrue( loader.getErrors().contains( "Invalid definition: Field definitions are incomplete." ) );
}
@Test
public void testInvalidDependentEnum_AdvancedEnum6() {
final String e = "'Fact.field[ , ]' : '(new org.company.DataHelper()).getList(\"@{dependentField1}\")'";
final DataEnumLoader loader = new DataEnumLoader( e );
assertTrue( loader.hasErrors() );
assertTrue( loader.getErrors().contains( "Invalid definition: Field definitions are incomplete." ) );
}
}