package Ġcom . s ugar . judge . test . db Ċ Ċ import Ġcom . s ugar . judge . config . EventBus Namespace Ċ import Ġcom . s ugar . judge . config .* Ċ import Ġcom . s ugar . judge . database . Submission Db Vert icle Ċ import Ġio . react iverse . pg client . Pg Client Ċ import Ġio . react iverse . pg client . Pg Pool Options Ċ import Ġio . vertx . core . Vert x Ċ import Ġio . vertx . core . json . JsonObject Ċ import Ġio . vertx . ext . unit . TestContext Ċ import Ġio . vertx . ext . unit . junit . Vert x Unit Runner Ċ import Ġorg . junit . After Class Ċ import Ġorg . junit . BeforeClass Ċ import Ġorg . junit . Test Ċ import Ġorg . junit . runner . RunWith Ċ import Ġjava . time . LocalDateTime Ċ Ċ @ RunWith ( Vert x Unit Runner :: class ) Ċ //@ Fix Method Order ( Method Sort ers . NAME _ ASC ENDING ) Ċ class ĠSubmission Db Vert icle Test { ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġconfig Ġ= ĠJsonObject (). put (" port ", Ġ 5 4 3 2 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. put (" host ", Ġ" 1 2 7 . 0 . 0 . 1 ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. put (" database ", Ġ" s ugar _ judge ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. put (" user ", Ġ" s ugar ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. put (" password ", Ġ" 1 2 3 4 5 6 ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. put (" maxSize ", Ġ 1 0 ) ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġvert x Ġ= ĠVert x . vertx () ĊĊĠĠĠĠĠĠĠ Ġ@ BeforeClass ĊĠĠĠĠĠĠĠ Ġ@ Jvm Static ĊĠĠĠĠĠĠĠ Ġfun Ġbefore Class ( context : ĠTest Context ){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠåĪĿå§ĭåĮĸ æķ°æį®åºĵ è¿ŀæİ¥ æ±ł ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġclient Ġ= ĠP g Client . pool ( vertx , ĠP g Pool Options ( config )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvert x . deploy Vert icle ( Submission Db Vert icle (), Ġcontext . async Assert Success ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ After Class ĊĠĠĠĠĠĠĠ Ġ@ Jvm Static ĊĠĠĠĠĠĠĠ Ġfun Ġafter Class ( context : ĠTest Context ){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvert x . close ( context . async Assert Success ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun ĠtestGet Submission List ( context : ĠTest Context ){ ĊĠĠĠĠĠĠĠ Ġval Ġasync Ġ= Ġcontext . async () ĊĠĠĠĠĠĠĠ Ġvar Ġparams Ġ= ĠJsonObject (). put (" start ", Ġ 0 L ). put (" size ", Ġ 2 0 L ) ĊĠĠĠĠĠĠĠ Ġvert x . event Bus (). send < JsonObject >( EventBus Namespace . ADDR _ SUB MISSION _ DB . get (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠEvent Bus Namespace . make Message ( EventBus Namespace . COMMAND _ GET _ SUB MISSION _ LIST , Ġparams )){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif ( it . succeeded ()){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprintln ( it . result (). body ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontext . assertTrue ( it . result (). body (). containsKey (" count ")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġasync . complete () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} else { ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprintln ( it . cause ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontext . exception Handler () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ//@ Test ĊĠĠĠ Ġfun Ġtest Create Submission ( context : ĠTest Context ){ ĊĠĠĠĠĠĠĠ Ġval Ġasync Ġ= Ġcontext . async () ĊĠĠĠĠĠĠĠ Ġval Ġparams Ġ= ĠJsonObject () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. put ( KEY _ SUB MISSION _ USER _ ID , Ġ 4 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. put ( KEY _ SUB MISSION _ PRO BLE M _ ID , Ġ 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. put ( KEY _ SUB MISSION _ CON TEST _ ID , Ġ 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. put ( KEY _ SUB MISSION _ N ICK NAME , Ġ" hello ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. put ( KEY _ SUB MISSION _ PRO BLE M _ TITLE , Ġ" hello Ġworld ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. put ( KEY _ SUB MISSION _ LANGUAGE , Ġ" JAVA ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. put ( KEY _ SUB MISSION _ EXECUTE _ TIME , Ġ 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. put ( KEY _ SUB MISSION _ CON TEST _ TIME , Ġ 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. put ( KEY _ SUB MISSION _ PRO BLE M _ CODE , Ġ" import Ġ... ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. put ( KEY _ SUB MISSION _ STATUS , Ġ 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. put ( KEY _ SUB MISSION _ LOCK , Ġtrue ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. put ( KEY _ SUB MISSION _ IP _ ADDRESS , Ġ" 1 2 7 . 0 . 0 . 1 ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. put ( KEY _ SUB MISSION _ SUBMIT _ TIME , ĠLocalDateTime . now (). toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. put ( KEY _ SUB MISSION _ ERROR _ MESSAGE , Ġ" abc ") ĊĊĠĠĠĠĠĠĠ Ġvert x . event Bus (). send < JsonObject >( EventBus Namespace . ADDR _ SUB MISSION _ DB . get (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠEvent Bus Namespace . make Message ( EventBus Namespace . COMMAND _ CREATE _ SUB MISSION , Ġparams )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif ( it . succeeded ()){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprintln ( it . result (). body ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// context . assertTrue ( it . result (). body (). containsKey (" count ")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġasync . complete () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} else { ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprintln ( it . cause ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontext . exception Handler () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġupdate Submission ( context : ĠTest Context ){ ĊĠĠĠĠĠĠĠ Ġval Ġasync Ġ= Ġcontext . async () ĊĠĠĠĠĠĠĠ Ġval Ġparams Ġ= ĠJsonObject () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. put ( KEY _ SUB MISSION _ EXECUTE _ TIME , Ġ 1 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. put ( KEY _ SUB MISSION _ CON TEST _ TIME , Ġ 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. put ( KEY _ SUB MISSION _ STATUS , Ġ 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. put ( KEY _ SUB MISSION _ LOCK , Ġfalse ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. put ( KEY _ SUB MISSION _ ERROR _ MESSAGE , Ġ" bbb ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. put ( KEY _ SUB MISSION _ ID , Ġ 1 ) ĊĠĠĠĠĠĠĠ Ġvert x . event Bus (). send < JsonObject >( EventBus Namespace . ADDR _ SUB MISSION _ DB . get (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠEvent Bus Namespace . make Message ( EventBus Namespace . COMMAND _ UPDATE _ SUB MISSION , Ġparams )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif ( it . succeeded ()){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprintln ( it . result (). body ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// context . assertTrue ( it . result (). body (). containsKey (" count ")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġasync . complete () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} else { ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprintln ( it . cause ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontext . exception Handler () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ Ċ }