Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 0 additions & 5 deletions mina-core/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -33,11 +33,6 @@

<dependencies>
<!-- Test dependencies -->
<dependency>
<groupId>org.easymock</groupId>
<artifactId>easymock</artifactId>
</dependency>

<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-core</artifactId>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,19 +22,21 @@
import org.apache.mina.filter.codec.demux.MessageDecoderResult;
import org.apache.mina.filter.codec.demux.MessageDecoderAdapter;
import org.apache.mina.filter.codec.demux.DemuxingProtocolDecoder;
import org.apache.mina.filter.codec.ProtocolDecoderOutput;
import org.apache.mina.core.session.IoSession;
import org.apache.mina.core.session.DummySession;
import org.apache.mina.core.buffer.IoBuffer;
import org.apache.mina.core.service.DefaultTransportMetadata;
import org.apache.mina.core.file.FileRegion;
import org.apache.mina.transport.socket.SocketSessionConfig;
import org.easymock.EasyMock;
import org.junit.Test;

import java.net.InetSocketAddress;
import java.nio.charset.Charset;

import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.verifyNoMoreInteractions;

/**
* Simple Unit Test showing that the DemuxingProtocolDecoder has
* inconsistent behavior if used with a non fragmented transport.
Expand All @@ -44,13 +46,7 @@
public class DemuxingProtocolDecoderBugTest {

private static void doTest(IoSession session) throws Exception {
ProtocolDecoderOutput mock = EasyMock.createMock(ProtocolDecoderOutput.class);
mock.write(Character.valueOf('A'));
mock.write(Character.valueOf('B'));
mock.write(Integer.valueOf(1));
mock.write(Integer.valueOf(2));
mock.write(Character.valueOf('C'));
EasyMock.replay(mock);
ProtocolDecoderOutput output = mock(ProtocolDecoderOutput.class);

IoBuffer buffer = IoBuffer.allocate(1000);
buffer.putString("AB12C", Charset.defaultCharset().newEncoder());
Expand All @@ -60,17 +56,23 @@ private static void doTest(IoSession session) throws Exception {
decoder.addMessageDecoder(CharacterMessageDecoder.class);
decoder.addMessageDecoder(IntegerMessageDecoder.class);

decoder.decode(session, buffer, mock);
decoder.decode(session, buffer, output);

verify(output).write(Character.valueOf('A'));
verify(output).write(Character.valueOf('B'));
verify(output).write(Integer.valueOf(1));
verify(output).write(Integer.valueOf(2));
verify(output).write(Character.valueOf('C'));

EasyMock.verify(mock);
verifyNoMoreInteractions(output);
}

public static class CharacterMessageDecoder extends MessageDecoderAdapter {
public MessageDecoderResult decodable(IoSession session, IoBuffer in) {
return Character.isDigit((char) in.get()) ? MessageDecoderResult.NOT_OK : MessageDecoderResult.OK;
}

public MessageDecoderResult decode(IoSession session, IoBuffer in, ProtocolDecoderOutput out) throws Exception {
public MessageDecoderResult decode(IoSession session, IoBuffer in, ProtocolDecoderOutput out) {
out.write(Character.valueOf((char) in.get()));
return MessageDecoderResult.OK;
}
Expand All @@ -81,7 +83,7 @@ public MessageDecoderResult decodable(IoSession session, IoBuffer in) {
return Character.isDigit((char) in.get()) ? MessageDecoderResult.OK : MessageDecoderResult.NOT_OK;
}

public MessageDecoderResult decode(IoSession session, IoBuffer in, ProtocolDecoderOutput out) throws Exception {
public MessageDecoderResult decode(IoSession session, IoBuffer in, ProtocolDecoderOutput out) {
out.write(Integer.parseInt("" + (char) in.get()));
return MessageDecoderResult.OK;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,11 @@
import static org.junit.Assert.assertSame;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
import static org.mockito.ArgumentMatchers.argThat;
import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.verifyNoMoreInteractions;

import java.net.InetSocketAddress;
import java.net.SocketAddress;
Expand All @@ -46,9 +51,8 @@
import org.apache.mina.transport.socket.nio.NioSocketAcceptor;
import org.apache.mina.transport.socket.nio.NioSocketConnector;
import org.apache.mina.util.AcceptorBindUtil;
import org.easymock.IArgumentMatcher;
import org.easymock.EasyMock;
import org.junit.Test;
import org.mockito.ArgumentMatcher;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

Expand All @@ -74,23 +78,11 @@

WriteRequest writeRequest = new DefaultWriteRequest(message, new DummyWriteFuture());

NextFilter nextFilter = EasyMock.createMock(NextFilter.class);
/*
* Record expectations
*/
nextFilter.messageSent(session, writeRequest);

