/* Ċ Ġ* ĠCopyright ĠAmazon . com , ĠInc . Ġor Ġits Ġaffiliates . ĠAll ĠRights ĠReserved . Ċ Ġ* ĠSPDX - License - Identifier : ĠApache - 2 . 0 . Ċ Ġ*/ Ċ Ċ package Ġaws . sdk . kotlin . runtime . protocol . event stream Ċ Ċ import Ġaws . smithy . kotlin . runtime . io . Sdk ByteBuffer Ċ import Ġaws . smithy . kotlin . runtime . io . bytes Ċ import Ġaws . smithy . kotlin . runtime . time . Instant Ċ import Ġaws . smithy . kotlin . runtime . util . Uuid Ċ import Ġio . kot est . matchers . string . should Contain Ċ import Ġkotlin . test .* Ċ Ċ fun ĠS dk ByteBuffer . Companion . wrap As Read Buffer ( b : ĠByteArray ): ĠS dk ByteBuffer Ġ= ĠS dk ByteBuffer . of ( b ). apply Ġ{ Ġadvance ( b . size . to UL ong ()) Ġ} Ċ Ċ fun ĠbyteArray From ( var arg Ġbytes : ĠAny ): ĠByteArray Ġ{ ĊĠĠĠ Ġval Ġbuf Ġ= ĠByteArray ( bytes . size ) ĊĠĠĠ Ġbytes . forEach Indexed Ġ{ Ġindex , Ġx Ġ-> ĊĠĠĠĠĠĠĠ Ġbuf [ index ] Ġ= Ġwhen Ġ( x ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠInt Ġ-> Ġx . to Byte () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠChar Ġ-> Ġx . code . to Byte () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġerror ("$ x Ġmust Ġbe ĠInt Ġor ĠChar ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ Ġreturn Ġbuf Ċ } Ċ Ċ fun Ġvalid Message With All Headers (): ĠByteArray Ġ= ĠbyteArray From ( ĊĠĠĠĠ 0 x 0 0 , Ġ 0 x 0 0 , Ġ 0 x 0 0 , Ġ 0 x 9 6 , Ġ 0 x 0 0 , Ġ 0 x 0 0 , Ġ 0 x 0 0 , Ġ 0 x 7 a , Ġ 0 x 8 b , Ġ 0 xb 4 , Ġ 0 x 9 5 , Ġ 0 xfb , Ġ 0 x 0 4 , Ġ 0 x 7 4 , Ġ 0 x 7 2 , Ġ 0 x 7 5 , ĊĠĠĠĠ 0 x 6 5 , Ġ 0 x 0 0 , Ġ 0 x 0 5 , Ġ 0 x 6 6 , Ġ 0 x 6 1 , Ġ 0 x 6 c , Ġ 0 x 7 3 , Ġ 0 x 6 5 , Ġ 0 x 0 1 , Ġ 0 x 0 4 , Ġ 0 x 6 2 , Ġ 0 x 7 9 , Ġ 0 x 7 4 , Ġ 0 x 6 5 , Ġ 0 x 0 2 , Ġ 0 x 3 2 , ĊĠĠĠĠ 0 x 0 5 , Ġ 0 x 7 3 , Ġ 0 x 6 8 , Ġ 0 x 6 f , Ġ 0 x 7 2 , Ġ 0 x 7 4 , Ġ 0 x 0 3 , Ġ 0 x 4 e , Ġ 0 x 2 0 , Ġ 0 x 0 3 , Ġ 0 x 6 9 , Ġ 0 x 6 e , Ġ 0 x 7 4 , Ġ 0 x 0 4 , Ġ 0 x 0 0 , Ġ 0 x 0 7 , ĊĠĠĠĠ 0 xa 1 , Ġ 0 x 2 0 , Ġ 0 x 0 4 , Ġ 0 x 6 c , Ġ 0 x 6 f , Ġ 0 x 6 e , Ġ 0 x 6 7 , Ġ 0 x 0 5 , Ġ 0 x 0 0 , Ġ 0 x 0 0 , Ġ 0 x 0 0 , Ġ 0 x 0 b , Ġ 0 xa 4 , Ġ 0 x 3 b , Ġ 0 x 7 4 , Ġ 0 x 0 0 , ĊĠĠĠĠ 0 x 0 5 , Ġ 0 x 6 2 , Ġ 0 x 7 9 , Ġ 0 x 7 4 , Ġ 0 x 6 5 , Ġ 0 x 7 3 , Ġ 0 x 0 6 , Ġ 0 x 0 0 , Ġ 0 x 0 a , Ġ 0 x 7 3 , Ġ 0 x 6 f , Ġ 0 x 6 d , Ġ 0 x 6 5 , Ġ 0 x 2 0 , Ġ 0 x 6 2 , Ġ 0 x 7 9 , ĊĠĠĠĠ 0 x 7 4 , Ġ 0 x 6 5 , Ġ 0 x 7 3 , Ġ 0 x 0 3 , Ġ 0 x 7 3 , Ġ 0 x 7 4 , Ġ 0 x 7 2 , Ġ 0 x 0 7 , Ġ 0 x 0 0 , Ġ 0 x 0 8 , Ġ 0 x 7 3 , Ġ 0 x 6 f , Ġ 0 x 6 d , Ġ 0 x 6 5 , Ġ 0 x 2 0 , Ġ 0 x 7 3 , ĊĠĠĠĠ 0 x 7 4 , Ġ 0 x 7 2 , Ġ 0 x 0 4 , Ġ 0 x 7 4 , Ġ 0 x 6 9 , Ġ 0 x 6 d , Ġ 0 x 6 5 , Ġ 0 x 0 8 , Ġ 0 x 0 0 , Ġ 0 x 0 0 , Ġ 0 x 0 0 , Ġ 0 x 0 1 , Ġ 0 x 2 a , Ġ 0 x 0 5 , Ġ 0 xf 2 , Ġ 0 x 0 0 , ĊĠĠĠĠ 0 x 0 4 , Ġ 0 x 7 5 , Ġ 0 x 7 5 , Ġ 0 x 6 9 , Ġ 0 x 6 4 , Ġ 0 x 0 9 , Ġ 0 xb 7 , Ġ 0 x 9 b , Ġ 0 xc 9 , Ġ 0 x 1 4 , Ġ 0 xde , Ġ 0 x 2 1 , Ġ 0 x 4 e , Ġ 0 x 1 3 , Ġ 0 xb 8 , Ġ 0 xb 2 , ĊĠĠĠĠ 0 xbc , Ġ 0 x 4 7 , Ġ 0 xe 8 , Ġ 0 x 5 b , Ġ 0 x 7 f , Ġ 0 x 0 b , Ġ 0 x 7 3 , Ġ 0 x 6 f , Ġ 0 x 6 d , Ġ 0 x 6 5 , Ġ 0 x 2 0 , Ġ 0 x 7 0 , Ġ 0 x 6 1 , Ġ 0 x 7 9 , Ġ 0 x 6 c , Ġ 0 x 6 f , ĊĠĠĠĠ 0 x 6 1 , Ġ 0 x 6 4 , Ġ 0 x 0 1 , Ġ 0 xa 0 , Ġ 0 x 5 8 , Ġ 0 x 6 0 Ċ ) Ċ Ċ fun Ġvalid Message Empty Payload (): ĠByteArray Ġ= ĠbyteArray From ( ĊĠĠĠĠ 0 x 0 0 , Ġ 0 x 0 0 , Ġ 0 x 0 0 , Ġ 0 x 1 f , Ġ 0 x 0 0 , Ġ 0 x 0 0 , Ġ 0 x 0 0 , Ġ 0 x 0 f , Ġ 0 x 1 7 , Ġ 0 x 2 d , Ġ 0 xc 2 , Ġ 0 xab , Ġ 0 x 0 b , Ġ 0 x 7 3 , Ġ 0 x 6 f , Ġ 0 x 6 d , ĊĠĠĠĠ 0 x 6 5 , Ġ 0 x 2 d , Ġ 0 x 6 8 , Ġ 0 x 6 5 , Ġ 0 x 6 1 , Ġ 0 x 6 4 , Ġ 0 x 6 5 , Ġ 0 x 7 2 , Ġ 0 x 0 3 , Ġ 0 x 0 1 , Ġ 0 xf 4 , Ġ 0 x 9 3 , Ġ 0 x 3 c , Ġ 0 x 5 c , Ġ 0 xad Ċ ) Ċ Ċ fun Ġvalid Message No Headers (): ĠByteArray Ġ= ĠbyteArray From ( ĊĠĠĠĠ 0 x 0 0 , Ġ 0 x 0 0 , Ġ 0 x 0 0 , Ġ 0 x 2 4 , Ġ 0 x 0 0 , Ġ 0 x 0 0 , Ġ 0 x 0 0 , Ġ 0 x 0 0 , Ġ 0 x 5 1 , Ġ 0 x 6 3 , Ġ 0 x 5 6 , Ġ 0 xad , Ġ 0 x 6 1 , Ġ 0 x 6 e , Ġ 0 x 6 f , Ġ 0 x 7 4 , ĊĠĠĠĠ 0 x 6 8 , Ġ 0 x 6 5 , Ġ 0 x 7 2 , Ġ 0 x 2 0 , Ġ 0 x 7 4 , Ġ 0 x 6 5 , Ġ 0 x 7 3 , Ġ 0 x 7 4 , Ġ 0 x 2 0 , Ġ 0 x 7 0 , Ġ 0 x 6 1 , Ġ 0 x 7 9 , Ġ 0 x 6 c , Ġ 0 x 6 f , Ġ 0 x 6 1 , Ġ 0 x 6 4 , ĊĠĠĠĠ 0 x 8 d , Ġ 0 xf 8 , Ġ 0 x 0 e , Ġ 0 x 6 5 Ċ ) Ċ Ċ class ĠMessage Test Ġ{ ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Message No Headers () Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠTest Ġmessage Ġtaken Ġfrom Ġthe ĠC RT : ĊĠĠĠĠĠĠĠ Ġ// Ġhttps :// github . com / aw sl abs / aws - c - event - stream / blob / main / tests / message _ de serializer _ test . c ĊĠĠĠĠĠĠĠ Ġval Ġdata Ġ= ĠbyteArray From ( ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 x 0 0 , Ġ 0 x 0 0 , Ġ 0 x 0 0 , Ġ 0 x 1 D , Ġ 0 x 0 0 , Ġ 0 x 0 0 , Ġ 0 x 0 0 , Ġ 0 x 0 0 , Ġ 0 xfd , Ġ 0 x 5 2 , Ġ 0 x 8 c , Ġ 0 x 5 a , Ġ 0 x 7 b , Ġ 0 x 2 7 , ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 x 6 6 , Ġ 0 x 6 f , Ġ 0 x 6 f , Ġ 0 x 2 7 , Ġ 0 x 3 a , Ġ 0 x 2 7 , Ġ 0 x 6 2 , Ġ 0 x 6 1 , Ġ 0 x 7 2 , Ġ 0 x 2 7 , Ġ 0 x 7 d , Ġ 0 xc 3 , Ġ 0 x 6 5 , Ġ 0 x 3 9 , ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 x 3 6 , ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġval Ġbuffer Ġ= ĠS dk ByteBuffer . wrap As Read Buffer ( data ) ĊĠĠĠĠĠĠĠ Ġval Ġactual Ġ= ĠMessage . decode ( buffer ) ĊĠĠĠĠĠĠĠ Ġval Ġexpected Payload Ġ= Ġ""" {' foo ':' bar '} """ ĊĠĠĠĠĠĠĠ ĠassertEquals ( expected Payload , Ġactual . payload . decode ToString ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Message One Header () Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠTest Ġmessage Ġtaken Ġfrom Ġthe ĠC RT : ĊĠĠĠĠĠĠĠ Ġ// Ġhttps :// github . com / aw sl abs / aws - c - event - stream / blob / main / tests / message _ de serializer _ test . c ĊĠĠĠĠĠĠĠ Ġval Ġdata Ġ= ĠbyteArray From ( ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 x 0 0 , Ġ 0 x 0 0 , Ġ 0 x 0 0 , Ġ 0 x 3 D , Ġ 0 x 0 0 , Ġ 0 x 0 0 , Ġ 0 x 0 0 , Ġ 0 x 2 0 , Ġ 0 x 0 7 , Ġ 0 xFD , Ġ 0 x 8 3 , Ġ 0 x 9 6 , Ġ 0 x 0 C , Ġ' c ', ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ' o ', Ġ' n ', Ġ' t ', Ġ' e ', Ġ' n ', Ġ' t ', Ġ'-', Ġ' t ', Ġ' y ', Ġ' p ', Ġ' e ', Ġ 0 x 0 7 , Ġ 0 x 0 0 , Ġ 0 x 1 0 , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ' a ', Ġ' p ', Ġ' p ', Ġ' l ', Ġ' i ', Ġ' c ', Ġ' a ', Ġ' t ', Ġ' i ', Ġ' o ', Ġ' n ', Ġ'/', Ġ' j ', Ġ' s ', ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ' o ', Ġ' n ', Ġ 0 x 7 b , Ġ 0 x 2 7 , Ġ 0 x 6 6 , Ġ 0 x 6 f , Ġ 0 x 6 f , Ġ 0 x 2 7 , Ġ 0 x 3 a , Ġ 0 x 2 7 , Ġ 0 x 6 2 , Ġ 0 x 6 1 , Ġ 0 x 7 2 , Ġ 0 x 2 7 , ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 x 7 d , Ġ 0 x 8 D , Ġ 0 x 9 C , Ġ 0 x 0 8 , Ġ 0 xB 1 , ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġval Ġbuffer Ġ= ĠS dk ByteBuffer . wrap As Read Buffer ( data ) ĊĠĠĠĠĠĠĠ Ġval Ġactual Ġ= ĠMessage . decode ( buffer ) ĊĠĠĠĠĠĠĠ Ġval Ġexpected Payload Ġ= Ġ""" {' foo ':' bar '} """ ĊĠĠĠĠĠĠĠ ĠassertEquals ( expected Payload , Ġactual . payload . decode ToString ()) ĊĊĠĠĠĠĠĠĠ Ġval Ġexpected Headers Ġ= ĠlistOf ( Header (" content - type ", ĠHeader Value . String (" application / json "))) ĊĠĠĠĠĠĠĠ ĠassertEquals ( expected Headers , Ġactual . headers ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Round Trip All Headers Payload () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġencoded Ġ= Ġvalid Message With All Headers () ĊĊĠĠĠĠĠĠĠ Ġval Ġmessage Ġ= Ġbuild Message Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpayload Ġ= Ġ" some Ġpayload ". encode To ByteArray () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd Header (" true ", ĠHeader Value . Bool ( true )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd Header (" false ", ĠHeader Value . Bool ( false )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd Header (" byte ", ĠHeader Value . Byte ( 5 0 . to U Byte ())) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd Header (" short ", ĠHeader Value . Int 1 6 ( 2 0 _ 0 0 0 )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd Header (" int ", ĠHeader Value . Int 3 2 ( 5 0 0 _ 0 0 0 )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd Header (" long ", ĠHeader Value . Int 6 4 ( 5 0 _ 0 0 0 _ 0 0 0 _ 0 0 0 L )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd Header (" bytes ", ĠHeader Value . ByteArray (" some Ġbytes ". encode To ByteArray ())) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd Header (" str ", ĠHeader Value . String (" some Ġstr ")) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd Header (" time ", ĠHeader Value . Timestamp ( Instant . from Epoch Seconds ( 5 _ 0 0 0 _ 0 0 0 , Ġ 0 ))) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd Header (" uuid ", ĠHeader Value . Uuid ( Uuid ( 0 xb 7 9 bc 9 1 4 de 2 1 4 e 1 3 u . to Long (), Ġ 0 xb 8 b 2 bc 4 7 e 8 5 b 7 f 0 bu . to Long ()))) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġdest Ġ= ĠS dk ByteBuffer ( 1 5 0 u ) ĊĠĠĠĠĠĠĠ Ġmessage . encode ( dest ) ĊĠĠĠĠĠĠĠ Ġassert Content Equals ( encoded , Ġdest . bytes ()) ĊĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= ĠMessage . decode ( dest ) ĊĠĠĠĠĠĠĠ Ġassert Content Equals ( message . headers , Ġresult . headers ) ĊĠĠĠĠĠĠĠ Ġassert Content Equals ( message . payload , Ġresult . payload ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Invalid Header StringValue Length () Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġheader Ġlength Ġ= Ġ- 1 ĊĠĠĠĠĠĠĠ Ġval Ġencoded Ġ= ĠbyteArray From ( ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 x 0 0 , Ġ 0 x 0 0 , Ġ 0 x 0 0 , Ġ 0 x 9 6 , Ġ 0 x 0 0 , Ġ 0 x 0 0 , Ġ 0 x 0 0 , Ġ 0 x 7 a , Ġ 0 x 8 b , Ġ 0 xb 4 , Ġ 0 x 9 5 , Ġ 0 xfb , Ġ 0 x 0 4 , Ġ 0 x 7 4 , Ġ 0 x 7 2 , Ġ 0 x 7 5 , ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 x 6 5 , Ġ 0 x 0 0 , Ġ 0 x 0 5 , Ġ 0 x 6 6 , Ġ 0 x 6 1 , Ġ 0 x 6 c , Ġ 0 x 7 3 , Ġ 0 x 6 5 , Ġ 0 x 0 1 , Ġ 0 x 0 4 , Ġ 0 x 6 2 , Ġ 0 x 7 9 , Ġ 0 x 7 4 , Ġ 0 x 6 5 , Ġ 0 x 0 2 , Ġ 0 x 3 2 , ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 x 0 5 , Ġ 0 x 7 3 , Ġ 0 x 6 8 , Ġ 0 x 6 f , Ġ 0 x 7 2 , Ġ 0 x 7 4 , Ġ 0 x 0 3 , Ġ 0 x 4 e , Ġ 0 x 2 0 , Ġ 0 x 0 3 , Ġ 0 x 6 9 , Ġ 0 x 6 e , Ġ 0 x 7 4 , Ġ 0 x 0 4 , Ġ 0 x 0 0 , Ġ 0 x 0 7 , ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 xa 1 , Ġ 0 x 2 0 , Ġ 0 x 0 4 , Ġ 0 x 6 c , Ġ 0 x 6 f , Ġ 0 x 6 e , Ġ 0 x 6 7 , Ġ 0 x 0 5 , Ġ 0 x 0 0 , Ġ 0 x 0 0 , Ġ 0 x 0 0 , Ġ 0 x 0 b , Ġ 0 xa 4 , Ġ 0 x 3 b , Ġ 0 x 7 4 , Ġ 0 x 0 0 , ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 x 0 5 , Ġ 0 x 6 2 , Ġ 0 x 7 9 , Ġ 0 x 7 4 , Ġ 0 x 6 5 , Ġ 0 x 7 3 , Ġ 0 x 0 6 , Ġ 0 x 0 0 , Ġ 0 x 0 a , Ġ 0 x 7 3 , Ġ 0 x 6 f , Ġ 0 x 6 d , Ġ 0 x 6 5 , Ġ 0 x 2 0 , Ġ 0 x 6 2 , Ġ 0 x 7 9 , ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 x 7 4 , Ġ 0 x 6 5 , Ġ 0 x 7 3 , Ġ 0 x 0 3 , Ġ 0 x 7 3 , Ġ 0 x 7 4 , Ġ 0 x 7 2 , Ġ 0 x 0 7 , Ġ 0 xff , Ġ 0 xff , Ġ 0 x 7 3 , Ġ 0 x 6 f , Ġ 0 x 6 d , Ġ 0 x 6 5 , Ġ 0 x 2 0 , Ġ 0 x 7 3 , ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 x 7 4 , Ġ 0 x 7 2 , Ġ 0 x 0 4 , Ġ 0 x 7 4 , Ġ 0 x 6 9 , Ġ 0 x 6 d , Ġ 0 x 6 5 , Ġ 0 x 0 8 , Ġ 0 x 0 0 , Ġ 0 x 0 0 , Ġ 0 x 0 0 , Ġ 0 x 0 1 , Ġ 0 x 2 a , Ġ 0 x 0 5 , Ġ 0 xf 2 , Ġ 0 x 0 0 , ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 x 0 4 , Ġ 0 x 7 5 , Ġ 0 x 7 5 , Ġ 0 x 6 9 , Ġ 0 x 6 4 , Ġ 0 x 0 9 , Ġ 0 xb 7 , Ġ 0 x 9 b , Ġ 0 xc 9 , Ġ 0 x 1 4 , Ġ 0 xde , Ġ 0 x 2 1 , Ġ 0 x 4 e , Ġ 0 x 1 3 , Ġ 0 xb 8 , Ġ 0 xb 2 , ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 xbc , Ġ 0 x 4 7 , Ġ 0 xe 8 , Ġ 0 x 5 b , Ġ 0 x 7 f , Ġ 0 x 0 b , Ġ 0 x 7 3 , Ġ 0 x 6 f , Ġ 0 x 6 d , Ġ 0 x 6 5 , Ġ 0 x 2 0 , Ġ 0 x 7 0 , Ġ 0 x 6 1 , Ġ 0 x 7 9 , Ġ 0 x 6 c , Ġ 0 x 6 f , ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 x 6 1 , Ġ 0 x 6 4 , Ġ 0 x 0 1 , Ġ 0 xa 0 , Ġ 0 x 5 8 , Ġ 0 x 6 0 ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġbuffer Ġ= ĠS dk ByteBuffer . wrap As Read Buffer ( encoded ) ĊĠĠĠĠĠĠĠ Ġassert Fails With < IllegalStateException > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMessage . decode ( buffer ) ĊĠĠĠĠĠĠĠ Ġ}. message . should Contain (" Invalid ĠHeader Value ; Ġtype = STRING , Ġlen = 6 5 5 3 5 ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Invalid Header String Length Cutoff () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġencoded Ġ= ĠbyteArray From ( ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 x 0 0 , Ġ 0 x 0 0 , Ġ 0 x 0 0 , Ġ 0 x 5 d , Ġ 0 x 0 0 , Ġ 0 x 0 0 , Ġ 0 x 0 0 , Ġ 0 x 4 d , Ġ 0 xad , Ġ 0 xcc , Ġ 0 xe 9 , Ġ 0 x 3 e , Ġ 0 x 0 4 , Ġ 0 x 7 4 , Ġ 0 x 7 2 , Ġ 0 x 7 5 , ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 x 6 5 , Ġ 0 x 0 0 , Ġ 0 x 0 5 , Ġ 0 x 6 6 , Ġ 0 x 6 1 , Ġ 0 x 6 c , Ġ 0 x 7 3 , Ġ 0 x 6 5 , Ġ 0 x 0 1 , Ġ 0 x 0 4 , Ġ 0 x 6 2 , Ġ 0 x 7 9 , Ġ 0 x 7 4 , Ġ 0 x 6 5 , Ġ 0 x 0 2 , Ġ 0 x 3 2 , ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 x 0 5 , Ġ 0 x 7 3 , Ġ 0 x 6 8 , Ġ 0 x 6 f , Ġ 0 x 7 2 , Ġ 0 x 7 4 , Ġ 0 x 0 3 , Ġ 0 x 4 e , Ġ 0 x 2 0 , Ġ 0 x 0 3 , Ġ 0 x 6 9 , Ġ 0 x 6 e , Ġ 0 x 7 4 , Ġ 0 x 0 4 , Ġ 0 x 0 0 , Ġ 0 x 0 7 , ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 xa 1 , Ġ 0 x 2 0 , Ġ 0 x 0 4 , Ġ 0 x 6 c , Ġ 0 x 6 f , Ġ 0 x 6 e , Ġ 0 x 6 7 , Ġ 0 x 0 5 , Ġ 0 x 0 0 , Ġ 0 x 0 0 , Ġ 0 x 0 0 , Ġ 0 x 0 b , Ġ 0 xa 4 , Ġ 0 x 3 b , Ġ 0 x 7 4 , Ġ 0 x 0 0 , ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 x 0 5 , Ġ 0 x 6 2 , Ġ 0 x 7 9 , Ġ 0 x 7 4 , Ġ 0 x 6 5 , Ġ 0 x 7 3 , Ġ 0 x 0 6 , Ġ 0 x 0 0 , Ġ 0 x 0 a , Ġ 0 x 7 3 , Ġ 0 x 6 f , Ġ 0 x 6 d , Ġ 0 x 6 5 , Ġ 0 x 2 0 , Ġ 0 x 6 2 , Ġ 0 x 7 9 , ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 x 7 4 , Ġ 0 x 6 5 , Ġ 0 x 7 3 , Ġ 0 x 0 3 , Ġ 0 x 7 3 , Ġ 0 x 7 4 , Ġ 0 x 7 2 , Ġ 0 x 0 7 , Ġ 0 xff , Ġ 0 x 0 0 , Ġ 0 x 0 0 , Ġ 0 x 0 0 , Ġ 0 x 0 0 ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġbuffer Ġ= ĠS dk ByteBuffer . wrap As Read Buffer ( encoded ) ĊĠĠĠĠĠĠĠ Ġassert Fails With < Index OutOfBoundsException > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMessage . decode ( buffer ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Invalid Header ValueType () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġencoded Ġ= ĠbyteArray From ( ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 x 0 0 , Ġ 0 x 0 0 , Ġ 0 x 0 0 , Ġ 0 x 9 6 , Ġ 0 x 0 0 , Ġ 0 x 0 0 , Ġ 0 x 0 0 , Ġ 0 x 7 a , Ġ 0 x 8 b , Ġ 0 xb 4 , Ġ 0 x 9 5 , Ġ 0 xfb , Ġ 0 x 0 4 , Ġ 0 x 7 4 , Ġ 0 x 7 2 , Ġ 0 x 7 5 , ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 x 6 5 , Ġ 0 x 0 0 , Ġ 0 x 0 5 , Ġ 0 x 6 6 , Ġ 0 x 6 1 , Ġ 0 x 6 c , Ġ 0 x 7 3 , Ġ 0 x 6 5 , Ġ 0 x 0 1 , Ġ 0 x 0 4 , Ġ 0 x 6 2 , Ġ 0 x 7 9 , Ġ 0 x 7 4 , Ġ 0 x 6 5 , Ġ 0 x 6 0 , Ġ 0 x 3 2 , ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 x 0 5 , Ġ 0 x 7 3 , Ġ 0 x 6 8 , Ġ 0 x 6 f , Ġ 0 x 7 2 , Ġ 0 x 7 4 , Ġ 0 x 0 3 , Ġ 0 x 4 e , Ġ 0 x 2 0 , Ġ 0 x 0 3 , Ġ 0 x 6 9 , Ġ 0 x 6 e , Ġ 0 x 7 4 , Ġ 0 x 0 4 , Ġ 0 x 0 0 , Ġ 0 x 0 7 , ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 xa 1 , Ġ 0 x 2 0 , Ġ 0 x 0 4 , Ġ 0 x 6 c , Ġ 0 x 6 f , Ġ 0 x 6 e , Ġ 0 x 6 7 , Ġ 0 x 0 5 , Ġ 0 x 0 0 , Ġ 0 x 0 0 , Ġ 0 x 0 0 , Ġ 0 x 0 b , Ġ 0 xa 4 , Ġ 0 x 3 b , Ġ 0 x 7 4 , Ġ 0 x 0 0 , ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 x 0 5 , Ġ 0 x 6 2 , Ġ 0 x 7 9 , Ġ 0 x 7 4 , Ġ 0 x 6 5 , Ġ 0 x 7 3 , Ġ 0 x 0 6 , Ġ 0 x 0 0 , Ġ 0 x 0 a , Ġ 0 x 7 3 , Ġ 0 x 6 f , Ġ 0 x 6 d , Ġ 0 x 6 5 , Ġ 0 x 2 0 , Ġ 0 x 6 2 , Ġ 0 x 7 9 , ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 x 7 4 , Ġ 0 x 6 5 , Ġ 0 x 7 3 , Ġ 0 x 0 3 , Ġ 0 x 7 3 , Ġ 0 x 7 4 , Ġ 0 x 7 2 , Ġ 0 x 0 7 , Ġ 0 x 0 0 , Ġ 0 x 0 8 , Ġ 0 x 7 3 , Ġ 0 x 6 f , Ġ 0 x 6 d , Ġ 0 x 6 5 , Ġ 0 x 2 0 , Ġ 0 x 7 3 , ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 x 7 4 , Ġ 0 x 7 2 , Ġ 0 x 0 4 , Ġ 0 x 7 4 , Ġ 0 x 6 9 , Ġ 0 x 6 d , Ġ 0 x 6 5 , Ġ 0 x 0 8 , Ġ 0 x 0 0 , Ġ 0 x 0 0 , Ġ 0 x 0 0 , Ġ 0 x 0 1 , Ġ 0 x 2 a , Ġ 0 x 0 5 , Ġ 0 xf 2 , Ġ 0 x 0 0 , ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 x 0 4 , Ġ 0 x 7 5 , Ġ 0 x 7 5 , Ġ 0 x 6 9 , Ġ 0 x 6 4 , Ġ 0 x 0 9 , Ġ 0 xb 7 , Ġ 0 x 9 b , Ġ 0 xc 9 , Ġ 0 x 1 4 , Ġ 0 xde , Ġ 0 x 2 1 , Ġ 0 x 4 e , Ġ 0 x 1 3 , Ġ 0 xb 8 , Ġ 0 xb 2 , ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 xbc , Ġ 0 x 4 7 , Ġ 0 xe 8 , Ġ 0 x 5 b , Ġ 0 x 7 f , Ġ 0 x 0 b , Ġ 0 x 7 3 , Ġ 0 x 6 f , Ġ 0 x 6 d , Ġ 0 x 6 5 , Ġ 0 x 2 0 , Ġ 0 x 7 0 , Ġ 0 x 6 1 , Ġ 0 x 7 9 , Ġ 0 x 6 c , Ġ 0 x 6 f , ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 x 6 1 , Ġ 0 x 6 4 , Ġ 0 x 0 1 , Ġ 0 xa 0 , Ġ 0 x 5 8 , Ġ 0 x 6 0 ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġbuffer Ġ= ĠS dk ByteBuffer . wrap As Read Buffer ( encoded ) ĊĠĠĠĠĠĠĠ Ġassert Fails With < IllegalArgumentException > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMessage . decode ( buffer ) ĊĠĠĠĠĠĠĠ Ġ}. message . should Contain (" Unknown ĠHeader Type : Ġ 9 6 ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Invalid Header Name Length () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġencoded Ġ= ĠbyteArray From ( ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 x 0 0 , Ġ 0 x 0 0 , Ġ 0 x 0 0 , Ġ 0 x 9 6 , Ġ 0 x 0 0 , Ġ 0 x 0 0 , Ġ 0 x 0 0 , Ġ 0 x 7 a , Ġ 0 x 8 b , Ġ 0 xb 4 , Ġ 0 x 9 5 , Ġ 0 xfb , Ġ 0 x 0 4 , Ġ 0 x 7 4 , Ġ 0 x 7 2 , Ġ 0 x 7 5 , ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 x 6 5 , Ġ 0 x 0 0 , Ġ 0 x 0 5 , Ġ 0 x 6 6 , Ġ 0 x 6 1 , Ġ 0 x 6 c , Ġ 0 x 7 3 , Ġ 0 x 6 5 , Ġ 0 x 0 1 , Ġ 0 xff , Ġ 0 x 6 2 , Ġ 0 x 7 9 , Ġ 0 x 7 4 , Ġ 0 x 6 5 , Ġ 0 x 0 2 , Ġ 0 x 3 2 , ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 x 0 5 , Ġ 0 x 7 3 , Ġ 0 x 6 8 , Ġ 0 x 6 f , Ġ 0 x 7 2 , Ġ 0 x 7 4 , Ġ 0 x 0 3 , Ġ 0 x 4 e , Ġ 0 x 2 0 , Ġ 0 x 0 3 , Ġ 0 x 6 9 , Ġ 0 x 6 e , Ġ 0 x 7 4 , Ġ 0 x 0 4 , Ġ 0 x 0 0 , Ġ 0 x 0 7 , ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 xa 1 , Ġ 0 x 2 0 , Ġ 0 x 0 4 , Ġ 0 x 6 c , Ġ 0 x 6 f , Ġ 0 x 6 e , Ġ 0 x 6 7 , Ġ 0 x 0 5 , Ġ 0 x 0 0 , Ġ 0 x 0 0 , Ġ 0 x 0 0 , Ġ 0 x 0 b , Ġ 0 xa 4 , Ġ 0 x 3 b , Ġ 0 x 7 4 , Ġ 0 x 0 0 , ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 x 0 5 , Ġ 0 x 6 2 , Ġ 0 x 7 9 , Ġ 0 x 7 4 , Ġ 0 x 6 5 , Ġ 0 x 7 3 , Ġ 0 x 0 6 , Ġ 0 x 0 0 , Ġ 0 x 0 a , Ġ 0 x 7 3 , Ġ 0 x 6 f , Ġ 0 x 6 d , Ġ 0 x 6 5 , Ġ 0 x 2 0 , Ġ 0 x 6 2 , Ġ 0 x 7 9 , ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 x 7 4 , Ġ 0 x 6 5 , Ġ 0 x 7 3 , Ġ 0 x 0 3 , Ġ 0 x 7 3 , Ġ 0 x 7 4 , Ġ 0 x 7 2 , Ġ 0 x 0 7 , Ġ 0 x 0 0 , Ġ 0 x 0 8 , Ġ 0 x 7 3 , Ġ 0 x 6 f , Ġ 0 x 6 d , Ġ 0 x 6 5 , Ġ 0 x 2 0 , Ġ 0 x 7 3 , ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 x 7 4 , Ġ 0 x 7 2 , Ġ 0 x 0 4 , Ġ 0 x 7 4 , Ġ 0 x 6 9 , Ġ 0 x 6 d , Ġ 0 x 6 5 , Ġ 0 x 0 8 , Ġ 0 x 0 0 , Ġ 0 x 0 0 , Ġ 0 x 0 0 , Ġ 0 x 0 1 , Ġ 0 x 2 a , Ġ 0 x 0 5 , Ġ 0 xf 2 , Ġ 0 x 0 0 , ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 x 0 4 , Ġ 0 x 7 5 , Ġ 0 x 7 5 , Ġ 0 x 6 9 , Ġ 0 x 6 4 , Ġ 0 x 0 9 , Ġ 0 xb 7 , Ġ 0 x 9 b , Ġ 0 xc 9 , Ġ 0 x 1 4 , Ġ 0 xde , Ġ 0 x 2 1 , Ġ 0 x 4 e , Ġ 0 x 1 3 , Ġ 0 xb 8 , Ġ 0 xb 2 , ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 xbc , Ġ 0 x 4 7 , Ġ 0 xe 8 , Ġ 0 x 5 b , Ġ 0 x 7 f , Ġ 0 x 0 b , Ġ 0 x 7 3 , Ġ 0 x 6 f , Ġ 0 x 6 d , Ġ 0 x 6 5 , Ġ 0 x 2 0 , Ġ 0 x 7 0 , Ġ 0 x 6 1 , Ġ 0 x 7 9 , Ġ 0 x 6 c , Ġ 0 x 6 f , ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 x 6 1 , Ġ 0 x 6 4 , Ġ 0 x 0 1 , Ġ 0 xa 0 , Ġ 0 x 5 8 , Ġ 0 x 6 0 ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġbuffer Ġ= ĠS dk ByteBuffer . wrap As Read Buffer ( encoded ) ĊĠĠĠĠĠĠĠ Ġassert Fails With < IllegalStateException > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMessage . decode ( buffer ) ĊĠĠĠĠĠĠĠ Ġ}. message . should Contain (" Invalid Ġheader Ġname Ġlength ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Invalid Headers Length () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġencoded Ġ= ĠbyteArray From ( ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 x 0 0 , Ġ 0 x 0 0 , Ġ 0 x 0 0 , Ġ 0 x 5 9 , Ġ 0 x 0 0 , Ġ 0 x 0 0 , Ġ 0 x 0 0 , Ġ 0 x 4 d , Ġ 0 x 5 8 , Ġ 0 x 4 c , Ġ 0 x 4 f , Ġ 0 xfe , Ġ 0 x 0 4 , Ġ 0 x 7 4 , Ġ 0 x 7 2 , Ġ 0 x 7 5 , ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 x 6 5 , Ġ 0 x 0 0 , Ġ 0 x 0 5 , Ġ 0 x 6 6 , Ġ 0 x 6 1 , Ġ 0 x 6 c , Ġ 0 x 7 3 , Ġ 0 x 6 5 , Ġ 0 x 0 1 , Ġ 0 x 0 4 , Ġ 0 x 6 2 , Ġ 0 x 7 9 , Ġ 0 x 7 4 , Ġ 0 x 6 5 , Ġ 0 x 0 2 , Ġ 0 x 3 2 , ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 x 0 5 , Ġ 0 x 7 3 , Ġ 0 x 6 8 , Ġ 0 x 6 f , Ġ 0 x 7 2 , Ġ 0 x 7 4 , Ġ 0 x 0 3 , Ġ 0 x 4 e , Ġ 0 x 2 0 , Ġ 0 x 0 3 , Ġ 0 x 6 9 , Ġ 0 x 6 e , Ġ 0 x 7 4 , Ġ 0 x 0 4 , Ġ 0 x 0 0 , Ġ 0 x 0 7 , ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 xa 1 , Ġ 0 x 2 0 , Ġ 0 x 0 4 , Ġ 0 x 6 c , Ġ 0 x 6 f , Ġ 0 x 6 e , Ġ 0 x 6 7 , Ġ 0 x 0 5 , Ġ 0 x 0 0 , Ġ 0 x 0 0 , Ġ 0 x 0 0 , Ġ 0 x 0 b , Ġ 0 xa 4 , Ġ 0 x 3 b , Ġ 0 x 7 4 , Ġ 0 x 0 0 , ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 x 0 5 , Ġ 0 x 6 2 , Ġ 0 x 7 9 , Ġ 0 x 7 4 , Ġ 0 x 6 5 , Ġ 0 x 7 3 , Ġ 0 x 0 6 , Ġ 0 x 0 0 , Ġ 0 x 0 a , Ġ 0 x 7 3 , Ġ 0 x 6 f , Ġ 0 x 6 d , Ġ 0 x 6 5 , Ġ 0 x 2 0 , Ġ 0 x 6 2 , Ġ 0 x 7 9 , ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 x 7 4 , Ġ 0 x 6 5 , Ġ 0 x 7 3 , Ġ 0 x 0 3 , Ġ 0 x 7 3 , Ġ 0 x 7 4 , Ġ 0 x 7 2 , Ġ 0 x 0 7 , Ġ 0 xff ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġbuffer Ġ= ĠS dk ByteBuffer . wrap As Read Buffer ( encoded ) ĊĠĠĠĠĠĠĠ Ġassert Fails With < IllegalArgumentException > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMessage . decode ( buffer ) ĊĠĠĠĠĠĠĠ Ġ}. message . should Contain (" Not Ġenough Ġbytes Ġto Ġread Ġa ĠByteArray Ġof Ġsize Ġ 3 ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Invalid Prelude Checksum () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġencoded Ġ= ĠbyteArray From ( ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 x 0 0 , Ġ 0 x 0 0 , Ġ 0 x 0 0 , Ġ 0 x 9 6 , Ġ 0 x 0 0 , Ġ 0 x 0 0 , Ġ 0 x 0 0 , Ġ 0 x 7 a , Ġ 0 xde , Ġ 0 xad , Ġ 0 xbe , Ġ 0 xef , Ġ 0 x 0 4 , Ġ 0 x 7 4 , Ġ 0 x 7 2 , Ġ 0 x 7 5 , ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 x 6 5 , Ġ 0 x 0 0 , Ġ 0 x 0 5 , Ġ 0 x 6 6 , Ġ 0 x 6 1 , Ġ 0 x 6 c , Ġ 0 x 7 3 , Ġ 0 x 6 5 , Ġ 0 x 0 1 , Ġ 0 x 0 4 , Ġ 0 x 6 2 , Ġ 0 x 7 9 , Ġ 0 x 7 4 , Ġ 0 x 6 5 , Ġ 0 x 0 2 , Ġ 0 x 3 2 , ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 x 0 5 , Ġ 0 x 7 3 , Ġ 0 x 6 8 , Ġ 0 x 6 f , Ġ 0 x 7 2 , Ġ 0 x 7 4 , Ġ 0 x 0 3 , Ġ 0 x 4 e , Ġ 0 x 2 0 , Ġ 0 x 0 3 , Ġ 0 x 6 9 , Ġ 0 x 6 e , Ġ 0 x 7 4 , Ġ 0 x 0 4 , Ġ 0 x 0 0 , Ġ 0 x 0 7 , ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 xa 1 , Ġ 0 x 2 0 , Ġ 0 x 0 4 , Ġ 0 x 6 c , Ġ 0 x 6 f , Ġ 0 x 6 e , Ġ 0 x 6 7 , Ġ 0 x 0 5 , Ġ 0 x 0 0 , Ġ 0 x 0 0 , Ġ 0 x 0 0 , Ġ 0 x 0 b , Ġ 0 xa 4 , Ġ 0 x 3 b , Ġ 0 x 7 4 , Ġ 0 x 0 0 , ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 x 0 5 , Ġ 0 x 6 2 , Ġ 0 x 7 9 , Ġ 0 x 7 4 , Ġ 0 x 6 5 , Ġ 0 x 7 3 , Ġ 0 x 0 6 , Ġ 0 x 0 0 , Ġ 0 x 0 a , Ġ 0 x 7 3 , Ġ 0 x 6 f , Ġ 0 x 6 d , Ġ 0 x 6 5 , Ġ 0 x 2 0 , Ġ 0 x 6 2 , Ġ 0 x 7 9 , ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 x 7 4 , Ġ 0 x 6 5 , Ġ 0 x 7 3 , Ġ 0 x 0 3 , Ġ 0 x 7 3 , Ġ 0 x 7 4 , Ġ 0 x 7 2 , Ġ 0 x 0 7 , Ġ 0 x 0 0 , Ġ 0 x 0 8 , Ġ 0 x 7 3 , Ġ 0 x 6 f , Ġ 0 x 6 d , Ġ 0 x 6 5 , Ġ 0 x 2 0 , Ġ 0 x 7 3 , ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 x 7 4 , Ġ 0 x 7 2 , Ġ 0 x 0 4 , Ġ 0 x 7 4 , Ġ 0 x 6 9 , Ġ 0 x 6 d , Ġ 0 x 6 5 , Ġ 0 x 0 8 , Ġ 0 x 0 0 , Ġ 0 x 0 0 , Ġ 0 x 0 0 , Ġ 0 x 0 1 , Ġ 0 x 2 a , Ġ 0 x 0 5 , Ġ 0 xf 2 , Ġ 0 x 0 0 , ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 x 0 4 , Ġ 0 x 7 5 , Ġ 0 x 7 5 , Ġ 0 x 6 9 , Ġ 0 x 6 4 , Ġ 0 x 0 9 , Ġ 0 xb 7 , Ġ 0 x 9 b , Ġ 0 xc 9 , Ġ 0 x 1 4 , Ġ 0 xde , Ġ 0 x 2 1 , Ġ 0 x 4 e , Ġ 0 x 1 3 , Ġ 0 xb 8 , Ġ 0 xb 2 , ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 xbc , Ġ 0 x 4 7 , Ġ 0 xe 8 , Ġ 0 x 5 b , Ġ 0 x 7 f , Ġ 0 x 0 b , Ġ 0 x 7 3 , Ġ 0 x 6 f , Ġ 0 x 6 d , Ġ 0 x 6 5 , Ġ 0 x 2 0 , Ġ 0 x 7 0 , Ġ 0 x 6 1 , Ġ 0 x 7 9 , Ġ 0 x 6 c , Ġ 0 x 6 f , ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 x 6 1 , Ġ 0 x 6 4 , Ġ 0 x 0 1 , Ġ 0 xa 0 , Ġ 0 x 5 8 , Ġ 0 x 6 0 ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġbuffer Ġ= ĠS dk ByteBuffer . wrap As Read Buffer ( encoded ) ĊĠĠĠĠĠĠĠ Ġassert Fails With < IllegalStateException > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMessage . decode ( buffer ) ĊĠĠĠĠĠĠĠ Ġ}. message . should Contain (" Prelude Ġchecksum Ġmismatch ; Ġexpected = 0 xde ad beef ; Ġcalculated = 0 x 8 bb 4 9 5 fb ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Invalid Message Checksum () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġencoded Ġ= ĠbyteArray From ( ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 x 0 0 , Ġ 0 x 0 0 , Ġ 0 x 0 0 , Ġ 0 x 9 6 , Ġ 0 x 0 0 , Ġ 0 x 0 0 , Ġ 0 x 0 0 , Ġ 0 x 7 a , Ġ 0 x 8 b , Ġ 0 xb 4 , Ġ 0 x 9 5 , Ġ 0 xfb , Ġ 0 x 0 4 , Ġ 0 x 7 4 , Ġ 0 x 7 2 , Ġ 0 x 7 5 , ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 x 6 5 , Ġ 0 x 0 0 , Ġ 0 x 0 5 , Ġ 0 x 6 6 , Ġ 0 x 6 1 , Ġ 0 x 6 c , Ġ 0 x 7 3 , Ġ 0 x 6 5 , Ġ 0 x 0 1 , Ġ 0 x 0 4 , Ġ 0 x 6 2 , Ġ 0 x 7 9 , Ġ 0 x 7 4 , Ġ 0 x 6 5 , Ġ 0 x 0 2 , Ġ 0 x 3 2 , ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 x 0 5 , Ġ 0 x 7 3 , Ġ 0 x 6 8 , Ġ 0 x 6 f , Ġ 0 x 7 2 , Ġ 0 x 7 4 , Ġ 0 x 0 3 , Ġ 0 x 4 e , Ġ 0 x 2 0 , Ġ 0 x 0 3 , Ġ 0 x 6 9 , Ġ 0 x 6 e , Ġ 0 x 7 4 , Ġ 0 x 0 4 , Ġ 0 x 0 0 , Ġ 0 x 0 7 , ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 xa 1 , Ġ 0 x 2 0 , Ġ 0 x 0 4 , Ġ 0 x 6 c , Ġ 0 x 6 f , Ġ 0 x 6 e , Ġ 0 x 6 7 , Ġ 0 x 0 5 , Ġ 0 x 0 0 , Ġ 0 x 0 0 , Ġ 0 x 0 0 , Ġ 0 x 0 b , Ġ 0 xa 4 , Ġ 0 x 3 b , Ġ 0 x 7 4 , Ġ 0 x 0 0 , ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 x 0 5 , Ġ 0 x 6 2 , Ġ 0 x 7 9 , Ġ 0 x 7 4 , Ġ 0 x 6 5 , Ġ 0 x 7 3 , Ġ 0 x 0 6 , Ġ 0 x 0 0 , Ġ 0 x 0 a , Ġ 0 x 7 3 , Ġ 0 x 6 f , Ġ 0 x 6 d , Ġ 0 x 6 5 , Ġ 0 x 2 0 , Ġ 0 x 6 2 , Ġ 0 x 7 9 , ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 x 7 4 , Ġ 0 x 6 5 , Ġ 0 x 7 3 , Ġ 0 x 0 3 , Ġ 0 x 7 3 , Ġ 0 x 7 4 , Ġ 0 x 7 2 , Ġ 0 x 0 7 , Ġ 0 x 0 0 , Ġ 0 x 0 8 , Ġ 0 x 7 3 , Ġ 0 x 6 f , Ġ 0 x 6 d , Ġ 0 x 6 5 , Ġ 0 x 2 0 , Ġ 0 x 7 3 , ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 x 7 4 , Ġ 0 x 7 2 , Ġ 0 x 0 4 , Ġ 0 x 7 4 , Ġ 0 x 6 9 , Ġ 0 x 6 d , Ġ 0 x 6 5 , Ġ 0 x 0 8 , Ġ 0 x 0 0 , Ġ 0 x 0 0 , Ġ 0 x 0 0 , Ġ 0 x 0 1 , Ġ 0 x 2 a , Ġ 0 x 0 5 , Ġ 0 xf 2 , Ġ 0 x 0 0 , ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 x 0 4 , Ġ 0 x 7 5 , Ġ 0 x 7 5 , Ġ 0 x 6 9 , Ġ 0 x 6 4 , Ġ 0 x 0 9 , Ġ 0 xb 7 , Ġ 0 x 9 b , Ġ 0 xc 9 , Ġ 0 x 1 4 , Ġ 0 xde , Ġ 0 x 2 1 , Ġ 0 x 4 e , Ġ 0 x 1 3 , Ġ 0 xb 8 , Ġ 0 xb 2 , ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 xbc , Ġ 0 x 4 7 , Ġ 0 xe 8 , Ġ 0 x 5 b , Ġ 0 x 7 f , Ġ 0 x 0 b , Ġ 0 x 7 3 , Ġ 0 x 6 f , Ġ 0 x 6 d , Ġ 0 x 6 5 , Ġ 0 x 2 0 , Ġ 0 x 7 0 , Ġ 0 x 6 1 , Ġ 0 x 7 9 , Ġ 0 x 6 c , Ġ 0 x 6 f , ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 x 6 1 , Ġ 0 x 6 4 , Ġ 0 xde , Ġ 0 xad , Ġ 0 xbe , Ġ 0 xef ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġbuffer Ġ= ĠS dk ByteBuffer . wrap As Read Buffer ( encoded ) ĊĠĠĠĠĠĠĠ Ġassert Fails With < IllegalStateException > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMessage . decode ( buffer ) ĊĠĠĠĠĠĠĠ Ġ}. message . should Contain (" Message Ġchecksum Ġmismatch ; Ġexpected = 0 xde ad beef ; Ġcalculated = 0 x 1 a 0 5 8 6 0 ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Invalid Header Name Length Too Long () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġencoded Ġ= ĠbyteArray From ( ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 x 0 0 , Ġ 0 x 0 0 , Ġ 0 x 0 0 , Ġ 0 x 5 d , Ġ 0 x 0 0 , Ġ 0 x 0 0 , Ġ 0 x 0 0 , Ġ 0 x 4 d , Ġ 0 xad , Ġ 0 xcc , Ġ 0 xe 9 , Ġ 0 x 3 e , Ġ 0 x 0 4 , Ġ 0 x 7 4 , Ġ 0 x 7 2 , Ġ 0 x 7 5 , ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 x 6 5 , Ġ 0 x 0 0 , Ġ 0 x 6 6 , Ġ 0 x 0 5 , Ġ 0 x 6 1 , Ġ 0 x 6 c , Ġ 0 x 7 3 , Ġ 0 x 6 5 , Ġ 0 x 0 1 , Ġ 0 x 0 4 , Ġ 0 x 6 2 , Ġ 0 x 7 9 , Ġ 0 x 7 4 , Ġ 0 x 6 5 , Ġ 0 x 0 2 , Ġ 0 x 3 2 , ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 x 0 5 , Ġ 0 x 7 3 , Ġ 0 x 6 8 , Ġ 0 x 5 d , Ġ 0 x 0 b , Ġ 0 xa 4 , Ġ 0 x 3 b , Ġ 0 x 7 4 , Ġ 0 x 0 0 , Ġ 0 x 0 5 , Ġ 0 x 6 2 , Ġ 0 x 7 9 , Ġ 0 x 7 4 , Ġ 0 x 6 5 , Ġ 0 x 7 3 , Ġ 0 x 0 6 , ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 x 0 0 , Ġ 0 x 0 a , Ġ 0 x 7 3 , Ġ 0 x 6 f , Ġ 0 x 6 d , Ġ 0 x 6 5 , Ġ 0 x 2 0 , Ġ 0 x 6 2 , Ġ 0 x 7 9 , Ġ 0 x 7 4 , Ġ 0 x 6 5 , Ġ 0 x 7 3 , Ġ 0 x 0 3 , Ġ 0 x 7 3 , Ġ 0 x 7 4 , Ġ 0 x 7 2 , ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 x 0 7 , Ġ 0 x 0 5 , Ġ 0 x 6 1 , Ġ 0 x 6 c , Ġ 0 x 7 3 , Ġ 0 x 6 5 , Ġ 0 x 0 1 , Ġ 0 x 0 4 , Ġ 0 x 6 2 , Ġ 0 x 7 9 , Ġ 0 x 7 4 , Ġ 0 x 6 5 , Ġ 0 x 0 2 , Ġ 0 x 3 2 , Ġ 0 x 0 5 , Ġ 0 x 7 3 , ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 x 6 8 , Ġ 0 x 6 f , Ġ 0 x 7 2 , Ġ 0 x 7 4 , Ġ 0 x 0 3 , Ġ 0 x 4 e , Ġ 0 x 2 0 , Ġ 0 x 0 3 , Ġ 0 x 6 9 , Ġ 0 x 6 e , Ġ 0 x 7 4 , Ġ 0 x 0 4 , Ġ 0 x 0 0 , Ġ 0 x 0 7 , Ġ 0 xa 1 , Ġ 0 x 2 0 , ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 x 0 4 , Ġ 0 x 6 c , Ġ 0 x 6 f , Ġ 0 x 6 e , Ġ 0 x 6 7 , Ġ 0 x 0 5 , Ġ 0 x 0 0 , Ġ 0 x 0 0 , Ġ 0 x 5 d , Ġ 0 x 0 b , Ġ 0 xa 4 , Ġ 0 x 3 b , Ġ 0 x 7 4 , Ġ 0 x 0 0 , Ġ 0 x 0 5 , Ġ 0 x 6 2 , ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 x 7 9 , Ġ 0 x 7 4 , Ġ 0 x 6 5 , Ġ 0 x 7 3 , Ġ 0 x 0 6 , Ġ 0 x 0 0 , Ġ 0 xff , Ġ 0 x 0 0 , Ġ 0 x 0 0 , Ġ 0 x 0 0 , Ġ 0 x 0 0 ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġbuffer Ġ= ĠS dk ByteBuffer . wrap As Read Buffer ( encoded ) ĊĠĠĠĠĠĠĠ Ġassert Fails With < IllegalArgumentException > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMessage . decode ( buffer ) ĊĠĠĠĠĠĠĠ Ġ}. message . should Contain (" Not Ġenough Ġbytes Ġto Ġread Ġa ĠByteArray Ġof Ġsize Ġ 1 0 2 ") ĊĠĠĠ Ġ} Ċ } Ċ