package Ġcom . d md irc . kt irc . model čĊč Ċ import Ġcom . d md irc . kt irc . Test Constants č Ċ import Ġcom . d md irc . kt irc . util . currentTime Provider č Ċ import Ġcom . d md irc . kt irc . util . currentTime Zone Provider č Ċ import Ġorg . junit . jupiter . api . Assertions . assertEquals č Ċ import Ġorg . junit . jupiter . api . Assertions . assertNull č Ċ import Ġorg . junit . jupiter . api . Test č Ċ import Ġjava . time . LocalDateTime č Ċ import Ġjava . time . Zone Id čĊč Ċ internal Ġclass ĠI rc Message Test Ġ{ čĊčĊĠĠĠ Ġ@ Test čĊĠĠĠ Ġfun Ġ` gets ĠUTC Ġtime Ġfrom ĠServer Time Ġtag Ġif Ġpresent `() Ġ{ čĊĠĠĠĠĠĠĠ Ġcurrent TimeZone Provider Ġ= Ġ{ ĠZone Id . of (" Z ") Ġ} čĊĠĠĠĠĠĠĠ Ġval Ġmessage Ġ= ĠI rc Message ( hash Map Of ( Message Tag . Server Time Ġto Ġ" 1 9 9 5 - 0 9 - 1 5 T 0 9 : 0 0 : 0 0 . 0 0 0 0 Z "), Ġnull , Ġ"", Ġempty List ()) čĊĠĠĠĠĠĠĠ ĠassertEquals ( LocalDateTime . parse (" 1 9 9 5 - 0 9 - 1 5 T 0 9 : 0 0 : 0 0 "), Ġmessage . metadata . time ) čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġ@ Test čĊĠĠĠ Ġfun Ġ` con verts Ġtime Ġin ĠServer Time Ġtag Ġto Ġlocal Ġtimezone `() Ġ{ čĊĠĠĠĠĠĠĠ Ġcurrent TimeZone Provider Ġ= Ġ{ ĠZone Id . of (" America / New _ Y ork ") Ġ} čĊĠĠĠĠĠĠĠ Ġval Ġmessage Ġ= ĠI rc Message ( hash Map Of ( Message Tag . Server Time Ġto Ġ" 1 9 9 5 - 0 9 - 1 5 T 0 9 : 0 0 : 0 0 . 0 0 0 0 Z "), Ġnull , Ġ"", Ġempty List ()) čĊĠĠĠĠĠĠĠ ĠassertEquals ( LocalDateTime . parse (" 1 9 9 5 - 0 9 - 1 5 T 0 5 : 0 0 : 0 0 "), Ġmessage . metadata . time ) čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġ@ Test čĊĠĠĠ Ġfun Ġ` uses Ġcurrent Ġtime Ġif ĠServer Time Ġtag Ġis Ġmalformed `() Ġ{ čĊĠĠĠĠĠĠĠ ĠcurrentTime Provider Ġ= Ġ{ ĠTest Constants . time Ġ} čĊĠĠĠĠĠĠĠ Ġval Ġmessage Ġ= ĠI rc Message ( hash Map Of ( Message Tag . Server Time Ġto Ġ" 1 9 9 6 - 0 5 - 0 3 T 1 3 : 0 0 : 0 0 . *** Z "), Ġnull , Ġ"", Ġempty List ()) čĊĠĠĠĠĠĠĠ ĠassertEquals ( LocalDateTime . parse (" 1 9 9 5 - 0 9 - 1 5 T 0 9 : 0 0 : 0 0 "), Ġmessage . metadata . time ) čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġ@ Test čĊĠĠĠ Ġfun Ġ` uses Ġcurrent Ġlocal Ġtime Ġif Ġno Ġtag Ġpresent `() Ġ{ čĊĠĠĠĠĠĠĠ ĠcurrentTime Provider Ġ= Ġ{ ĠTest Constants . time Ġ} čĊĠĠĠĠĠĠĠ Ġval Ġmessage Ġ= ĠI rc Message ( empty Map (), Ġnull , Ġ"", Ġempty List ()) čĊĠĠĠĠĠĠĠ ĠassertEquals ( LocalDateTime . parse (" 1 9 9 5 - 0 9 - 1 5 T 0 9 : 0 0 : 0 0 "), Ġmessage . metadata . time ) čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġ@ Test čĊĠĠĠ Ġfun Ġ` pop ulates Ġbatch Ġfield Ġif Ġpresent `() Ġ{ čĊĠĠĠĠĠĠĠ ĠcurrentTime Provider Ġ= Ġ{ ĠTest Constants . time Ġ} čĊĠĠĠĠĠĠĠ Ġval Ġmessage Ġ= ĠI rc Message ( hash Map Of ( Message Tag . Batch Ġto Ġ" abc 1 2 3 "), Ġnull , Ġ"", Ġempty List ()) čĊĠĠĠĠĠĠĠ ĠassertEquals (" abc 1 2 3 ", Ġmessage . metadata . batch Id ) čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġ@ Test čĊĠĠĠ Ġfun Ġ` pop ulates Ġmessage Ġid Ġif Ġpresent `() Ġ{ čĊĠĠĠĠĠĠĠ ĠcurrentTime Provider Ġ= Ġ{ ĠTest Constants . time Ġ} čĊĠĠĠĠĠĠĠ Ġval Ġmessage Ġ= ĠI rc Message ( hash Map Of ( Message Tag . MessageId Ġto Ġ" abc 1 2 3 "), Ġnull , Ġ"", Ġempty List ()) čĊĠĠĠĠĠĠĠ ĠassertEquals (" abc 1 2 3 ", Ġmessage . metadata . message Id ) čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġ@ Test čĊĠĠĠ Ġfun Ġ` pop ulates Ġlabel Ġif Ġpresent `() Ġ{ čĊĠĠĠĠĠĠĠ ĠcurrentTime Provider Ġ= Ġ{ ĠTest Constants . time Ġ} čĊĠĠĠĠĠĠĠ Ġval Ġmessage Ġ= ĠI rc Message ( hash Map Of ( Message Tag . Label Ġto Ġ" abc 1 2 3 "), Ġnull , Ġ"", Ġempty List ()) čĊĠĠĠĠĠĠĠ ĠassertEquals (" abc 1 2 3 ", Ġmessage . metadata . label ) čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġ@ Test čĊĠĠĠ Ġfun Ġ` Can Ġparse Ġthe Ġprefix Ġas Ġa Ġsource Ġuser `() Ġ{ čĊĠĠĠĠĠĠĠ Ġval Ġmessage Ġ= ĠI rc Message ( empty Map (), Ġ" ac id Burn ! lib by @ root . localhost ". toByteArray (), Ġ"", Ġempty List ()) čĊĠĠĠĠĠĠĠ Ġval Ġuser Ġ= Ġmessage . source User !! čĊčĊĠĠĠĠĠĠĠ ĠassertEquals (" ac id Burn ", Ġuser . nickname ) čĊĠĠĠĠĠĠĠ ĠassertEquals (" lib by ", Ġuser . ident ) čĊĠĠĠĠĠĠĠ ĠassertEquals (" root . localhost ", Ġuser . hostname ) čĊĠĠĠĠĠĠĠ ĠassertNull ( user . account ) čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġ@ Test čĊĠĠĠ Ġfun Ġ` uses Ġaccount - name Ġtag Ġwhen Ġcreating Ġa Ġsource Ġuser `() Ġ{ čĊĠĠĠĠĠĠĠ Ġval Ġmessage Ġ= ĠI rc Message ( hash Map Of ( Message Tag . AccountName Ġto Ġ" ac id Burn "), Ġ" ac id Burn ! lib by @ root . localhost ". toByteArray (), Ġ"", Ġempty List ()) čĊĠĠĠĠĠĠĠ Ġval Ġuser Ġ= Ġmessage . source User !! čĊčĊĠĠĠĠĠĠĠ ĠassertEquals (" ac id Burn ", Ġuser . nickname ) čĊĠĠĠĠĠĠĠ ĠassertEquals (" lib by ", Ġuser . ident ) čĊĠĠĠĠĠĠĠ ĠassertEquals (" root . localhost ", Ġuser . hostname ) čĊĠĠĠĠĠĠĠ ĠassertEquals (" ac id Burn ", Ġuser . account ) čĊĠĠĠ Ġ} čĊč Ċ }