/* Ċ Ġ* ĠCopyright Ġ( C ) Ġ 2 0 1 7 ĠVS CT Ċ Ġ* Ċ Ġ* Ġ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 Ġfr . vs ct . to ck . bot . engine . nlp Ċ Ċ import Ġfr . vs ct . to ck . bot . engine . Bot Engine Test Ċ import Ġfr . vs ct . to ck . bot . engine . Bot Repository Ċ import Ġfr . vs ct . to ck . bot . engine . action . Send Sentence Ċ import Ġfr . vs ct . to ck . bot . engine . dialog . Context Value Ċ import Ġfr . vs ct . to ck . bot . engine . dialog . Dialog Ċ import Ġfr . vs ct . to ck . bot . engine . dialog . Next User Action State Ċ import Ġfr . vs ct . to ck . bot . engine . user . User Timeline Ċ import Ġfr . vs ct . to ck . nlp . api . client . model . N lp Intent Qualifier Ċ import Ġfr . vs ct . to ck . nlp . api . client . model . N lp Query Ċ import Ġfr . vs ct . to ck . nlp . api . client . model . N lp Result Ċ import Ġfr . vs ct . to ck . nlp . entity . Value Ċ import Ġio . mock k . every Ċ import Ġio . mock k . slot Ċ import Ġio . mock k . verify Ċ import Ġorg . junit . jupiter . api . Test Ċ import Ġkotlin . test . assertEquals Ċ import Ġkotlin . test . assertFalse Ċ import Ġkotlin . test . assertTrue Ċ Ċ /** Ċ Ġ* Ċ Ġ*/ Ċ class ĠN lp Test Ġ: ĠBot Engine Test () Ġ{ ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġparse Sentence _ should Call N lp Client Parse _ when Expected Intent IsNull In Dialog State () Ġ{ ĊĠĠĠĠĠĠĠ ĠN lp (). parse Sentence ( user Action Ġas ĠSend Sentence , Ġuser Timeline , Ġdialog , Ġconnector Controller , Ġbot Definition ) ĊĠĠĠĠĠĠĠ Ġverify Ġ{ Ġn lp Client . parse ( any ()) Ġ} ĊĠĠĠĠĠĠĠ Ġverify ( exact ly Ġ= Ġ 0 ) Ġ{ Ġn lp Client . parse Intent Entities ( any ()) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġparse Sentence _ should Call N lp Client Parse Intent Entities _ when Intent s Qual ifiers IsNotNull In Dialog State () Ġ{ ĊĠĠĠĠĠĠĠ Ġdialog . state . next Action State Ġ= ĠNext User Action State ( listOf ( N lp Intent Qualifier (" test 2 "))) ĊĠĠĠĠĠĠĠ ĠN lp (). parse Sentence ( user Action Ġas ĠSend Sentence , Ġuser Timeline , Ġdialog , Ġconnector Controller , Ġbot Definition ) ĊĠĠĠĠĠĠĠ Ġverify Ġ{ Ġn lp Client . parse Intent Entities ( any ()) Ġ} ĊĠĠĠĠĠĠĠ Ġverify ( exact ly Ġ= Ġ 0 ) Ġ{ Ġn lp Client . parse ( any ()) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġparse Sentence _ should Not Register Query _ when Bot Is Disabled () Ġ{ ĊĊĠĠĠĠĠĠĠ Ġuser Timeline . user State . bot Disabled Ġ= Ġtrue ĊĠĠĠĠĠĠĠ ĠN lp (). parse Sentence ( user Action Ġas ĠSend Sentence , Ġuser Timeline , Ġdialog , Ġconnector Controller , Ġbot Definition ) ĊĊĠĠĠĠĠĠĠ Ġval Ġslot Ġ= Ġslot < N lp Query >() ĊĠĠĠĠĠĠĠ Ġverify Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġn lp Client . parse ( capture ( slot )) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠassertFalse ( slot . captured . context . test ) ĊĠĠĠĠĠĠĠ ĠassertFalse ( slot . captured . context . register Query ) ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġparse Sentence _ should Register Query _ when Bot IsNot Disabled And It IsNot AT est Context () Ġ{ ĊĊĠĠĠĠĠĠĠ ĠN lp (). parse Sentence ( user Action Ġas ĠSend Sentence , Ġuser Timeline , Ġdialog , Ġconnector Controller , Ġbot Definition ) ĊĊĠĠĠĠĠĠĠ Ġval Ġslot Ġ= Ġslot < N lp Query >() ĊĠĠĠĠĠĠĠ Ġverify Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġn lp Client . parse ( capture ( slot )) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠassertFalse ( slot . captured . context . test ) ĊĠĠĠĠĠĠĠ ĠassertTrue ( slot . captured . context . register Query ) ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġparse Sentence _ should Use N lp Listeners Entity Evaluation _ When Available () Ġ{ ĊĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġn lp Client . parse ( any ()) Ġ} Ġreturns Ġn lp Result ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġn lp Client . parse Intent Entities ( any ()) Ġ} Ġreturns Ġn lp Result ĊĊĠĠĠĠĠĠĠ Ġval Ġcustom Value Ġ= ĠContext Value ( entity B , Ġobject Ġ: ĠValue Ġ{}, Ġ" b ") ĊĠĠĠĠĠĠĠ Ġval Ġn lp Listener Ġ= Ġobject Ġ: ĠN lp Listener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġevaluate Entities ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġuser Timeline : ĠUser Timeline , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdialog : ĠDialog , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġn lp Result : ĠN lp Result ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ): ĠList < Context Value > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠlistOf ( custom Value ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠBot Repository . nlp Listeners . add ( nlp Listener ) ĊĠĠĠĠĠĠĠ ĠN lp (). parse Sentence ( user Action Ġas ĠSend Sentence , Ġuser Timeline , Ġdialog , Ġconnector Controller , Ġbot Definition ) ĊĊĠĠĠĠĠĠĠ ĠassertEquals ( 3 , Ġuser Action . state . entity Values . size ) ĊĠĠĠĠĠĠĠ ĠassertTrue ( user Action . state . entity Values . contains ( custom Value )) ĊĠĠĠĠĠĠĠ ĠassertTrue ( user Action . state . entity Values . contains ( Context Value ( nlp Result , Ġentity A Value ))) ĊĠĠĠĠĠĠĠ ĠassertTrue ( user Action . state . entity Values . contains ( Context Value ( nlp Result , Ġentity C Value ))) ĊĠĠĠ Ġ} Ċ }