Dojo do RSJUG - 30/04/2017 #dojo
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
class Jokenpo{ | |
def banzai(j1, j2) | |
{ | |
if (j1 == j2) return "empate" | |
[ | |
pedra: "tesoura", | |
papel: "pedra", | |
tesoura :"papel" | |
].find { k, v -> | |
[j1, j2].contains(k) && [j1, j2].contains(v) | |
}.key | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import spock.lang.Specification | |
import spock.lang.Unroll | |
class JokenpoTest extends Specification{ | |
def "tesoura ganha do papel"() | |
{ | |
given: | |
def jogador1 = "tesoura" | |
def jogador2 = "papel" | |
def jokenpo = new Jokenpo() | |
when: | |
def resultado = jokenpo.banzai(jogador1,jogador2) | |
then: | |
resultado == "tesoura" | |
} | |
def "papel perde da tesoura"() | |
{ | |
given: | |
def jogador1 = "papel" | |
def jogador2 = "tesoura" | |
def jokenpo = new Jokenpo() | |
when: | |
def resultado = jokenpo.banzai(jogador1,jogador2) | |
then: | |
"tesoura" == resultado | |
} | |
def "pedra perde do papel"() | |
{ | |
given: | |
def jogador1 = "pedra" | |
def jogador2 = "papel" | |
def jokenpo = new Jokenpo() | |
when: | |
def resultado = jokenpo.banzai(jogador1,jogador2) | |
then: | |
"papel" == resultado | |
} | |
def "pedra ganha de tesoura"() | |
{ | |
given: | |
def jogador1 = "pedra" | |
def jogador2 = "tesoura" | |
def jokenpo = new Jokenpo() | |
when: | |
def resultado = jokenpo.banzai(jogador1,jogador2) | |
then: | |
"pedra" == resultado | |
} | |
def "pedra empata com pedra"() | |
{ | |
given: | |
def jogador1 = "pedra" | |
def jogador2 = "pedra" | |
def jokenpo = new Jokenpo() | |
when: | |
def resultado = jokenpo.banzai(jogador1,jogador2) | |
then: | |
"empate" == resultado | |
} | |
@Unroll | |
def "tabela (#jogador1 : #jogador2 = #esperado)"() | |
{ | |
given: | |
def jokenpo = new Jokenpo() | |
when: | |
def resultado = jokenpo.banzai(jogador1,jogador2) | |
then: | |
resultado == esperado | |
where: | |
jogador1 | jogador2 | esperado | |
"pedra" | "pedra" | "empate" | |
"papel" | "papel" | "empate" | |
"tesoura"|"tesoura" | "empate" | |
"pedra" | "papel" | "papel" | |
"papel" | "pedra" | "papel" | |
"pedra" | "tesoura"| "pedra" | |
"tesoura"| "pedra" | "pedra" | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment