package Ġcom . github . lj tf re itas . jul ian . k Ċ Ċ import Ġcom . github . lj tf re itas . jul ian . Attempt Ċ import Ġcom . github . lj tf re itas . jul ian . Promise Ċ import Ġio . kot est . assertions . throw ables . should Throw Ċ import Ġio . kot est . core . spec . style . Describe Spec Ċ import Ġio . kot est . matchers . result . shouldBe Failure Ċ import Ġio . kot est . matchers . result . shouldBe Success Ċ import Ġio . kot est . matchers . shouldBe Ċ Ċ class ĠExtensions Test Ġ: ĠDescribe Spec ({ ĊĊĠĠĠ Ġdescribe (" Kotlin Ġextensions ") Ġ{ ĊĊĠĠĠĠĠĠĠ Ġdescribe (" Promise < T > Ġextensions ") Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġdescribe (" Promise < T > Ġto ĠResult < T >") Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit (" a Ġsuccessful ĠPromise Ġ-> Ġa Ġsuccessful ĠResult ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresult Ġ= ĠPromise . done (" success "). result () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult ĠshouldBe Success Ġ" success " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit (" a Ġfailed ĠPromise Ġ-> Ġa Ġfailed ĠResult ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfailure Ġ= ĠRuntimeException (" o ops ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresult Ġ= ĠPromise . failed < Unit , ĠRuntimeException >( failure ). result () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult . shouldBe Failure Ġ{ Ġit ĠshouldBe Ġfailure Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġdescribe (" composed ĠPromise s ") Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit (" composed , Ġdependent Ġsuccessful ĠPromise s ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġone Ġ= ĠPromise . done (" one ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtwo Ġ= ĠPromise . done (" two ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġthree Ġ= ĠPromise . done (" three ") ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcomposed Ġ= Ġone Ġ+ Ġtwo Ġ+ Ġthree ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġ( a , Ġb , Ġc ) Ġ= Ġcomposed . join (). unsafe () ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġa ĠshouldBe Ġ" one " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġb ĠshouldBe Ġ" two " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġc ĠshouldBe Ġ" three " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit (" a Ġfailed ĠPromise Ġshould Ġbreak Ġcomposition ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfailure Ġ= ĠRuntimeException (" i 'm Ġfailed ...") ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġone Ġ= ĠPromise . done (" one ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtwo Ġ= ĠPromise . done (" two ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġthree Ġ= ĠPromise . failed < String , ĠRuntimeException >( failure ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcomposed Ġ= Ġone Ġ+ Ġtwo Ġ+ Ġthree ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġactual Ġ= Ġshould Throw < RuntimeException > Ġ{ Ġcomposed . join (). unsafe () Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġactual ĠshouldBe Ġfailure ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġdescribe (" Attempt < T > Ġextensions ") Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġit (" a Ġsuccessful ĠAttempt Ġ-> Ġa Ġsuccessful ĠResult ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresult Ġ= ĠAttempt . success (" success "). result () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult ĠshouldBe Success Ġ" success " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġit (" a Ġfailed ĠAttempt Ġ-> Ġa Ġfailed ĠResult ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfailure Ġ= ĠRuntimeException (" o ops ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresult Ġ= ĠAttempt . failed < Unit >( failure ). result () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult . shouldBe Failure Ġ{ Ġit ĠshouldBe Ġfailure Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ })