package Ġcom . github . ai . aut ok pass . domain . use cases Ċ Ċ import Ġcom . github . ai . aut ok pass . domain . Errors Ċ import Ġcom . github . ai . aut ok pass . domain . System Property Provider Ċ import Ġcom . github . ai . aut ok pass . domain . exception . Aut ok pass Exception Ċ import Ġcom . github . ai . aut ok pass . domain . use cases . Get OS Type UseCase . Companion . PROPERTY _ OS _ NAME Ċ import Ġcom . github . ai . aut ok pass . model . OS Type Ċ import Ġcom . github . ai . aut ok pass . model . Result Ċ import Ġcom . google . common . truth . Truth . assertThat Ċ import Ġio . mock k . confirm Verified Ċ import Ġio . mock k . every Ċ import Ġio . mock k . mock k Ċ import Ġio . mock k . verify Ċ import Ġorg . junit . Test Ċ Ċ class ĠGet OS Type UseCase Test Ġ{ ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` get OS Type Ġshould Ġdetermine Ġlinux `() Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġarrange ĊĠĠĠĠĠĠĠ Ġval Ġproperty Provider Ġ= Ġmock k < System Property Provider >() ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġproperty Provider . getSystem Property ( PROPERTY _ OS _ NAME ) Ġ}. returns (" Linux ") ĊĊĠĠĠĠĠĠĠ Ġ// Ġact ĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= ĠGet OS Type UseCase ( property Provider ). get OS Type () ĊĊĠĠĠĠĠĠĠ Ġ// Ġassert ĊĠĠĠĠĠĠĠ ĠassertThat ( result ). isInstanceOf ( Result . Success :: class . java ) ĊĠĠĠĠĠĠĠ ĠassertThat ( result . getData OrThrow ()). isEqualTo ( OS Type . LINUX ) ĊĊĠĠĠĠĠĠĠ Ġverify Ġ{ Ġproperty Provider . getSystem Property ( PROPERTY _ OS _ NAME ) Ġ} ĊĠĠĠĠĠĠĠ Ġconfirm Verified () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` get OS Type Ġshould Ġdetermine Ġmac Ġos `() Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġarrange ĊĠĠĠĠĠĠĠ Ġval Ġproperty Provider Ġ= Ġmock k < System Property Provider >() ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġproperty Provider . getSystem Property ( PROPERTY _ OS _ NAME ) Ġ}. returns (" Mac ĠOS ĠX ") ĊĊĠĠĠĠĠĠĠ Ġ// Ġact ĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= ĠGet OS Type UseCase ( property Provider ). get OS Type () ĊĊĠĠĠĠĠĠĠ Ġ// Ġassert ĊĠĠĠĠĠĠĠ ĠassertThat ( result ). isInstanceOf ( Result . Success :: class . java ) ĊĠĠĠĠĠĠĠ ĠassertThat ( result . getData OrThrow ()). isEqualTo ( OS Type . MAC _ OS ) ĊĊĠĠĠĠĠĠĠ Ġverify Ġ{ Ġproperty Provider . getSystem Property ( PROPERTY _ OS _ NAME ) Ġ} ĊĠĠĠĠĠĠĠ Ġconfirm Verified () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` get OS Type Ġshould Ġreturn Ġerror `() Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġarrange ĊĠĠĠĠĠĠĠ Ġval Ġproperty Provider Ġ= Ġmock k < System Property Provider >() ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġproperty Provider . getSystem Property ( PROPERTY _ OS _ NAME ) Ġ}. returns (" Windows ") ĊĊĠĠĠĠĠĠĠ Ġ// Ġact ĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= ĠGet OS Type UseCase ( property Provider ). get OS Type () ĊĊĠĠĠĠĠĠĠ Ġ// Ġassert ĊĠĠĠĠĠĠĠ ĠassertThat ( result ). isInstanceOf ( Result . Error :: class . java ) ĊĊĠĠĠĠĠĠĠ Ġval Ġexception Ġ= Ġresult . getError OrThrow (). exception ĊĠĠĠĠĠĠĠ ĠassertThat ( exception ). isInstanceOf ( Aut ok pass Exception :: class . java ) ĊĠĠĠĠĠĠĠ ĠassertThat ( exception . message ). isEqualTo ( Errors . FAILED _ TO _ DE TERM INE _ OS _ TYPE ) ĊĊĠĠĠĠĠĠĠ Ġverify Ġ{ Ġproperty Provider . getSystem Property ( PROPERTY _ OS _ NAME ) Ġ} ĊĠĠĠĠĠĠĠ Ġconfirm Verified () ĊĠĠĠ Ġ} Ċ }