/* Ċ Ġ* ĠCopyright Ġ 2 0 1 5 - 2 0 1 8 Ġthe Ġoriginal Ġauthor Ġor Ġauthors . Ċ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* ĠĠĠĠ Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ċ Ġ* Ġeither Ġexpress Ġor Ġimplied . ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ċ Ġ* Ġgoverning Ġpermissions Ġand Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ package Ġorg . dock side stage . app . web . signin Ċ Ċ import Ġorg . dock side stage . app . web . base . login . Par ade pl aza Login Ass ist Ċ import Ġorg . dock side stage . app . web . my page . My page Action Ċ import Ġorg . dock side stage . db fl ute . ex bh v . Member Login Bh v Ċ import Ġorg . dock side stage . my last a . action . Par ade pl aza Html Path Ċ import Ġorg . dock side stage . my last a . action . Par ade pl aza Messages Ċ import Ġorg . dock side stage . unit . Unit Par ade pl aza TestCase Ċ import Ġorg . junit . Assert Ċ import Ġorg . last a fl ute . core . time . Time Manager Ċ import Ġorg . last a fl ute . web . validation . Required Ċ import Ġjavax . annotation . Resource Ċ Ċ /** Ċ Ġ* Ġ@ author Ġj fl ute Ċ Ġ*/ Ċ class ĠSign in Action Test Ġ: ĠUnit Par ade pl aza TestCase () Ġ{ ĊĊĠĠĠ Ġ@ Resource ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġtime Manager : ĠTime Manager ĊĠĠĠ Ġ@ Resource ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġmember Login Bh v : ĠMember Login Bh v ĊĠĠĠ Ġ@ Resource ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġlogin Ass ist : ĠPar ade pl aza Login Ass ist ĊĊĠĠĠ Ġ// Ġ================================================================= ================== ĊĠĠĠ Ġ// ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠBasic ĊĠĠĠ Ġ// ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ===== ĊĠĠĠ Ġfun Ġtest _ signin _ basic () Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġ## ĠArrange Ġ## ĊĠĠĠĠĠĠĠ Ġchange Async To Normal Sync () ĊĠĠĠĠĠĠĠ Ġchange Requires New To Required () ĊĠĠĠĠĠĠĠ Ġval Ġaction Ġ= ĠSign in Action () ĊĠĠĠĠĠĠĠ Ġinject ( action ) ĊĠĠĠĠĠĠĠ Ġval Ġform Ġ= ĠSign in Form () ĊĠĠĠĠĠĠĠ Ġform . account Ġ= Ġ" Pix y " ĊĠĠĠĠĠĠĠ Ġform . password Ġ= Ġ" sea " ĊĊĠĠĠĠĠĠĠ Ġ// Ġ## ĠAct Ġ## ĊĠĠĠĠĠĠĠ Ġval Ġresponse Ġ= Ġaction . signin ( form ) ĊĊĠĠĠĠĠĠĠ Ġ// Ġ## ĠAssert Ġ## ĊĠĠĠĠĠĠĠ Ġval Ġhtml Data Ġ= Ġvalidate Html Data ( response ) ĊĠĠĠĠĠĠĠ Ġhtml Data . assert Redirect ( My page Action :: class . java ) ĊĊĠĠĠĠĠĠĠ Ġval Ġuser Bean Ġ= Ġlogin Ass ist . saved User Bean . get () ĊĠĠĠĠĠĠĠ Ġlog ( user Bean ) ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( form . account , Ġuser Bean . member Account ) ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( 1 , Ġmember Login Bh v . select Count Ġ{ Ġcb Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcb . query (). set Login Datetime _ Equal ( time Manager . current DateTime ()) Ġ// Ġtransaction Ġtime ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// Ġ================================================================= ================== ĊĠĠĠ Ġ// ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠValidation ĊĠĠĠ Ġ// ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ========== ĊĠĠĠ Ġfun Ġtest _ signin _ validation Error _ required () Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġ## ĠArrange Ġ## ĊĠĠĠĠĠĠĠ Ġval Ġaction Ġ= ĠSign in Action () ĊĠĠĠĠĠĠĠ Ġinject ( action ) ĊĠĠĠĠĠĠĠ Ġval Ġform Ġ= ĠSign in Form () ĊĊĠĠĠĠĠĠĠ Ġ// Ġ## ĠAct Ġ## ĊĠĠĠĠĠĠĠ Ġ// Ġ## ĠAssert Ġ## ĊĠĠĠĠĠĠĠ Ġassert ValidationError Ġ{ Ġaction . signin ( form ) Ġ}. handle Ġ{ Ġdata Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdata . required Message Of (" account ", ĠRequired :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdata . required Message Of (" password ", ĠRequired :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġhtml Data Ġ= Ġvalidate Html Data ( data . hook Error ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhtml Data . assert Html Forward ( Par ade pl aza Html Path . path _ Sign in _ Sign in Html ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġtest _ signin _ validation Error _ login Failure () Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġ## ĠArrange Ġ## ĊĠĠĠĠĠĠĠ Ġval Ġaction Ġ= ĠSign in Action () ĊĠĠĠĠĠĠĠ Ġinject ( action ) ĊĠĠĠĠĠĠĠ Ġval Ġform Ġ= ĠSign in Form () ĊĠĠĠĠĠĠĠ Ġform . account Ġ= Ġ" Pix y " ĊĠĠĠĠĠĠĠ Ġform . password Ġ= Ġ" land " ĊĊĠĠĠĠĠĠĠ Ġ// Ġ## ĠAct Ġ## ĊĠĠĠĠĠĠĠ Ġ// Ġ## ĠAssert Ġ## ĊĠĠĠĠĠĠĠ Ġassert ValidationError Ġ{ Ġaction . signin ( form ) Ġ}. handle Ġ{ Ġdata Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdata . required Message Of (" account ", ĠPar ade pl aza Messages . ERRORS _ LOGIN _ FAILURE ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġhtml Data Ġ= Ġvalidate Html Data ( data . hook Error ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhtml Data . assert Html Forward ( Par ade pl aza Html Path . path _ Sign in _ Sign in Html ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAssert . assertNull ( form . password ) Ġ// Ġshould Ġcleared Ġfor Ġsecurity ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