/*
* Replay.
*/
EasyMock.replay(nextFilter);

NextFilter nextFilter = mock(NextFilter.class);
filter.filterWrite(nextFilter, session, writeRequest);

/*
* Verify.
*/
EasyMock.verify(nextFilter);
verify(nextFilter).messageSent(session, writeRequest);
verifyNoMoreInteractions(nextFilter);

assertTrue(writeRequest.getFuture().isWritten());
}
Expand All @@ -108,25 +100,13 @@
Object message = new Object();
WriteRequest writeRequest = new DefaultWriteRequest(message, new DummyWriteFuture());

NextFilter nextFilter = EasyMock.createMock(NextFilter.class);
/*
* Record expectations
*/
nextFilter.filterWrite(session, writeRequest);
nextFilter.messageSent(session, writeRequest);

/*
* Replay.
*/
EasyMock.replay(nextFilter);

NextFilter nextFilter = mock(NextFilter.class);
filter.filterWrite(nextFilter, session, writeRequest);
filter.messageSent(nextFilter, session, writeRequest);

/*
* Verify.
*/
EasyMock.verify(nextFilter);
verify(nextFilter).filterWrite(session, writeRequest);
verify(nextFilter).messageSent(session, writeRequest);
verifyNoMoreInteractions(nextFilter);
}

/**
Expand All @@ -143,25 +123,14 @@

WriteRequest writeRequest = new DefaultWriteRequest(message, new DummyWriteFuture());

NextFilter nextFilter = EasyMock.createMock(NextFilter.class);
/*
* Record expectations
*/
nextFilter.filterWrite(EasyMock.eq(session), eqWriteRequest(new DefaultWriteRequest(IoBuffer.wrap(data))));
nextFilter.messageSent(session, writeRequest);

/*
* Replay.
*/
EasyMock.replay(nextFilter);
NextFilter nextFilter = mock(NextFilter.class);

filter.filterWrite(nextFilter, session, writeRequest);
filter.messageSent(nextFilter, session, writeRequest);

/*
* Verify.
*/
EasyMock.verify(nextFilter);
verify(nextFilter).filterWrite(eq(session), eqWriteRequest(new DefaultWriteRequest(IoBuffer.wrap(data))));
verify(nextFilter).messageSent(eq(session), eq(writeRequest));
verifyNoMoreInteractions(nextFilter);

assertTrue(writeRequest.getFuture().isWritten());
}
Expand All @@ -188,29 +157,18 @@
WriteRequest chunk2Request = new DefaultWriteRequest(IoBuffer.wrap(chunk2));
WriteRequest chunk3Request = new DefaultWriteRequest(IoBuffer.wrap(chunk3));

NextFilter nextFilter = EasyMock.createMock(NextFilter.class);
/*
* Record expectations
*/
nextFilter.filterWrite(EasyMock.eq(session), eqWriteRequest(chunk1Request));
nextFilter.filterWrite(EasyMock.eq(session), eqWriteRequest(chunk2Request));
nextFilter.filterWrite(EasyMock.eq(session), eqWriteRequest(chunk3Request));
nextFilter.messageSent(EasyMock.eq(session), eqWriteRequest(writeRequest));

/*
* Replay.
*/
EasyMock.replay(nextFilter);
NextFilter nextFilter = mock(NextFilter.class);

filter.filterWrite(nextFilter, session, writeRequest);
filter.messageSent(nextFilter, session, chunk1Request);
filter.messageSent(nextFilter, session, chunk2Request);
filter.messageSent(nextFilter, session, chunk3Request);

/*
* Verify.
*/
EasyMock.verify(nextFilter);
verify(nextFilter).filterWrite(eq(session), eqWriteRequest(chunk1Request));
verify(nextFilter).filterWrite(eq(session), eqWriteRequest(chunk2Request));
verify(nextFilter).filterWrite(eq(session), eqWriteRequest(chunk3Request));
verify(nextFilter).messageSent(eq(session), eqWriteRequest(writeRequest));
verifyNoMoreInteractions(nextFilter);

