package Ġeu . ra jni ak . chat . conversation Ċ Ċ import Ġorg . assertj . core . api . Assertions . assertThat Ċ import Ġorg . junit . jupiter . api . Test Ċ Ċ import Ġjava . util . concurrent . TimeUnit Ċ Ċ internal Ġclass ĠMessage List Test Ġ{ ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġval ĠINITIAL _ TIME _ IN _ M ILL IS Ġ= ĠSystem . currentTimeMillis () ĊĊĠĠĠĠĠĠĠ Ġprivate Ġfun Ġcreate Message ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġauthor : ĠString Ġ= Ġ"", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtext : ĠString Ġ= Ġ"", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtime In Millis : ĠLong Ġ= Ġ 0 L ĊĠĠĠĠĠĠĠ Ġ) Ġ= ĠMessage ( author Ġ= Ġauthor , Ġtext Ġ= Ġtext , Ġtime In Millis Ġ= Ġtime In Millis ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġis Most Recent () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġmessage 1 Ġ= Ġcreate Message ( time In Millis Ġ= ĠINITIAL _ TIME _ IN _ M ILL IS ) ĊĠĠĠĠĠĠĠ Ġval Ġmessage 2 Ġ= Ġcreate Message ( time In Millis Ġ= ĠINITIAL _ TIME _ IN _ M ILL IS Ġ+ Ġ 2 ) ĊĠĠĠĠĠĠĠ Ġval Ġmessage 3 Ġ= Ġcreate Message ( time In Millis Ġ= ĠINITIAL _ TIME _ IN _ M ILL IS Ġ+ Ġ 4 ) ĊĠĠĠĠĠĠĠ Ġval Ġmessage List Ġ= ĠMessage List ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmessage 2 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmessage 1 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmessage 3 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ ĠassertThat ( message List . is Most Recent ( message 1 )). isFalse ĊĠĠĠĠĠĠĠ ĠassertThat ( message List . is Most Recent ( message 2 )). isFalse ĊĠĠĠĠĠĠĠ ĠassertThat ( message List . is Most Recent ( message 3 )). isTrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġis Next Message From Different Author () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġmessage 1 Ġ= Ġcreate Message ( author Ġ= Ġ" Mart in ", Ġtime In Millis Ġ= ĠINITIAL _ TIME _ IN _ M ILL IS ) ĊĠĠĠĠĠĠĠ Ġval Ġmessage 2 Ġ= Ġcreate Message ( author Ġ= Ġ" And rea ", Ġtime In Millis Ġ= ĠINITIAL _ TIME _ IN _ M ILL IS Ġ+ Ġ 2 ) ĊĠĠĠĠĠĠĠ Ġval Ġmessage 3 Ġ= Ġcreate Message ( author Ġ= Ġ" And rea ", Ġtime In Millis Ġ= ĠINITIAL _ TIME _ IN _ M ILL IS Ġ+ Ġ 4 ) ĊĠĠĠĠĠĠĠ Ġval Ġmessage List Ġ= ĠMessage List ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmessage 2 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmessage 1 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmessage 3 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ ĠassertThat ( message List . is Next Message From Different Author ( message 1 )). isTrue ĊĠĠĠĠĠĠĠ ĠassertThat ( message List . is Next Message From Different Author ( message 2 )). isFalse ĊĠĠĠĠĠĠĠ ĠassertThat ( message List . is Next Message From Different Author ( message 3 )). isFalse ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġis Next Message More Than 2 0 Seconds A part () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġmessage 1 Ġ= Ġcreate Message ( time In Millis Ġ= ĠINITIAL _ TIME _ IN _ M ILL IS ) ĊĠĠĠĠĠĠĠ Ġval Ġmessage 2 Ġ= Ġcreate Message ( time In Millis Ġ= ĠINITIAL _ TIME _ IN _ M ILL IS Ġ+ ĠTimeUnit . SECONDS . to Millis ( 2 1 )) ĊĠĠĠĠĠĠĠ Ġval Ġmessage 3 Ġ= Ġcreate Message ( time In Millis Ġ= ĠINITIAL _ TIME _ IN _ M ILL IS Ġ+ ĠTimeUnit . SECONDS . to Millis ( 2 5 )) ĊĠĠĠĠĠĠĠ Ġval Ġmessage List Ġ= ĠMessage List ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmessage 2 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmessage 1 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmessage 3 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ ĠassertThat ( message List . is Next Message More Than 2 0 Seconds A part ( message 1 )). isTrue ĊĠĠĠĠĠĠĠ ĠassertThat ( message List . is Next Message More Than 2 0 Seconds A part ( message 2 )). isFalse ĊĠĠĠĠĠĠĠ ĠassertThat ( message List . is Next Message More Than 2 0 Seconds A part ( message 3 )). isFalse ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġis Previous Message More Than An Hour A part () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġmessage 1 Ġ= Ġcreate Message ( time In Millis Ġ= ĠINITIAL _ TIME _ IN _ M ILL IS ) ĊĠĠĠĠĠĠĠ Ġval Ġmessage 2 Ġ= Ġcreate Message ( time In Millis Ġ= ĠINITIAL _ TIME _ IN _ M ILL IS Ġ+ ĠTimeUnit . SECONDS . to Millis ( 2 1 )) ĊĠĠĠĠĠĠĠ Ġval Ġmessage 3 Ġ= Ġcreate Message ( time In Millis Ġ= ĠINITIAL _ TIME _ IN _ M ILL IS Ġ+ ĠTimeUnit . HOUR S . to Millis ( 2 )) ĊĠĠĠĠĠĠĠ Ġval Ġmessage List Ġ= ĠMessage List ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmessage 2 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmessage 1 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmessage 3 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ ĠassertThat ( message List . is Previous Message More Than An Hour A part ( message 1 )). isFalse ĊĠĠĠĠĠĠĠ ĠassertThat ( message List . is Previous Message More Than An Hour A part ( message 2 )). isFalse ĊĠĠĠĠĠĠĠ ĠassertThat ( message List . is Previous Message More Than An Hour A part ( message 3 )). isTrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġis Ol dest () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġmessage 1 Ġ= Ġcreate Message ( time In Millis Ġ= ĠINITIAL _ TIME _ IN _ M ILL IS ) ĊĠĠĠĠĠĠĠ Ġval Ġmessage 2 Ġ= Ġcreate Message ( time In Millis Ġ= ĠINITIAL _ TIME _ IN _ M ILL IS Ġ+ ĠTimeUnit . SECONDS . to Millis ( 2 1 )) ĊĠĠĠĠĠĠĠ Ġval Ġmessage 3 Ġ= Ġcreate Message ( time In Millis Ġ= ĠINITIAL _ TIME _ IN _ M ILL IS Ġ+ ĠTimeUnit . HOUR S . to Millis ( 2 )) ĊĠĠĠĠĠĠĠ Ġval Ġmessage List Ġ= ĠMessage List ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmessage 2 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmessage 1 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmessage 3 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ ĠassertThat ( message List . is Ol dest ( message 1 )). isTrue ĊĠĠĠĠĠĠĠ ĠassertThat ( message List . is Ol dest ( message 2 )). isFalse ĊĠĠĠĠĠĠĠ ĠassertThat ( message List . is Ol dest ( message 3 )). isFalse ĊĠĠĠ Ġ} Ċ } Ċ