You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by ti...@apache.org on 2020/09/16 21:02:50 UTC
[maven-surefire] branch base64 updated: unit tests for readCharset
This is an automated email from the ASF dual-hosted git repository.
tibordigana pushed a commit to branch base64
in repository https://gitbox.apache.org/repos/asf/maven-surefire.git
The following commit(s) were added to refs/heads/base64 by this push:
new e398381 unit tests for readCharset
e398381 is described below
commit e398381a6b27d86b9146f0d851aa0fb84ccdab2d
Author: tibordigana <ti...@apache.org>
AuthorDate: Wed Sep 16 23:02:40 2020 +0200
unit tests for readCharset
---
.../extensions/EventConsumerThreadTest.java | 69 ++++++++++++++++++++++
1 file changed, 69 insertions(+)
diff --git a/maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/extensions/EventConsumerThreadTest.java b/maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/extensions/EventConsumerThreadTest.java
index 30f3356..a4211fe 100644
--- a/maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/extensions/EventConsumerThreadTest.java
+++ b/maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/extensions/EventConsumerThreadTest.java
@@ -22,6 +22,8 @@ import java.util.Map;
import static java.lang.Math.min;
import static java.nio.charset.CodingErrorAction.REPLACE;
+import static java.nio.charset.StandardCharsets.ISO_8859_1;
+import static java.nio.charset.StandardCharsets.US_ASCII;
import static java.nio.charset.StandardCharsets.UTF_8;
import static org.apache.maven.plugin.surefire.extensions.EventConsumerThread.mapEventTypes;
import static org.apache.maven.surefire.api.booter.Constants.DEFAULT_STREAM_ENCODING;
@@ -349,6 +351,24 @@ public class EventConsumerThreadTest
thread.readEventType( eventTypes, memento );
}
+ @Test( expected = EventConsumerThread.MalformedFrameException.class )
+ public void shouldEventTypeReachedMalformedHeader() throws Exception
+ {
+ Map<Segment, ForkedProcessEventType> eventTypes = mapEventTypes();
+ assertThat( eventTypes )
+ .hasSize( ForkedProcessEventType.values().length );
+
+ byte[] stream = ":xxxxx-xxxxxxxx-xxxxx:\u000E:xxx".getBytes( UTF_8 );
+ Channel channel = new Channel( stream, 1 );
+ EventConsumerThread thread = new EventConsumerThread( "t", channel,
+ new MockEventHandler<Event>(), COUNTDOWN_CLOSEABLE, new MockForkNodeArguments() );
+
+ Memento memento = thread.new Memento();
+ memento.bb.position( 0 ).limit( 0 );
+ memento.setCharset( UTF_8 );
+ thread.readEventType( eventTypes, memento );
+ }
+
@Test
public void shouldReadEmptyString() throws Exception
{
@@ -413,6 +433,55 @@ public class EventConsumerThreadTest
.isEqualTo( "ABC" );
}
+ @Test
+ public void shouldReadDefaultCharset() throws Exception
+ {
+ byte[] stream = "\u0005:UTF-8:".getBytes( US_ASCII );
+ Channel channel = new Channel( stream, 1 );
+ EventConsumerThread thread = new EventConsumerThread( "t", channel,
+ new MockEventHandler<Event>(), COUNTDOWN_CLOSEABLE, new MockForkNodeArguments() );
+
+ Memento memento = thread.new Memento();
+ memento.bb.position( 0 ).limit( 0 );
+ memento.setCharset( UTF_8 );
+
+ assertThat( thread.readCharset( memento ) )
+ .isNotNull()
+ .isEqualTo( UTF_8 );
+ }
+
+ @Test
+ public void shouldReadNonDefaultCharset() throws Exception
+ {
+ byte[] stream = ( (char) 10 + ":ISO_8859_1:" ).getBytes( US_ASCII );
+ Channel channel = new Channel( stream, 1 );
+ EventConsumerThread thread = new EventConsumerThread( "t", channel,
+ new MockEventHandler<Event>(), COUNTDOWN_CLOSEABLE, new MockForkNodeArguments() );
+
+ Memento memento = thread.new Memento();
+ memento.bb.position( 0 ).limit( 0 );
+ memento.setCharset( UTF_8 );
+
+ assertThat( thread.readCharset( memento ) )
+ .isNotNull()
+ .isEqualTo( ISO_8859_1 );
+ }
+
+ @Test( expected = EventConsumerThread.MalformedFrameException.class )
+ public void malformedCharset() throws Exception
+ {
+ byte[] stream = ( (char) 8 + ":ISO_8859:" ).getBytes( US_ASCII );
+ Channel channel = new Channel( stream, 1 );
+ EventConsumerThread thread = new EventConsumerThread( "t", channel,
+ new MockEventHandler<Event>(), COUNTDOWN_CLOSEABLE, new MockForkNodeArguments() );
+
+ Memento memento = thread.new Memento();
+ memento.bb.position( 0 ).limit( 0 );
+ memento.setCharset( UTF_8 );
+
+ thread.readCharset( memento );
+ }
+
private static class Channel implements ReadableByteChannel
{
private final byte[] bytes;