assertTrue(writeRequest.getFuture().isWritten());
}
Expand All @@ -228,21 +186,14 @@
session.setAttribute(filter.CURRENT_STREAM, message);
session.setAttribute(filter.WRITE_REQUEST_QUEUE, queue);

NextFilter nextFilter = EasyMock.createMock(NextFilter.class);
/*
* Replay. (We recorded *nothing* because nothing should occur.)
*/
EasyMock.replay(nextFilter);
NextFilter nextFilter = mock(NextFilter.class);

WriteRequest wr = new DefaultWriteRequest(new Object(), new DummyWriteFuture());
filter.filterWrite(nextFilter, session, wr);
assertEquals(1, queue.size());
assertSame(wr, queue.poll());

/*
* Verify.
*/
EasyMock.verify(nextFilter);
verifyNoMoreInteractions(nextFilter);

session.removeAttribute(filter.CURRENT_STREAM);
session.removeAttribute(filter.WRITE_REQUEST_QUEUE);
Expand All @@ -268,27 +219,16 @@
session.setAttribute(filter.CURRENT_WRITE_REQUEST, new DefaultWriteRequest(message));
session.setAttribute(filter.WRITE_REQUEST_QUEUE, queue);

/*
* Record expectations
*/
NextFilter nextFilter = EasyMock.createMock(NextFilter.class);
nextFilter.filterWrite(session, wrs[0]);
nextFilter.filterWrite(session, wrs[1]);
nextFilter.filterWrite(session, wrs[2]);
nextFilter.messageSent(EasyMock.eq(session), eqWriteRequest(new DefaultWriteRequest(message)));

/*
* Replay.
*/
EasyMock.replay(nextFilter);
NextFilter nextFilter = mock(NextFilter.class);

filter.messageSent(nextFilter, session, new DefaultWriteRequest(new Object()));
assertEquals(0, queue.size());

/*
* Verify.
*/
EasyMock.verify(nextFilter);
verify(nextFilter).filterWrite(session, wrs[0]);
verify(nextFilter).filterWrite(session, wrs[1]);
verify(nextFilter).filterWrite(session, wrs[2]);
verify(nextFilter).messageSent(eq(session), eqWriteRequest(new DefaultWriteRequest(message)));
verifyNoMoreInteractions(nextFilter);
}

