99 lines
3.5 KiB
Java
99 lines
3.5 KiB
Java
|
/*
|
||
|
* Copyright 2019 The Netty Project
|
||
|
*
|
||
|
* The Netty Project licenses this file to you under the Apache License,
|
||
|
* version 2.0 (the "License"); you may not use this file except in compliance
|
||
|
* with the License. You may obtain a copy of the License at:
|
||
|
*
|
||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||
|
*
|
||
|
* Unless required by applicable law or agreed to in writing, software
|
||
|
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||
|
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||
|
* License for the specific language governing permissions and limitations
|
||
|
* under the License.
|
||
|
*/
|
||
|
package io.netty.handler.codec.memcache.binary;
|
||
|
|
||
|
import io.netty.buffer.ByteBuf;
|
||
|
import io.netty.buffer.Unpooled;
|
||
|
import io.netty.util.CharsetUtil;
|
||
|
import org.junit.Before;
|
||
|
import org.junit.Test;
|
||
|
|
||
|
import static org.junit.Assert.assertEquals;
|
||
|
import static org.junit.Assert.assertNotSame;
|
||
|
|
||
|
public class DefaultFullBinaryMemcacheResponseTest {
|
||
|
|
||
|
private DefaultFullBinaryMemcacheResponse response;
|
||
|
|
||
|
@Before
|
||
|
public void setUp() {
|
||
|
response = new DefaultFullBinaryMemcacheResponse(
|
||
|
Unpooled.copiedBuffer("key", CharsetUtil.UTF_8),
|
||
|
Unpooled.wrappedBuffer(new byte[]{1, 3, 4, 9}),
|
||
|
Unpooled.copiedBuffer("some value", CharsetUtil.UTF_8));
|
||
|
response.setStatus((short) 1);
|
||
|
response.setMagic((byte) 0x03);
|
||
|
response.setOpcode((byte) 0x02);
|
||
|
response.setKeyLength((short) 32);
|
||
|
response.setExtrasLength((byte) 34);
|
||
|
response.setDataType((byte) 43);
|
||
|
response.setTotalBodyLength(345);
|
||
|
response.setOpaque(3);
|
||
|
response.setCas(345345L);
|
||
|
}
|
||
|
|
||
|
@Test
|
||
|
public void fullCopy() {
|
||
|
FullBinaryMemcacheResponse newInstance = response.copy();
|
||
|
try {
|
||
|
assertResponseEquals(response, response.content(), newInstance);
|
||
|
} finally {
|
||
|
response.release();
|
||
|
newInstance.release();
|
||
|
}
|
||
|
}
|
||
|
|
||
|
@Test
|
||
|
public void fullDuplicate() {
|
||
|
try {
|
||
|
assertResponseEquals(response, response.content(), response.duplicate());
|
||
|
} finally {
|
||
|
response.release();
|
||
|
}
|
||
|
}
|
||
|
|
||
|
@Test
|
||
|
public void fullReplace() {
|
||
|
ByteBuf newContent = Unpooled.copiedBuffer("new value", CharsetUtil.UTF_8);
|
||
|
FullBinaryMemcacheResponse newInstance = response.replace(newContent);
|
||
|
try {
|
||
|
assertResponseEquals(response, newContent, newInstance);
|
||
|
} finally {
|
||
|
response.release();
|
||
|
newInstance.release();
|
||
|
}
|
||
|
}
|
||
|
|
||
|
private void assertResponseEquals(FullBinaryMemcacheResponse expected, ByteBuf expectedContent,
|
||
|
FullBinaryMemcacheResponse actual) {
|
||
|
assertNotSame(expected, actual);
|
||
|
|
||
|
assertEquals(expected.key(), actual.key());
|
||
|
assertEquals(expected.extras(), actual.extras());
|
||
|
assertEquals(expectedContent, actual.content());
|
||
|
|
||
|
assertEquals(expected.status(), actual.status());
|
||
|
assertEquals(expected.magic(), actual.magic());
|
||
|
assertEquals(expected.opcode(), actual.opcode());
|
||
|
assertEquals(expected.keyLength(), actual.keyLength());
|
||
|
assertEquals(expected.extrasLength(), actual.extrasLength());
|
||
|
assertEquals(expected.dataType(), actual.dataType());
|
||
|
assertEquals(expected.totalBodyLength(), actual.totalBodyLength());
|
||
|
assertEquals(expected.opaque(), actual.opaque());
|
||
|
assertEquals(expected.cas(), actual.cas());
|
||
|
}
|
||
|
}
|