You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mina.apache.org by ed...@apache.org on 2008/07/22 01:28:13 UTC
svn commit: r678597 - in
/mina/trunk/core/src/test/java/org/apache/mina/filter/buffer: ./
BufferedWriteFilterTest.java
Author: edeoliveira
Date: Mon Jul 21 16:28:13 2008
New Revision: 678597
URL: http://svn.apache.org/viewvc?rev=678597&view=rev
Log:
DIRMINA-519 basic junit test
Added:
mina/trunk/core/src/test/java/org/apache/mina/filter/buffer/
mina/trunk/core/src/test/java/org/apache/mina/filter/buffer/BufferedWriteFilterTest.java (with props)
Added: mina/trunk/core/src/test/java/org/apache/mina/filter/buffer/BufferedWriteFilterTest.java
URL: http://svn.apache.org/viewvc/mina/trunk/core/src/test/java/org/apache/mina/filter/buffer/BufferedWriteFilterTest.java?rev=678597&view=auto
==============================================================================
--- mina/trunk/core/src/test/java/org/apache/mina/filter/buffer/BufferedWriteFilterTest.java (added)
+++ mina/trunk/core/src/test/java/org/apache/mina/filter/buffer/BufferedWriteFilterTest.java Mon Jul 21 16:28:13 2008
@@ -0,0 +1,104 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF 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 org.apache.mina.filter.buffer;
+
+import junit.framework.TestCase;
+
+import org.apache.mina.core.buffer.IoBuffer;
+import org.apache.mina.core.filterchain.IoFilterAdapter;
+import org.apache.mina.core.session.DummySession;
+import org.apache.mina.core.session.IoSession;
+import org.apache.mina.core.write.WriteRequest;
+import org.apache.mina.filter.buffer.BufferedWriteFilter;
+import org.apache.mina.filter.logging.LoggingFilter;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * Tests {@link BufferedWriteFilter}.
+ *
+ * @author The Apache MINA Project (dev@mina.apache.org)
+ * @version $Rev$, $Date$
+ * @since MINA 2.0.0-M2
+ */
+public class BufferedWriteFilterTest extends TestCase {
+ private final Logger logger = LoggerFactory
+ .getLogger(BufferedWriteFilterTest.class);
+
+ public void testNonExpandableBuffer() throws Exception {
+ IoBuffer dest = IoBuffer.allocate(1);
+ assertEquals(false, dest.isAutoExpand());
+ }
+
+ public void testBasicBuffering() {
+ DummySession sess = new DummySession();
+ sess.getFilterChain().addFirst("peer", new IoFilterAdapter() {
+
+ private int counter;
+
+ @Override
+ public void filterClose(NextFilter nextFilter, IoSession session)
+ throws Exception {
+ logger.debug("Filter closed !");
+ assertEquals(3, counter);
+ }
+
+ @Override
+ public void filterWrite(NextFilter nextFilter, IoSession session,
+ WriteRequest writeRequest) throws Exception {
+ logger.debug("New buffered message written !");
+ counter++;
+ try {
+ IoBuffer buf = (IoBuffer) writeRequest.getMessage();
+ if (counter == 3) {
+ assertEquals(1, buf.limit());
+ assertEquals(0, buf.get());
+ } else {
+ assertEquals(10, buf.limit());
+ }
+ } catch (Exception ex) {
+ throw new AssertionError("Wrong message type");
+ }
+ }
+
+ });
+ sess.getFilterChain().addFirst("logger", new LoggingFilter());
+ BufferedWriteFilter bFilter = new BufferedWriteFilter(10);
+ sess.getFilterChain().addLast("buffer", bFilter);
+
+ IoBuffer data = IoBuffer.allocate(1);
+ for (byte i = 0; i < 20; i++) {
+ data.put((byte) (0x30 + i));
+ data.flip();
+ sess.write(data);
+ data.clear();
+ }
+
+ // Add one more byte to overflow the final buffer
+ data.put((byte) 0);
+ data.flip();
+ sess.write(data);
+
+ // Flush the final byte
+ bFilter.flush(sess);
+
+ sess.close();
+ }
+}
\ No newline at end of file
Propchange: mina/trunk/core/src/test/java/org/apache/mina/filter/buffer/BufferedWriteFilterTest.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: mina/trunk/core/src/test/java/org/apache/mina/filter/buffer/BufferedWriteFilterTest.java
------------------------------------------------------------------------------
svn:mime-type = text/plain