Migrate yang-data-impl to JUnit5
[yangtools.git] / data / yang-data-impl / src / test / java / org / opendaylight / yangtools / yang / data / impl / codec / StringCodecStringTest.java
1 /*
2  * Copyright (c) 2016 Cisco Systems, Inc. and others.  All rights reserved.
3  *
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
7  */
8 package org.opendaylight.yangtools.yang.data.impl.codec;
9
10 import static org.junit.jupiter.api.Assertions.assertEquals;
11 import static org.mockito.Mockito.mock;
12
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;
22
23 /**
24  * Unit tests for StringCodecString.
25  *
26  * @author Thomas Pantelis
27  */
28 class StringCodecStringTest {
29     @Test
30     void testSerialize() {
31         final var codec = TypeDefinitionAwareCodecTestHelper.getCodec(BaseTypes.stringType(),
32             StringCodec.class);
33
34         assertEquals("foo", codec.serialize("foo"), "serialize");
35         assertEquals("", codec.serialize(""), "serialize");
36     }
37
38     @Test
39     void testDeserialize() {
40         final var codec = TypeDefinitionAwareCodecTestHelper.getCodec(BaseTypes.stringType(),
41             StringCodec.class);
42
43         assertEquals("bar", codec.deserialize("bar"), "deserialize");
44         assertEquals("", codec.deserialize(""), "deserialize");
45     }
46
47     @Test
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();
53
54         final var codec = TypeDefinitionAwareCodecTestHelper.getCodec(type, StringCodec.class);
55
56         assertEquals("🌞", codec.deserialize("🌞"));
57     }
58 }