import static org.junit.Assert.assertTrue;
import static org.mockito.Mockito.mock;
+import com.google.common.collect.ImmutableList;
import java.util.ArrayList;
+import java.util.List;
import java.util.Optional;
import org.junit.Test;
import org.opendaylight.yangtools.concepts.Builder;
import org.opendaylight.yangtools.yang.common.QName;
+import org.opendaylight.yangtools.yang.model.api.ConstraintMetaDefinition;
import org.opendaylight.yangtools.yang.model.api.IdentitySchemaNode;
import org.opendaylight.yangtools.yang.model.api.RevisionAwareXPath;
import org.opendaylight.yangtools.yang.model.api.SchemaPath;
import org.opendaylight.yangtools.yang.model.api.Status;
import org.opendaylight.yangtools.yang.model.api.TypeDefinition;
import org.opendaylight.yangtools.yang.model.api.UnknownSchemaNode;
+import org.opendaylight.yangtools.yang.model.api.stmt.UnresolvedNumber;
+import org.opendaylight.yangtools.yang.model.api.stmt.ValueRange;
import org.opendaylight.yangtools.yang.model.api.type.BinaryTypeDefinition;
import org.opendaylight.yangtools.yang.model.api.type.BitsTypeDefinition;
import org.opendaylight.yangtools.yang.model.api.type.BitsTypeDefinition.Bit;
import org.opendaylight.yangtools.yang.model.api.type.IdentityrefTypeDefinition;
import org.opendaylight.yangtools.yang.model.api.type.InstanceIdentifierTypeDefinition;
import org.opendaylight.yangtools.yang.model.api.type.IntegerTypeDefinition;
-import org.opendaylight.yangtools.yang.model.api.type.LengthConstraint;
import org.opendaylight.yangtools.yang.model.api.type.PatternConstraint;
import org.opendaylight.yangtools.yang.model.api.type.RangeConstraint;
import org.opendaylight.yangtools.yang.model.api.type.StringTypeDefinition;
import org.opendaylight.yangtools.yang.model.api.type.UnsignedIntegerTypeDefinition;
import org.opendaylight.yangtools.yang.model.util.BaseConstraints;
import org.opendaylight.yangtools.yang.model.util.RevisionAwareXPathImpl;
-import org.opendaylight.yangtools.yang.model.util.UnresolvedNumber;
public class TypeTest {
private static final QName Q_NAME = QName.create("test.namespace", "2016-01-01", "test-name");
final BaseBinaryType baseBinaryType1 = BaseBinaryType.INSTANCE;
final BaseBinaryType baseBinaryType2 = (BaseBinaryType)BaseTypes.binaryType();
hashCodeEqualsToStringTest(baseBinaryType1, baseBinaryType2);
- assertEquals(baseBinaryType1.getLengthConstraints(), baseBinaryType2.getLengthConstraints());
+ assertEquals(baseBinaryType1.getLengthConstraint(), baseBinaryType2.getLengthConstraint());
final DerivedBinaryType derivedBinaryType1 = (DerivedBinaryType)DerivedTypes.derivedTypeBuilder(baseBinaryType1,
SCHEMA_PATH).build();
final BaseStringType baseStringType1 = BaseStringType.INSTANCE;
final BaseStringType baseStringType2 = (BaseStringType)BaseTypes.stringType();
hashCodeEqualsToStringTest(baseStringType1, baseStringType2);
- assertEquals(baseStringType1.getLengthConstraints(), baseStringType2.getLengthConstraints());
+ assertEquals(baseStringType1.getLengthConstraint(), baseStringType2.getLengthConstraint());
assertEquals(baseStringType1.getPatternConstraints(), baseStringType2.getPatternConstraints());
final DerivedStringType derivedStringType1 = (DerivedStringType)
}
@Test
- public void constraintTypeBuilderTest() {
+ public void constraintTypeBuilderTest() throws InvalidLengthConstraintException {
final BaseBinaryType baseBinaryType = (BaseBinaryType)BaseTypes.binaryType();
final LengthRestrictedTypeBuilder<?> lengthRestrictedTypeBuilder = RestrictedTypes
.newBinaryBuilder(baseBinaryType, SCHEMA_PATH);
final Long min = Long.valueOf(0);
final UnresolvedNumber max = UnresolvedNumber.max();
- final LengthConstraint lengthConstraint = BaseConstraints.newLengthConstraint(min, max, ABSENT, ABSENT);
- final ArrayList<LengthConstraint> lengthArrayList = new ArrayList<>(1);
- assertEquals(lengthConstraint.getErrorAppTag(), "length-out-of-specified-bounds");
- assertEquals(lengthConstraint.getErrorMessage(), "The argument is out of bounds <0, max>");
- lengthArrayList.add(lengthConstraint);
- lengthRestrictedTypeBuilder.setLengthAlternatives(lengthArrayList);
+ final List<ValueRange> lengthArrayList = ImmutableList.of(ValueRange.of(min, max));
+ lengthRestrictedTypeBuilder.setLengthConstraint(mock(ConstraintMetaDefinition.class), lengthArrayList);
final TypeDefinition<?> typeDefinition = lengthRestrictedTypeBuilder.buildType();
assertNotNull(typeDefinition);
public void exceptionTest() {
final UnresolvedNumber min = UnresolvedNumber.min();
final UnresolvedNumber max = UnresolvedNumber.max();
- final LengthConstraint lengthConstraint = BaseConstraints.newLengthConstraint(min, max, ABSENT, ABSENT);
- final RangeConstraint rangeConstraint = BaseConstraints.newRangeConstraint(min, max, ABSENT, ABSENT);
+ final RangeConstraint rangeConstraint = BaseConstraints.newRangeConstraint(min, max, Optional.empty(),
+ Optional.empty());
final EnumPair enumPair = EnumPairBuilder.create("enum1", 1).setDescription("description")
.setReference("reference").setUnknownSchemaNodes(mock(UnknownSchemaNode.class)).build();
- final InvalidLengthConstraintException invalidLengthConstraintException = new InvalidLengthConstraintException(
- lengthConstraint, "error msg", "other important messages");
- assertEquals(invalidLengthConstraintException.getOffendingConstraint(), lengthConstraint);
-
final InvalidRangeConstraintException invalidRangeConstraintException = new InvalidRangeConstraintException(
rangeConstraint, "error msg", "other important messages");
assertEquals(invalidRangeConstraintException.getOffendingConstraint(), rangeConstraint);