/* * Copyright (c) 2013 Cisco Systems, Inc. and others. All rights reserved. * * This program and the accompanying materials are made available under the * terms of the Eclipse Public License v1.0 which accompanies this distribution, * and is available at http://www.eclipse.org/legal/epl-v10.html */ package org.opendaylight.netconf.nettyutil.handler; import static org.junit.Assert.assertEquals; import io.netty.buffer.ByteBuf; import io.netty.buffer.Unpooled; import java.nio.charset.StandardCharsets; import java.util.ArrayList; import org.junit.Test; public class NetconfChunkAggregatorTest { private static final String CHUNKED_MESSAGE = "\n#4\n" + "\n" + " \n" + "" + "\n##\n"; private static final String EXPECTED_MESSAGE = "\n" + " \n" + ""; private static final String CHUNKED_MESSAGE_ONE = "\n#101\n" + EXPECTED_MESSAGE + "\n##\n"; private final NetconfChunkAggregator agr = new NetconfChunkAggregator(4096); @Test public void testMultipleChunks() throws Exception { final var output = new ArrayList<>(); final var input = Unpooled.copiedBuffer(CHUNKED_MESSAGE.getBytes(StandardCharsets.UTF_8)); agr.decode(null, input, output); assertEquals(1, output.size()); final var chunk = (ByteBuf) output.get(0); assertEquals(EXPECTED_MESSAGE, chunk.toString(StandardCharsets.UTF_8)); } @Test public void testOneChunks() throws Exception { final var output = new ArrayList<>(); final var input = Unpooled.copiedBuffer(CHUNKED_MESSAGE_ONE.getBytes(StandardCharsets.UTF_8)); agr.decode(null, input, output); assertEquals(1, output.size()); final ByteBuf chunk = (ByteBuf) output.get(0); assertEquals(EXPECTED_MESSAGE, chunk.toString(StandardCharsets.UTF_8)); } }