/**
Expand Down Expand Up @@ -465,29 +405,26 @@
}

public static WriteRequest eqWriteRequest(WriteRequest expected) {
EasyMock.reportMatcher(new WriteRequestMatcher(expected));
return null;
return argThat(new WriteRequestMatcher(expected));
}

private static class WriteRequestMatcher implements IArgumentMatcher {
private static class WriteRequestMatcher implements ArgumentMatcher<WriteRequest> {
private final WriteRequest expected;

public WriteRequestMatcher(WriteRequest expected) {
this.expected = expected;
}

public boolean matches(Object actual) {
@Override
public boolean matches(WriteRequest actual) {
if (actual instanceof WriteRequest) {
WriteRequest w2 = (WriteRequest) actual;
WriteRequest w2 = actual;

return expected.getMessage().equals(w2.getMessage())
&& expected.getFuture().isWritten() == w2.getFuture().isWritten();
}
return false;
}

public void appendTo(StringBuffer buffer) {
buffer.append("Expected a WriteRequest with the message '").append(expected.getMessage()).append("'");
return false;
}
}

Expand All @@ -513,11 +450,11 @@
return null;
}

public void join() {

Check warning on line 453 in mina-core/src/test/java/org/apache/mina/filter/stream/AbstractStreamWriteFilterTest.java

View workflow job for this annotation

GitHub Actions / Test JDK 17, ubuntu-latest

join() in org.apache.mina.core.future.IoFuture has been deprecated

Check warning on line 453 in mina-core/src/test/java/org/apache/mina/filter/stream/AbstractStreamWriteFilterTest.java

View workflow job for this annotation

GitHub Actions / Test JDK 25, ubuntu-latest

join() in org.apache.mina.core.future.IoFuture has been deprecated

Check warning on line 453 in mina-core/src/test/java/org/apache/mina/filter/stream/AbstractStreamWriteFilterTest.java

View workflow job for this annotation

GitHub Actions / Test JDK 21, ubuntu-latest

join() in org.apache.mina.core.future.IoFuture has been deprecated

Check warning on line 453 in mina-core/src/test/java/org/apache/mina/filter/stream/AbstractStreamWriteFilterTest.java

View workflow job for this annotation

GitHub Actions / Test JDK 17, macos-latest

join() in org.apache.mina.core.future.IoFuture has been deprecated

Check warning on line 453 in mina-core/src/test/java/org/apache/mina/filter/stream/AbstractStreamWriteFilterTest.java

View workflow job for this annotation

GitHub Actions / Test JDK 21, macos-latest

join() in org.apache.mina.core.future.IoFuture has been deprecated

Check warning on line 453 in mina-core/src/test/java/org/apache/mina/filter/stream/AbstractStreamWriteFilterTest.java

View workflow job for this annotation

GitHub Actions / Test JDK 25, macos-latest

join() in org.apache.mina.core.future.IoFuture has been deprecated
// Do nothing
}

public boolean join(long timeoutInMillis) {

Check warning on line 457 in mina-core/src/test/java/org/apache/mina/filter/stream/AbstractStreamWriteFilterTest.java

View workflow job for this annotation

GitHub Actions / Test JDK 17, ubuntu-latest

join(long) in org.apache.mina.core.future.IoFuture has been deprecated

Check warning on line 457 in mina-core/src/test/java/org/apache/mina/filter/stream/AbstractStreamWriteFilterTest.java

View workflow job for this annotation

GitHub Actions / Test JDK 25, ubuntu-latest

join(long) in org.apache.mina.core.future.IoFuture has been deprecated

Check warning on line 457 in mina-core/src/test/java/org/apache/mina/filter/stream/AbstractStreamWriteFilterTest.java

View workflow job for this annotation

GitHub Actions / Test JDK 21, ubuntu-latest

join(long) in org.apache.mina.core.future.IoFuture has been deprecated

Check warning on line 457 in mina-core/src/test/java/org/apache/mina/filter/stream/AbstractStreamWriteFilterTest.java

View workflow job for this annotation

GitHub Actions / Test JDK 17, macos-latest

join(long) in org.apache.mina.core.future.IoFuture has been deprecated

Check warning on line 457 in mina-core/src/test/java/org/apache/mina/filter/stream/AbstractStreamWriteFilterTest.java

View workflow job for this annotation

GitHub Actions / Test JDK 21, macos-latest

join(long) in org.apache.mina.core.future.IoFuture has been deprecated

Check warning on line 457 in mina-core/src/test/java/org/apache/mina/filter/stream/AbstractStreamWriteFilterTest.java

View workflow job for this annotation

GitHub Actions / Test JDK 25, macos-latest

join(long) in org.apache.mina.core.future.IoFuture has been deprecated
return true;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@
package org.apache.mina.filter.util;

import static org.junit.Assert.assertEquals;
import static org.mockito.Mockito.mock;

import java.util.ArrayList;
import java.util.List;
Expand All @@ -32,7 +33,6 @@
import org.apache.mina.core.session.IoSession;
import org.apache.mina.core.write.DefaultWriteRequest;
import org.apache.mina.core.write.WriteRequest;
import org.easymock.EasyMock;
import org.junit.Before;
import org.junit.Test;

Expand All @@ -53,8 +53,7 @@ public void setUp() throws Exception {
* Create the mocks.
*/
session = new DummySession();
nextFilter = EasyMock.createMock(IoFilter.NextFilter.class);
//nextFilter = (IoFilter.NextFilter) mockNextFilter.getClass();
nextFilter = mock(IoFilter.NextFilter.class);
}

@Test
Expand All @@ -80,8 +79,6 @@ public void testFilter() throws Exception {
nextFilter.exceptionCaught(session, cause);
nextFilter.sessionClosed(session);

/* replay */
EasyMock.replay(nextFilter);
wrappingFilter.sessionCreated(nextFilter, session);
wrappingFilter.sessionOpened(nextFilter, session);
wrappingFilter.sessionIdle(nextFilter, session, IdleStatus.READER_IDLE);
Expand All @@ -94,9 +91,6 @@ public void testFilter() throws Exception {
wrappingFilter.exceptionCaught(nextFilter, session, cause);
wrappingFilter.sessionClosed(nextFilter, session);

/* verify */
EasyMock.verify(nextFilter);

/* check event lists */
assertEquals(11, wrappingFilter.eventsBefore.size());
assertEquals(IoEventType.SESSION_CREATED, wrappingFilter.eventsBefore.get(0));
Expand Down
Loading
Loading