package Ġcom . hp . j ipp . dsl Ċ Ċ import Ġcom . hp . j ipp . encoding . Cy cl er . cycle Ċ import Ġcom . hp . j ipp . encoding . Int Or Int Range Ċ import Ġcom . hp . j ipp . encoding . Media Sizes Ċ import Ġcom . hp . j ipp . encoding . Name Ċ import Ġcom . hp . j ipp . encoding . Tag Ċ import Ġcom . hp . j ipp . model . Binding Type Ċ import Ġcom . hp . j ipp . model . Media Ċ import Ġcom . hp . j ipp . model . Media Col Ċ import Ġcom . hp . j ipp . model . Operation Ċ import Ġcom . hp . j ipp . model . Status Ċ import Ġcom . hp . j ipp . model . Types Ċ import Ġjava . net . URI Ċ import Ġorg . junit . Assert Ċ import Ġorg . junit . Assert . assertEquals Ċ import Ġorg . junit . Test Ċ Ċ class ĠD sl Test Ġ{ ĊĠĠĠ Ġprivate Ġval Ġuri Ġ= ĠURI . create (" ipp :// 1 9 2 . 1 6 8 . 0 . 1 0 1 : 6 3 1 / ipp / print ") ĊĠĠĠ Ġprivate Ġval Ġmedia Size Ġ= ĠMedia Sizes . parse ( Media . na Letter 8 p 5 x 1 1 in ) !! ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġpacket Test () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġpacket Ġ= Ġipp Packet ( Operation . print Job ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoperation Attributes Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġattr ( Types . attributes Charset , Ġ" utf - 8 ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġattr ( Types . attributes Natural Language , Ġ" en ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġattr ( Types . printer Uri , Ġuri ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġattr ( Types . request ing UserName , Ġ" Test ĠUser ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġjob Attributes Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġattr ( Types . media Col , ĠMedia Col ( media Size Ġ= Ġmedia Size )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġattr ( Types . document Message , Ġ" A Ġdescription Ġof Ġthe Ġdocument ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprinter Attributes Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġattr ( Types . binding Type Supported , ĠBinding Type . ad hes ive ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġunsupported Attributes Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġattr ( Types . output Bin . no Value ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġcy c led Ġ= Ġcycle ( packet ) ĊĊĠĠĠĠĠĠĠ ĠassertEquals (" utf - 8 ", Ġcy c led . getValue ( Tag . operation Attributes , ĠTypes . attributes Charset )) ĊĠĠĠĠĠĠĠ ĠassertEquals ( media Size , Ġcy c led . getValue ( Tag . job Attributes , ĠTypes . media Col ) !!. media Size ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( listOf ( Binding Type . ad hes ive ), Ġcy c led . getValues ( Tag . printer Attributes , ĠTypes . binding Type Supported )) ĊĠĠĠĠĠĠĠ ĠassertEquals ( Types . output Bin . no Value (), Ġcy c led [ Tag . unsupported Attributes ]?. get ( Types . output Bin )) ĊĠĠĠĠĠĠĠ ĠassertEquals (" A Ġdescription Ġof Ġthe Ġdocument ", Ġcy c led [ Tag . job Attributes ]?. getValue ( Types . document Message )?. value ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġint Or Int Range () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġpacket Ġ= Ġipp Packet ( Status . successful Ok ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgroup ( Tag . printer Attributes ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġattr ( Types . number Up Supported , ĠInt Or Int Range ( 5 .. 6 )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠAssert . assertNot Equals ( listOf < Int Or Int Range >(), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpacket . getValues ( Tag . printer Attributes , ĠTypes . number Up Supported )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` extend Ġa Ġgroup `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġpacket Ġ= Ġipp Packet ( Operation . print Job ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠWe Ġcan Ġget Ġand Ġset Ġthe Ġstatus Ġif Ġwe Ġwant Ġto ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( Operation . print Job . code , Ġstatus . code ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstatus Ġ= ĠStatus . client Error BadRequest ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoperation Attributes Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġattr ( Types . attributes Charset , Ġ" utf - 8 ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġattr ( Types . attributes Natural Language , Ġ" en ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġextend ( Tag . operation Attributes ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġattr ( Types . printer Uri , Ġuri ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġattr ( Types . attributes Charset , Ġ" utf - 1 6 ") Ġ// Ġreplace Ġext ant ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġattr ( Types . request ing UserName , Ġ" Test ĠUser ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ// ĠStatus Ġand Ġcode Ġgo Ġin Ġthe Ġsame Ġplace ĊĠĠĠĠĠĠĠ ĠassertEquals ( Status . client Error BadRequest . code , Ġpacket . code ) ĊĊĠĠĠĠĠĠĠ Ġ// ĠOnly Ġa Ġsingle Ġgroup Ġis Ġadded ĊĠĠĠĠĠĠĠ ĠassertEquals ( 1 , Ġpacket . attribute Groups . size ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( Name (" Test ĠUser "), Ġpacket . getValue ( Tag . operation Attributes , ĠTypes . request ing UserName )) ĊĊĠĠĠĠĠĠĠ Ġ// ĠE ar lier Ġentries Ġare Ġreplaced ĊĠĠĠĠĠĠĠ ĠassertEquals (" utf - 1 6 ", Ġpacket . getValue ( Tag . operation Attributes , ĠTypes . attributes Charset )) ĊĊĠĠĠĠĠĠĠ Ġ// ĠOrder Ġis Ġpreserved ĊĠĠĠĠĠĠĠ ĠassertEquals ( listOf ( Types . attributes Charset , ĠTypes . attributes Natural Language , ĠTypes . printer Uri , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTypes . request ing UserName ), Ġpacket [ Tag . operation Attributes ] !!. map Ġ{ Ġit . type Ġ}) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` modify Ġa Ġgroup `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġpacket Ġ= Ġipp Packet ( Operation . print Job ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠWe Ġcan Ġget Ġand Ġset Ġthe Ġstatus Ġif Ġwe Ġwant Ġto ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( Operation . print Job . code , Ġstatus . code ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstatus Ġ= ĠStatus . client Error BadRequest ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoperation Attributes Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠTry Ġa Ġvariety Ġof Ġaccessors ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis Ġ+= ĠTypes . attributes Charset . of (" utf - 8 ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis [ Types . attributes Natural Language ] Ġ= Ġ" en " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġextend ( Tag . operation Attributes ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd ( Types . printer Uri . of ( uri )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd All ( listOf ( Types . attributes Charset . of (" utf - 1 6 "))) Ġ// Ġreplace Ġprior Ġattributes Charset ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġattr ( listOf ( Types . request ing UserName . of (" Test ĠUser "))) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ// ĠStatus Ġand Ġcode Ġgo Ġin Ġthe Ġsame Ġplace ĊĠĠĠĠĠĠĠ ĠassertEquals ( Status . client Error BadRequest . code , Ġpacket . code ) ĊĊĠĠĠĠĠĠĠ Ġ// ĠOnly Ġa Ġsingle Ġgroup Ġis Ġadded ĊĠĠĠĠĠĠĠ ĠassertEquals ( 1 , Ġpacket . attribute Groups . size ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( Name (" Test ĠUser "), Ġpacket . getValue ( Tag . operation Attributes , ĠTypes . request ing UserName )) ĊĊĠĠĠĠĠĠĠ Ġ// ĠE ar lier Ġentries Ġare Ġreplaced ĊĠĠĠĠĠĠĠ ĠassertEquals (" utf - 1 6 ", Ġpacket . getValue ( Tag . operation Attributes , ĠTypes . attributes Charset )) ĊĊĠĠĠĠĠĠĠ Ġ// ĠOrder Ġis Ġpreserved ĊĠĠĠĠĠĠĠ ĠassertEquals ( listOf ( Types . attributes Charset , ĠTypes . attributes Natural Language , ĠTypes . printer Uri , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTypes . request ing UserName ), Ġpacket [ Tag . operation Attributes ] !!. map Ġ{ Ġit . type Ġ}) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` extend Ġa Ġnon - existent Ġgroup `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġpacket Ġ= Ġipp Packet ( Operation . print Job ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠExtend Ġa Ġtag Ġthat 's Ġnot Ġthere ĊĠĠĠĠĠĠĠĠĠĠĠ Ġextend ( Tag . printer Attributes ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġattr ( Types . job AccountId , Ġ" 2 5 ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠassertEquals ( Name (" 2 5 "), Ġpacket . getValue ( Tag . printer Attributes , ĠTypes . job AccountId )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` add Ġa Ġgroup `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġoperation Group Ġ= Ġgroup ( Tag . operation Attributes ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġattr ( Types . attributes Natural Language , Ġ" en ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġpacket Ġ= Ġipp Packet ( Operation . print Job ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgroup ( operation Group ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠassertEquals (" en ", Ġpacket . getValue ( Tag . operation Attributes , ĠTypes . attributes Natural Language )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` mess Ġwith Ġpacket Ġfields `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġpacket Ġ= Ġipp Packet ( Operation . print Job ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoperation Attributes Ġ{ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( operation Ġ== ĠOperation . print Job ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoperation Ġ= ĠOperation . create Job ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġversion Number Ġ= Ġ 2 0 0 0 ĊĠĠĠĠĠĠĠĠĠĠĠ ĠrequestId ++ ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠassertEquals ( Operation . create Job , Ġpacket . operation ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( 2 0 0 0 , Ġpacket . version Number ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( ipp Packet . DEFAULT _ REQUEST _ ID Ġ+ Ġ 1 , Ġpacket . requestId ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` set Ġpacket Ġcode Ġdirectly `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġpacket Ġ= Ġipp Packet ( Operation . print Job ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcode Ġ= ĠOperation . create Job . code ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠassertEquals ( Operation . create Job , Ġpacket . operation ) ĊĠĠĠ Ġ} Ċ } Ċ