20
20
package org .logstash .common ;
21
21
22
22
import org .jruby .RubyArray ;
23
+ import org .jruby .RubyEncoding ;
23
24
import org .jruby .RubyString ;
24
25
import org .jruby .runtime .ThreadContext ;
25
26
import org .jruby .runtime .builtin .IRubyObject ;
@@ -91,16 +92,16 @@ public void shouldTokenizeEmptyPayloadWithNewline() {
91
92
92
93
@ Test
93
94
public void shouldNotChangeEncodingOfTokensAfterPartitioning () {
94
- // RubyString rubyString = RubyString.newString(RUBY, new byte[]{(byte) 0xA3}); // £ character
95
95
RubyString rubyString = RubyString .newString (RUBY , new byte []{(byte ) 0xA3 , 0x0A , 0x41 }); // £ character, newline, A
96
96
IRubyObject rubyInput = rubyString .force_encoding (context , RUBY .newString ("ISO8859-1" ));
97
97
RubyArray <RubyString > tokens = (RubyArray <RubyString >)sut .extract (context , rubyInput );
98
- IRubyObject firstToken = tokens .shift (context );
99
-
100
- // IRubyObject token = sut.flush(context);
101
98
102
- // assertEquals((byte) 0xA3, token.asJavaString().getBytes()[0]);
103
- // assertEquals("£", token.asJavaString() );
99
+ // read the first token, the £ string
100
+ IRubyObject firstToken = tokens . shift ( context );
104
101
assertEquals ("£" , firstToken .toString ());
102
+
103
+ // verify encoding "ISO8859-1" is preserved in the Java to Ruby String conversion
104
+ RubyEncoding encoding = (RubyEncoding ) firstToken .callMethod (context , "encoding" );
105
+ assertEquals ("ISO8859-1" , encoding .toString ());
105
106
}
106
107
}
0 commit comments