2 * Copyright (c) 2016 Cisco Systems, Inc. and others. All rights reserved.
4 * This program and the accompanying materials are made available under the
5 * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 * and is available at http://www.eclipse.org/legal/epl-v10.html
8 package org.opendaylight.yangtools.yang.data.impl.codec;
10 import static org.junit.jupiter.api.Assertions.assertEquals;
11 import static org.mockito.Mockito.mock;
13 import java.util.List;
14 import org.junit.jupiter.api.Test;
15 import org.opendaylight.yangtools.yang.common.QName;
16 import org.opendaylight.yangtools.yang.data.api.codec.StringCodec;
17 import org.opendaylight.yangtools.yang.model.api.ConstraintMetaDefinition;
18 import org.opendaylight.yangtools.yang.model.api.stmt.ValueRange;
19 import org.opendaylight.yangtools.yang.model.ri.type.BaseTypes;
20 import org.opendaylight.yangtools.yang.model.ri.type.InvalidLengthConstraintException;
21 import org.opendaylight.yangtools.yang.model.ri.type.RestrictedTypes;
24 * Unit tests for StringCodecString.
26 * @author Thomas Pantelis
28 class StringCodecStringTest {
30 void testSerialize() {
31 final var codec = TypeDefinitionAwareCodecTestHelper.getCodec(BaseTypes.stringType(),
34 assertEquals("foo", codec.serialize("foo"), "serialize");
35 assertEquals("", codec.serialize(""), "serialize");
39 void testDeserialize() {
40 final var codec = TypeDefinitionAwareCodecTestHelper.getCodec(BaseTypes.stringType(),
43 assertEquals("bar", codec.deserialize("bar"), "deserialize");
44 assertEquals("", codec.deserialize(""), "deserialize");
48 void testDeserializeUnicode() throws InvalidLengthConstraintException {
49 final var builder = RestrictedTypes.newStringBuilder(BaseTypes.stringType(),
50 QName.create("foo", "foo"));
51 builder.setLengthConstraint(mock(ConstraintMetaDefinition.class), List.of(ValueRange.of(1)));
52 final var type = builder.build();
54 final var codec = TypeDefinitionAwareCodecTestHelper.getCodec(type, StringCodec.class);
56 assertEquals("🌞", codec.deserialize("🌞"));