Migrate codec-smtp tests to JUnit 5 (#11309)

Motivation:

JUnit 5 is more expressive, extensible, and composable in many ways, and it's better able to run tests in parallel.

Modifications:

Use JUnit5 in codec-smtp tests

Result:

Related to https://github.com/netty/netty/issues/10757
This commit is contained in:
Riley Park 2021-05-26 00:44:06 -07:00 committed by Norman Maurer
parent cfaed1219f
commit e9a8eaeb18
3 changed files with 51 additions and 20 deletions

View File

@ -15,9 +15,13 @@
*/ */
package io.netty.handler.codec.smtp; package io.netty.handler.codec.smtp;
import org.junit.Test; import org.junit.jupiter.api.Test;
import static org.junit.Assert.*; import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertFalse;
import static org.junit.jupiter.api.Assertions.assertNotSame;
import static org.junit.jupiter.api.Assertions.assertSame;
import static org.junit.jupiter.api.Assertions.assertTrue;
public class SmtpCommandTest { public class SmtpCommandTest {
@Test @Test

View File

@ -20,11 +20,13 @@ import io.netty.buffer.Unpooled;
import io.netty.channel.embedded.EmbeddedChannel; import io.netty.channel.embedded.EmbeddedChannel;
import io.netty.handler.codec.EncoderException; import io.netty.handler.codec.EncoderException;
import io.netty.util.CharsetUtil; import io.netty.util.CharsetUtil;
import org.junit.Test; import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.function.Executable;
import static org.junit.Assert.assertEquals; import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.Assert.assertNull; import static org.junit.jupiter.api.Assertions.assertNull;
import static org.junit.Assert.assertTrue; import static org.junit.jupiter.api.Assertions.assertThrows;
import static org.junit.jupiter.api.Assertions.assertTrue;
public class SmtpRequestEncoderTest { public class SmtpRequestEncoderTest {
@ -106,12 +108,17 @@ public class SmtpRequestEncoderTest {
assertEquals("DATA\r\nSubject: Test\r\n\r\nTest\r\n.\r\n", getWrittenString(channel)); assertEquals("DATA\r\nSubject: Test\r\n\r\nTest\r\n.\r\n", getWrittenString(channel));
} }
@Test(expected = EncoderException.class) @Test
public void testThrowsIfContentExpected() { public void testThrowsIfContentExpected() {
EmbeddedChannel channel = new EmbeddedChannel(new SmtpRequestEncoder()); final EmbeddedChannel channel = new EmbeddedChannel(new SmtpRequestEncoder());
try { try {
assertTrue(channel.writeOutbound(SmtpRequests.data())); assertTrue(channel.writeOutbound(SmtpRequests.data()));
assertThrows(EncoderException.class, new Executable() {
@Override
public void execute() {
channel.writeOutbound(SmtpRequests.noop()); channel.writeOutbound(SmtpRequests.noop());
}
});
} finally { } finally {
channel.finishAndReleaseAll(); channel.finishAndReleaseAll();
} }

View File

@ -20,11 +20,16 @@ import io.netty.buffer.Unpooled;
import io.netty.channel.embedded.EmbeddedChannel; import io.netty.channel.embedded.EmbeddedChannel;
import io.netty.handler.codec.DecoderException; import io.netty.handler.codec.DecoderException;
import io.netty.util.CharsetUtil; import io.netty.util.CharsetUtil;
import org.junit.Test; import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.function.Executable;
import java.util.List; import java.util.List;
import static org.junit.Assert.*; import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertFalse;
import static org.junit.jupiter.api.Assertions.assertNull;
import static org.junit.jupiter.api.Assertions.assertThrows;
import static org.junit.jupiter.api.Assertions.assertTrue;
public class SmtpResponseDecoderTest { public class SmtpResponseDecoderTest {
@ -106,22 +111,37 @@ public class SmtpResponseDecoderTest {
assertNull(channel.readInbound()); assertNull(channel.readInbound());
} }
@Test(expected = DecoderException.class) @Test
public void testDecodeInvalidSeparator() { public void testDecodeInvalidSeparator() {
EmbeddedChannel channel = newChannel(); final EmbeddedChannel channel = newChannel();
assertTrue(channel.writeInbound(newBuffer("200:Ok\r\n"))); assertThrows(DecoderException.class, new Executable() {
@Override
public void execute() {
channel.writeInbound(newBuffer("200:Ok\r\n"));
}
});
} }
@Test(expected = DecoderException.class) @Test
public void testDecodeInvalidCode() { public void testDecodeInvalidCode() {
EmbeddedChannel channel = newChannel(); final EmbeddedChannel channel = newChannel();
assertTrue(channel.writeInbound(newBuffer("xyz Ok\r\n"))); assertThrows(DecoderException.class, new Executable() {
@Override
public void execute() {
channel.writeInbound(newBuffer("xyz Ok\r\n"));
}
});
} }
@Test(expected = DecoderException.class) @Test
public void testDecodeInvalidLine() { public void testDecodeInvalidLine() {
EmbeddedChannel channel = newChannel(); final EmbeddedChannel channel = newChannel();
assertTrue(channel.writeInbound(newBuffer("Ok\r\n"))); assertThrows(DecoderException.class, new Executable() {
@Override
public void execute() {
channel.writeInbound(newBuffer("Ok\r\n"));
}
});
} }
private static EmbeddedChannel newChannel() { private static EmbeddedChannel newChannel() {