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.doReturn;
12 import static org.mockito.Mockito.mock;
14 import com.google.common.collect.ImmutableSet;
16 import org.junit.jupiter.api.Test;
17 import org.opendaylight.yangtools.yang.common.QName;
18 import org.opendaylight.yangtools.yang.common.Uint32;
19 import org.opendaylight.yangtools.yang.data.api.codec.BitsCodec;
20 import org.opendaylight.yangtools.yang.model.api.type.BitsTypeDefinition;
21 import org.opendaylight.yangtools.yang.model.api.type.BitsTypeDefinition.Bit;
22 import org.opendaylight.yangtools.yang.model.ri.type.BaseTypes;
25 * Unit tests for BitsCodecString.
27 * @author Thomas Pantelis
29 class BitsCodecStringTest {
30 private static BitsTypeDefinition toBitsTypeDefinition(final String... bits) {
31 final var b = BaseTypes.bitsTypeBuilder(QName.create("foo", "foo"));
34 for (var bit : bits) {
35 final var mockBit = mock(Bit.class);
36 doReturn(bit).when(mockBit).getName();
37 doReturn(Uint32.valueOf(pos)).when(mockBit).getPosition();
45 @SuppressWarnings("unchecked")
47 void testSerialize() {
48 final var codec = TypeDefinitionAwareCodecTestHelper.getCodec(toBitsTypeDefinition("foo"),
51 final var serialized = ((BitsCodec<String>) codec).serialize(ImmutableSet.of("foo", "bar"));
52 assertEquals("foo bar", serialized);
54 assertEquals("", codec.serialize(Set.of()));
57 @SuppressWarnings("unchecked")
59 void testDeserialize() {
60 final var codec = TypeDefinitionAwareCodecTestHelper.getCodec(
61 toBitsTypeDefinition("bit1", "bit2"), BitsCodec.class);
63 assertEquals(Set.of("bit1", "bit2"), codec.deserialize(" bit1 bit2 "), "deserialize");
64 assertEquals(Set.of(), codec.deserialize(""), "deserialize");
66 TypeDefinitionAwareCodecTestHelper.deserializeWithExpectedIllegalArgEx(codec, "bit1 bit3");