package Ġio . github . slo th Labs . mail . imap Ċ Ċ import Ġcom . ice green . green mail . junit . Green Mail Rule Ċ import Ġcom . ice green . green mail . util . Green Mail Util Ċ import Ġcom . ice green . green mail . util . Server Setup Test Ċ import Ġcom . sun . mail . imap . I MAP Folder . Fetch Profile Item Ċ import Ġcom . sun . mail . imap . Sort Term Ċ import Ġorg . f unktion ale . option . Option Ċ import Ġorg . junit . After Ċ import Ġorg . junit . Assert .* Ċ import Ġorg . junit . Before Ċ import Ġorg . junit . Rule Ċ import Ġorg . junit . Test Ċ import Ġjava . util . Date Ċ import Ġio . github . slo th Labs . mail . imap . Sort .* Ċ Ċ class ĠI map Connection Test Ġ{ ĊĠĠĠ Ġ@ get : Rule ĊĠĠĠ Ġval Ġgreen Mail Ġ= ĠGreen Mail Rule ( Server Setup Test . SMTP _ I MAP ) ĊĊĠĠĠ Ġval Ġhost : ĠString ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġgreen Mail . imap . bind To ĊĊĠĠĠ Ġval Ġport : ĠInt ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġgreen Mail . imap . port ĊĊĠĠĠ Ġ@ Before Ġfun Ġsetup () Ġ{ ĊĠĠĠĠĠĠĠ Ġgreen Mail . start () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ After Ġfun ĠtearDown () Ġ{ ĊĠĠĠĠĠĠĠ Ġgreen Mail . stop () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test Ġfun Ġshould Handle Plain Text Body () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġemail Address Ġ= Ġ" test @ localhost . com " ĊĠĠĠĠĠĠĠ Ġval Ġfrom Address Ġ= Ġ" from @ localhost . com " ĊĠĠĠĠĠĠĠ Ġval Ġpassword Ġ= Ġ" password " ĊĠĠĠĠĠĠĠ Ġval Ġsubject Ġ= Ġ" Test ĠEmail " ĊĠĠĠĠĠĠĠ Ġval Ġtest Body Text Ġ= Ġ" Body ĠText Ġgoes Ġhere !" ĊĊĠĠĠĠĠĠĠ Ġgreen Mail . setUser ( email Address , Ġpassword ) ĊĊĠĠĠĠĠĠĠ ĠGreen Mail Util . send Text Email Test ( email Address , Ġfrom Address , Ġsubject , Ġtest Body Text ) ĊĊĠĠĠĠĠĠĠ Ġvar Ġprocessed Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġim ap ( host , Ġport , Ġuser Ġ= Ġemail Address , Ġpassword Ġ= Ġpassword ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfolder (" IN BOX ", ĠFolder Modes . ReadOnly ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmsg Ġ= Ġthis [ 1 ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertTrue ( msg Ġis ĠOption . Some ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmsg Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( test Body Text , Ġbody Text ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertNotNull ( uid ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertFalse ( headers . isEmpty ()) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprocessed Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠassertTrue ( processed ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test Ġfun Ġshould Handle Plain Text Body With Connection Information Object () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġemail Address Ġ= Ġ" test @ localhost . com " ĊĠĠĠĠĠĠĠ Ġval Ġfrom Address Ġ= Ġ" from @ localhost . com " ĊĠĠĠĠĠĠĠ Ġval Ġpassword Ġ= Ġ" password " ĊĠĠĠĠĠĠĠ Ġval Ġsubject Ġ= Ġ" Test ĠEmail " ĊĠĠĠĠĠĠĠ Ġval Ġtest Body Text Ġ= Ġ" Body ĠText Ġgoes Ġhere !" ĊĊĠĠĠĠĠĠĠ Ġgreen Mail . setUser ( email Address , Ġpassword ) ĊĊĠĠĠĠĠĠĠ ĠGreen Mail Util . send Text Email Test ( email Address , Ġfrom Address , Ġsubject , Ġtest Body Text ) ĊĊĠĠĠĠĠĠĠ Ġvar Ġprocessed Ġ= Ġfalse ĊĊĠĠĠĠĠĠĠ Ġval Ġcon Info Ġ= ĠConnection Information ( host , Ġport , Ġemail Address , Ġpassword ) ĊĠĠĠĠĠĠĠ Ġim ap ( con Info ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfolder (" IN BOX ", ĠFolder Modes . ReadOnly ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmsg Ġ= Ġthis [ 1 ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertTrue ( msg Ġis ĠOption . Some ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmsg Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( test Body Text , Ġbody Text ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertNotNull ( uid ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertFalse ( headers . isEmpty ()) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprocessed Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠassertTrue ( processed ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test Ġfun Ġsearch Stuff () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġemail Address Ġ= Ġ" test @ localhost . com " ĊĠĠĠĠĠĠĠ Ġval Ġfrom Address Ġ= Ġ" from @ localhost . com " ĊĠĠĠĠĠĠĠ Ġval Ġpassword Ġ= Ġ" password " ĊĠĠĠĠĠĠĠ Ġval Ġsubject Ġ= Ġ" Test ĠEmail " ĊĠĠĠĠĠĠĠ Ġval Ġtest Body Text Ġ= Ġ" Body ĠText Ġgoes Ġhere !" ĊĊĠĠĠĠĠĠĠ Ġgreen Mail . setUser ( email Address , Ġpassword ) ĊĊĠĠĠĠĠĠĠ ĠGreen Mail Util . send Text Email Test ( email Address , Ġfrom Address , Ġsubject , Ġtest Body Text ) ĊĊĠĠĠĠĠĠĠ Ġvar Ġprocessed Ġ= Ġfalse ĊĊĠĠĠĠĠĠĠ Ġval Ġcon Info Ġ= ĠConnection Information ( host , Ġport , Ġemail Address , Ġpassword ) ĊĠĠĠĠĠĠĠ Ġval Ġmsg List Ġ= Ġmutable ListOf < Message >() ĊĠĠĠĠĠĠĠ Ġim ap ( con Info ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfolder (" IN BOX ", ĠFolder Modes . ReadOnly ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpre Fetch By ( Fetch Profile Item . MESSAGE ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresults Ġ= Ġsearch Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwith From ( from Address ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwith Sent On Or Before ( Date ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmsg List . addAll ( results ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertTrue ( msg List . isNotEmpty ()) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfirst Ġ= Ġmsg List [ 0 ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( from Address , Ġfirst . from AsString ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( test Body Text . trim (), Ġfirst . body Text . trim ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertNotNull ( first . uid ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertFalse ( first . headers . isEmpty ()) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprocessed Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠassertTrue ( processed ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test Ġfun Ġother Search Stuff () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġemail Address Ġ= Ġ" test @ localhost . com " ĊĠĠĠĠĠĠĠ Ġval Ġfrom Address Ġ= Ġ" from @ localhost . com " ĊĠĠĠĠĠĠĠ Ġval Ġpassword Ġ= Ġ" password " ĊĠĠĠĠĠĠĠ Ġval Ġsubject Ġ= Ġ" Test ĠEmail " ĊĠĠĠĠĠĠĠ Ġval Ġtest Body Text Ġ= Ġ" Body ĠText Ġgoes Ġhere !" ĊĊĠĠĠĠĠĠĠ Ġgreen Mail . setUser ( email Address , Ġpassword ) ĊĊĠĠĠĠĠĠĠ ĠGreen Mail Util . send Text Email Test ( email Address , Ġfrom Address , Ġsubject , Ġtest Body Text ) ĊĊĠĠĠĠĠĠĠ Ġvar Ġprocessed Ġ= Ġfalse ĊĊĠĠĠĠĠĠĠ Ġval Ġcon Info Ġ= ĠConnection Information ( host , Ġport , Ġemail Address , Ġpassword ) ĊĠĠĠĠĠĠĠ Ġval Ġmsg List Ġ= Ġmutable ListOf < Message >() ĊĠĠĠĠĠĠĠ Ġim ap ( con Info ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfolder (" IN BOX ", ĠFolder Modes . ReadOnly ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpre Fetch By ( Fetch Profile Item . MESSAGE ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresults Ġ= Ġsearch Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ+ from ( from Address ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ+ to ( email Address ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ- subject (" Testing ") ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ+ sent On Or Before ( Date ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmsg List . addAll ( results ) ĊĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertTrue ( msg List . isNotEmpty ()) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfirst Ġ= Ġmsg List [ 0 ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( from Address , Ġfirst . from AsString ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( test Body Text . trim (), Ġfirst . body Text . trim ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertNotNull ( first . uid ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertFalse ( first . headers . isEmpty ()) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprocessed Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠassertTrue ( processed ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test Ġfun Ġsearch Stuff With Sorting () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġemail Address Ġ= Ġ" test @ localhost . com " ĊĠĠĠĠĠĠĠ Ġval Ġfrom Address Ġ= Ġ" from @ localhost . com " ĊĠĠĠĠĠĠĠ Ġval Ġpassword Ġ= Ġ" password " ĊĠĠĠĠĠĠĠ Ġval Ġsubject Ġ= Ġ" Test ĠEmail " ĊĠĠĠĠĠĠĠ Ġval Ġtest Body Text Ġ= Ġ" Body ĠText Ġgoes Ġhere !" ĊĊĠĠĠĠĠĠĠ Ġgreen Mail . setUser ( email Address , Ġpassword ) ĊĊĠĠĠĠĠĠĠ ĠGreen Mail Util . send Text Email Test ( email Address , Ġfrom Address , Ġsubject , Ġtest Body Text ) ĊĊĠĠĠĠĠĠĠ Ġvar Ġprocessed Ġ= Ġfalse ĊĊĠĠĠĠĠĠĠ Ġval Ġcon Info Ġ= ĠConnection Information ( host , Ġport , Ġemail Address , Ġpassword ) ĊĠĠĠĠĠĠĠ Ġval Ġmsg List Ġ= Ġmutable ListOf < Message >() ĊĠĠĠĠĠĠĠ Ġim ap ( con Info ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfolder (" IN BOX ", ĠFolder Modes . ReadOnly ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpre Fetch By ( Fetch Profile Item . MESSAGE ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresults Ġ= Ġsearch Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ+ from ( from Address ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ+ to ( email Address ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ- subject (" Testing ") ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ+ sent On Or Before ( Date ()) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsorted By Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ+ From ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ+ To ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ- Sort . Size ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ- Subject ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmsg List . addAll ( results ) ĊĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertTrue ( msg List . isNotEmpty ()) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfirst Ġ= Ġmsg List [ 0 ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( from Address , Ġfirst . from AsString ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( test Body Text . trim (), Ġfirst . body Text . trim ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertNotNull ( first . uid ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertFalse ( first . headers . isEmpty ()) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprocessed Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠassertTrue ( processed ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test Ġfun Ġsorting No Search () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġemail Address Ġ= Ġ" test @ localhost . com " ĊĠĠĠĠĠĠĠ Ġval Ġfrom Address Ġ= Ġ" from @ localhost . com " ĊĠĠĠĠĠĠĠ Ġval Ġpassword Ġ= Ġ" password " ĊĠĠĠĠĠĠĠ Ġval Ġsubject Ġ= Ġ" Test ĠEmail " ĊĠĠĠĠĠĠĠ Ġval Ġtest Body Text Ġ= Ġ" Body ĠText Ġgoes Ġhere !" ĊĊĠĠĠĠĠĠĠ Ġgreen Mail . setUser ( email Address , Ġpassword ) ĊĊĠĠĠĠĠĠĠ ĠGreen Mail Util . send Text Email Test ( email Address , Ġfrom Address , Ġsubject , Ġtest Body Text ) ĊĊĠĠĠĠĠĠĠ Ġvar Ġprocessed Ġ= Ġfalse ĊĊĠĠĠĠĠĠĠ Ġval Ġcon Info Ġ= ĠConnection Information ( host , Ġport , Ġemail Address , Ġpassword ) ĊĠĠĠĠĠĠĠ Ġval Ġmsg List Ġ= Ġmutable ListOf < Message >() ĊĠĠĠĠĠĠĠ Ġim ap ( con Info ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfolder (" IN BOX ", ĠFolder Modes . ReadOnly ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpre Fetch By ( Fetch Profile Item . MESSAGE ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresults Ġ= Ġsorted By Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ+ From ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ+ To ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ- Sort Term . SIZE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ- Subject ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ+ Sort Term . AR RI VAL ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ- Sort . from Sort Term ( Sort Term . CC ). get () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmsg List . addAll ( results ) ĊĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertTrue ( msg List . isNotEmpty ()) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfirst Ġ= Ġmsg List [ 0 ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( from Address , Ġfirst . from AsString ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( test Body Text . trim (), Ġfirst . body Text . trim ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertNotNull ( first . uid ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertFalse ( first . headers . isEmpty ()) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprocessed Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠassertTrue ( processed ) ĊĠĠĠ Ġ} Ċ }