Jak używać makiet z Wzorem ciast
Mam następującą klasę:
class LinkUserService() {
//** cake pattern **
oauthProvider: OAuthProvider =>
//******************
def isUserLinked(userId: String, service: String) = {
val cred = oauthProvider.loadCredential(userId)
cred != null
}
def linkUserAccount(userId: String, service: String): (String, Option[String]) = {
if (isUserLinked(userId, service)) {
("SERVICE_LINKED", None)
} else {
val authUrl = oauthProvider.newAuthorizationUrl
("SERVICE_NOT_LINKED", Some(authUrl))
}
}
def setLinkAuthToken(userId: String, service:String, token:String):String = {
oauthProvider.createAndStoreCredential(userId, token)
}
}
Zazwyczaj używałbym tej klasy w produkcji w ten sposób:
val linkService = LinkUserService with GoogleOAuthProvider
Jeśli chodzi o testowanie, chcę zastąpićoauthProvider
z próbnym takim, który został przeszkolony przez mój test jednostki, aby odpowiedzieć tak:oauthProvider.loadCredential("nobody") returns null
. czy to możliwe? Jeśli tak, w jaki sposób mogę skonfigurować test jednostkowy, aby to zrobić?