add ut http://code.alibabatech.com/jira/browse/DUBBO-600
diff --git a/dubbo-remoting/dubbo-remoting-api/src/test/java/com/alibaba/dubbo/remoting/transport/AbstractCodecTest.java b/dubbo-remoting/dubbo-remoting-api/src/test/java/com/alibaba/dubbo/remoting/transport/AbstractCodecTest.java
new file mode 100644
index 0000000..e11070e
--- /dev/null
+++ b/dubbo-remoting/dubbo-remoting-api/src/test/java/com/alibaba/dubbo/remoting/transport/AbstractCodecTest.java
@@ -0,0 +1,66 @@
+/*
+ * Copyright 1999-2011 Alibaba Group.
+ *
+ * Licensed 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 com.alibaba.dubbo.remoting.transport;
+
+import java.io.IOException;
+
+import com.alibaba.dubbo.common.URL;
+import com.alibaba.dubbo.remoting.Channel;
+import junit.framework.TestCase;
+
+import static org.easymock.EasyMock.createMock;
+import static org.easymock.EasyMock.expect;
+import static org.easymock.EasyMock.replay;
+import static org.easymock.EasyMock.verify;
+import static org.junit.Assert.assertThat;
+import static org.junit.matchers.JUnitMatchers.*;
+import static org.hamcrest.CoreMatchers.*;
+
+/**
+ * @author ding.lid
+ */
+public class AbstractCodecTest extends TestCase {
+
+ public void test_checkPayload_default8M() throws Exception {
+ Channel channel = createMock(Channel.class);
+ expect(channel.getUrl()).andReturn(URL.valueOf("dubbo://1.1.1.1")).anyTimes();
+ replay(channel);
+
+ AbstractCodec.checkPayload(channel, 1 * 1024 * 1024);
+
+ try {
+ AbstractCodec.checkPayload(channel, 15 * 1024 * 1024);
+ }
+ catch (IOException expected) {
+ assertThat(expected.getMessage(), allOf(
+ containsString("Data length too large: "),
+ containsString("max payload: " + 8 * 1024 * 1024)
+ ));
+ }
+
+ verify(channel);
+ }
+
+ public void test_checkPayload_minusPayloadNoLimit() throws Exception {
+ Channel channel = createMock(Channel.class);
+ expect(channel.getUrl()).andReturn(URL.valueOf("dubbo://1.1.1.1?payload=-1")).anyTimes();
+ replay(channel);
+
+ AbstractCodec.checkPayload(channel, 15 * 1024 * 1024);
+
+ verify(channel);
+ }
+}