Commit 4383349a authored by charles53681's avatar charles53681

commit blackJack

parents
Pipeline #299 canceled with stages
# Default ignored files
/shelf/
/workspace.xml
# Editor-based HTTP Client requests
/httpRequests/
# Datasource local storage ignored files
/dataSources/
/dataSources.local.xml
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="CompilerConfiguration">
<annotationProcessing>
<profile name="Maven default annotation processors profile" enabled="true">
<sourceOutputDir name="target/generated-sources/annotations" />
<sourceTestOutputDir name="target/generated-test-sources/test-annotations" />
<outputRelativeToContentRoot value="true" />
<module name="blackJackGame" />
</profile>
</annotationProcessing>
</component>
</project>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="Encoding">
<file url="file://$PROJECT_DIR$/src/main/java" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/src/main/resources" charset="UTF-8" />
</component>
</project>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="RemoteRepositoriesConfiguration">
<remote-repository>
<option name="id" value="central" />
<option name="name" value="Central Repository" />
<option name="url" value="https://repo.maven.apache.org/maven2" />
</remote-repository>
<remote-repository>
<option name="id" value="central" />
<option name="name" value="Maven Central repository" />
<option name="url" value="https://repo1.maven.org/maven2" />
</remote-repository>
<remote-repository>
<option name="id" value="jboss.community" />
<option name="name" value="JBoss Community repository" />
<option name="url" value="https://repository.jboss.org/nexus/content/repositories/public/" />
</remote-repository>
</component>
</project>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ExternalStorageConfigurationManager" enabled="true" />
<component name="MavenProjectsManager">
<option name="originalFiles">
<list>
<option value="$PROJECT_DIR$/pom.xml" />
</list>
</option>
</component>
<component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" default="true" project-jdk-name="1.8" project-jdk-type="JavaSDK">
<output url="file://$PROJECT_DIR$/out" />
</component>
</project>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="Palette2">
<group name="Swing">
<item class="com.intellij.uiDesigner.HSpacer" tooltip-text="Horizontal Spacer" icon="/com/intellij/uiDesigner/icons/hspacer.svg" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="1" hsize-policy="6" anchor="0" fill="1" />
</item>
<item class="com.intellij.uiDesigner.VSpacer" tooltip-text="Vertical Spacer" icon="/com/intellij/uiDesigner/icons/vspacer.svg" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="6" hsize-policy="1" anchor="0" fill="2" />
</item>
<item class="javax.swing.JPanel" icon="/com/intellij/uiDesigner/icons/panel.svg" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3" />
</item>
<item class="javax.swing.JScrollPane" icon="/com/intellij/uiDesigner/icons/scrollPane.svg" removable="false" auto-create-binding="false" can-attach-label="true">
<default-constraints vsize-policy="7" hsize-policy="7" anchor="0" fill="3" />
</item>
<item class="javax.swing.JButton" icon="/com/intellij/uiDesigner/icons/button.svg" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="3" anchor="0" fill="1" />
<initial-values>
<property name="text" value="Button" />
</initial-values>
</item>
<item class="javax.swing.JRadioButton" icon="/com/intellij/uiDesigner/icons/radioButton.svg" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="3" anchor="8" fill="0" />
<initial-values>
<property name="text" value="RadioButton" />
</initial-values>
</item>
<item class="javax.swing.JCheckBox" icon="/com/intellij/uiDesigner/icons/checkBox.svg" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="3" anchor="8" fill="0" />
<initial-values>
<property name="text" value="CheckBox" />
</initial-values>
</item>
<item class="javax.swing.JLabel" icon="/com/intellij/uiDesigner/icons/label.svg" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="0" anchor="8" fill="0" />
<initial-values>
<property name="text" value="Label" />
</initial-values>
</item>
<item class="javax.swing.JTextField" icon="/com/intellij/uiDesigner/icons/textField.svg" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
<preferred-size width="150" height="-1" />
</default-constraints>
</item>
<item class="javax.swing.JPasswordField" icon="/com/intellij/uiDesigner/icons/passwordField.svg" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
<preferred-size width="150" height="-1" />
</default-constraints>
</item>
<item class="javax.swing.JFormattedTextField" icon="/com/intellij/uiDesigner/icons/formattedTextField.svg" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
<preferred-size width="150" height="-1" />
</default-constraints>
</item>
<item class="javax.swing.JTextArea" icon="/com/intellij/uiDesigner/icons/textArea.svg" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
<preferred-size width="150" height="50" />
</default-constraints>
</item>
<item class="javax.swing.JTextPane" icon="/com/intellij/uiDesigner/icons/textPane.svg" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
<preferred-size width="150" height="50" />
</default-constraints>
</item>
<item class="javax.swing.JEditorPane" icon="/com/intellij/uiDesigner/icons/editorPane.svg" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
<preferred-size width="150" height="50" />
</default-constraints>
</item>
<item class="javax.swing.JComboBox" icon="/com/intellij/uiDesigner/icons/comboBox.svg" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="0" hsize-policy="2" anchor="8" fill="1" />
</item>
<item class="javax.swing.JTable" icon="/com/intellij/uiDesigner/icons/table.svg" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
<preferred-size width="150" height="50" />
</default-constraints>
</item>
<item class="javax.swing.JList" icon="/com/intellij/uiDesigner/icons/list.svg" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="6" hsize-policy="2" anchor="0" fill="3">
<preferred-size width="150" height="50" />
</default-constraints>
</item>
<item class="javax.swing.JTree" icon="/com/intellij/uiDesigner/icons/tree.svg" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
<preferred-size width="150" height="50" />
</default-constraints>
</item>
<item class="javax.swing.JTabbedPane" icon="/com/intellij/uiDesigner/icons/tabbedPane.svg" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3">
<preferred-size width="200" height="200" />
</default-constraints>
</item>
<item class="javax.swing.JSplitPane" icon="/com/intellij/uiDesigner/icons/splitPane.svg" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3">
<preferred-size width="200" height="200" />
</default-constraints>
</item>
<item class="javax.swing.JSpinner" icon="/com/intellij/uiDesigner/icons/spinner.svg" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1" />
</item>
<item class="javax.swing.JSlider" icon="/com/intellij/uiDesigner/icons/slider.svg" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1" />
</item>
<item class="javax.swing.JSeparator" icon="/com/intellij/uiDesigner/icons/separator.svg" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3" />
</item>
<item class="javax.swing.JProgressBar" icon="/com/intellij/uiDesigner/icons/progressbar.svg" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="0" fill="1" />
</item>
<item class="javax.swing.JToolBar" icon="/com/intellij/uiDesigner/icons/toolbar.svg" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="0" fill="1">
<preferred-size width="-1" height="20" />
</default-constraints>
</item>
<item class="javax.swing.JToolBar$Separator" icon="/com/intellij/uiDesigner/icons/toolbarSeparator.svg" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="0" anchor="0" fill="1" />
</item>
<item class="javax.swing.JScrollBar" icon="/com/intellij/uiDesigner/icons/scrollbar.svg" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="6" hsize-policy="0" anchor="0" fill="2" />
</item>
</group>
</component>
</project>
\ No newline at end of file
#Usamos la imagen jdk 8 como imagen base
FROM openjdk:8
COPY target/blackJackGame-1.0-SNAPSHOT.jar /demo.jar
CMD ["java","-jar","/demo.jar"]
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.example</groupId>
<artifactId>blackJackGame</artifactId>
<version>1.0-SNAPSHOT</version>
<properties>
<maven.compiler.source>8</maven.compiler.source>
<maven.compiler.target>8</maven.compiler.target>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.13.2</version>
</dependency>
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-core</artifactId>
<version>4.8.0</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<!-- Build an executable JAR -->
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>3.3.0</version>
<configuration>
<archive>
<manifest>
<mainClass>com.bytesw.Main</mainClass>
</manifest>
</archive>
</configuration>
</plugin>
</plugins>
</build>
</project>
\ No newline at end of file
package com.bytesw;
import com.bytesw.juego.Juego;
public class Main {
public static void main(String[] args) {
Juego juego = new Juego();
juego.jugar();
}
}
package com.bytesw.baraja;
import com.bytesw.baraja.cartas.Carta;
import com.bytesw.baraja.cartas.CartaFigura;
import com.bytesw.baraja.cartas.CartaNumero;
import java.util.ArrayList;
public class Baraja {
private ArrayList<Carta> cartas;
public Baraja() {
this.cartas = new ArrayList<>();
generarCartas();
}
public void generarCartas() {
generarCartasNumeros();
generarCartasFiguras();
}
private void generarCartasNumeros() {
final int MIN_VALOR = 2;
final int MAX_VALOR = 10;
Palo[] palos = Palo.values();
for (int p = 0; p < palos.length; p++) {
Palo paloActual = palos[p];
for (int i = MIN_VALOR; i <= MAX_VALOR; i++) {
this.cartas.add(new CartaNumero(i, paloActual));
}
}
}
private void generarCartasFiguras() {
char[] letras = {'A', 'J', 'Q', 'K'};
Palo[] palos = Palo.values();
for (int p = 0; p < palos.length; p++) {
Palo paloActual = palos[p];
for (int i = 0; i < letras.length; i++) {
char letraActual = letras[i];
this.cartas.add(new CartaFigura(letraActual, paloActual));
}
}
}
//obtener una carta aleatoria de la baraja y eliminarla del arreglo
public Carta obtenerCartaAleatoriaDeLaBaraja(){
Carta cartaEncontrada = null;
int numero = numeroAleatorioBaraja(numeroDeCartas());
cartaEncontrada = cartas.get(numero);
quitarCartaBaraja(cartaEncontrada);
return cartaEncontrada;
}
private int numeroAleatorioBaraja(int numeroDeCartas){
final int MIN_VALOR = 1;
int numero = (int)(Math.random() *
(((numeroDeCartas - 1) - MIN_VALOR) + 1)) + MIN_VALOR;
return numero;
}
public int numeroDeCartas(){
return cartas.size();
}
private void quitarCartaBaraja(Carta carta){
this.cartas.remove(carta);
}
}
package com.bytesw.baraja;
public enum Color {
ROJO,
NEGRO;
}
package com.bytesw.baraja;
public enum Palo {
ESPADAS(Color.NEGRO),
CORAZON(Color.ROJO),
DIAMANTE(Color.ROJO),
TREBOL(Color.NEGRO);
private Color color;
private Palo(Color color) {
this.color = color;
}
}
package com.bytesw.baraja.cartas;
import com.bytesw.baraja.Palo;
public abstract class Carta {
private Palo palo;
public Carta(Palo palo) {
this.palo = palo;
}
public Palo getPalo() {
return palo;
}
public void mostrar(){
System.out.println(getRepresentacion());
}
public abstract String getRepresentacion();
public abstract int getValor();
}
package com.bytesw.baraja.cartas;
import com.bytesw.baraja.Palo;
public class CartaFigura extends Carta{
private char letra;
public CartaFigura(char letra, Palo palo) {
super(palo);
this.letra = letra;
}
@Override
public String getRepresentacion() {
return letra + " de " + super.getPalo();
}
public char getLetra() {
return letra;
}
@Override
public int getValor() {
int valor=0;
if (getLetra()=='J' || getLetra()=='Q' || getLetra()=='K') {
valor = 10;
} else if (getLetra()=='A') {
valor = 1;
}
return valor;
}
}
package com.bytesw.baraja.cartas;
import com.bytesw.baraja.Palo;
public class CartaNumero extends Carta{
private int numero;
public CartaNumero(int numero, Palo palo) {
super(palo);
this.numero = numero;
}
@Override
public String getRepresentacion() {
return numero + " de " + super.getPalo();
}
@Override
public int getValor(){
return numero;
}
}
package com.bytesw.juego;
import com.bytesw.baraja.Baraja;
import com.bytesw.baraja.cartas.Carta;
public class Crupier {
private Mano mano;
private Baraja baraja;
public Crupier(Mano mano, Baraja baraja) {
this.mano = mano;
this.baraja = baraja;
}
//Obtener carta para darle al jugador
public Carta sacarCartaDeLaBaraja(){
return baraja.obtenerCartaAleatoriaDeLaBaraja();
}
//Crupier saca carta y la mete en la mano
public void ponerEnLaManoLaCarta(Carta carta){
mano.agregarCarta(carta);
}
//Verifica si el jugador supero el valor 21
public boolean superoElValor21(){
int suma= obtenerValorDeLaMano();
boolean verificar=false;
if (suma > 21) {
verificar=true;
}
return verificar;
}
//Obtiene el valor de la mano la suma
public int obtenerValorDeLaMano(){
return mano.sumarCartasEnLaMano();
}
}
package com.bytesw.juego;
public class HistoricoResultado {
private int apuesta;
private int ganancia;
private String juego;
public HistoricoResultado(int apuesta, int ganancia, String juego) {
this.apuesta = apuesta;
this.ganancia = ganancia;
this.juego = juego;
}
@Override
public String toString() {
String opcion="";
if (ganancia>0) {
opcion="ganancia";
}else{
opcion="perdiste";
}
return "HistoricoResultado{" +
"apuesta=" + apuesta +
", " + opcion +" = " + ganancia +
", juego='" + juego + '\'' +
'}';
}
}
This diff is collapsed.
package com.bytesw.juego;
import com.bytesw.baraja.cartas.Carta;
import java.util.ArrayList;
public class Jugador {
private String nombre;
private int saldoTotal;
private int apuesta; //La apuesta que hizo cuando inicio un juego
private int jugadas; //Numero de jugadas del jugador
private ArrayList<HistoricoResultado> historicoResultados;
private Mano mano;
public Jugador(String nombre) {
this.nombre = nombre;
historicoResultados= new ArrayList<>();
}
public void agregarMano(Mano mano){
this.mano= mano;
}
public void agregarHistorico(HistoricoResultado historicoResultado){
historicoResultados.add(historicoResultado);
}
public void obtenerHistoricos(){
for (HistoricoResultado historicoResultado : historicoResultados) {
System.out.println(historicoResultado.toString());
}
}
//Metodo que pone la carta que le dio el crupier en su mano
// Y le aumenta sus jugadas en 1
public void ponerEnLaManoLaCarta(Carta carta){
jugadas++;
mano.agregarCarta(carta);
}
//Verifica si el jugador supero el valor 21
public boolean superoElValor21(){
int suma= obtenerValorDeLaMano();
boolean verificar=false;
if (suma > 21) {
verificar=true;
}
return verificar;
}
//Obtiene el valor de la mano la suma
public int obtenerValorDeLaMano(){
return mano.sumarCartasEnLaMano();
}
public void sumarGanancia(int gananciaXJuego){
if (gananciaXJuego > 0) {
System.out.println("Ganaste: " + (gananciaXJuego));
} else {
System.out.println("Perdise: " + (gananciaXJuego));
}
setSaldoTotal(getSaldoTotal() + (gananciaXJuego));
}
public String getNombre(){
return nombre;
}
public int getJugadas(){
return jugadas;
}
public void setJugadas(int jugadas){
this.jugadas=jugadas;
}
public void setSaldoTotal(int saldoTotal) {
this.saldoTotal = saldoTotal;
}
public int getSaldoTotal() {
return saldoTotal;
}
public void setApuesta(int apuesta) {
this.apuesta = apuesta;
}
public int getApuesta() {
return apuesta;
}
}
package com.bytesw.juego;
import com.bytesw.baraja.cartas.Carta;
import java.util.ArrayList;
public class Mano {
private ArrayList<Carta> cartas;
public Mano(){
this.cartas = new ArrayList<>();
}
/*Metodo que agrega una carta a la lista de Cartas*/
public void agregarCarta(Carta carta){
cartas.add(carta);
}
/*Metodo que muestra las cartas agregadas en la mano del jugador o crupier*/
public void mostrarCartas(){
for(Carta carta: cartas){
carta.mostrar();
}
}
/*Obtiene la suma de las cartas en la mano del jugador o crupier*/
public int sumarCartasEnLaMano(){
int suma = 0;
for(int i = 0 ; i<cartas.size();i++){
if(cartas.get(i).getValor()==1){
final int valorAz=1;
final int valor2Az=11;
if( (suma+11) > 21){
suma += valorAz;
} else if ((suma+11) <= 21) {
suma += valor2Az;
}
}else{
suma += cartas.get(i).getValor();
}
}
return suma;
}
}
package com.bytesw;
import com.bytesw.juego.Crupier;
import com.bytesw.juego.Juego;
import com.bytesw.juego.Jugador;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.InjectMocks;
import org.mockito.Mock;
import org.mockito.junit.MockitoJUnitRunner;
import java.io.ByteArrayOutputStream;
import java.io.PrintStream;
import java.util.Scanner;
import static org.junit.Assert.assertEquals;
import static org.mockito.Mockito.when;
@RunWith(MockitoJUnitRunner.class)
public class BlackJackTest {
private ByteArrayOutputStream out;
@InjectMocks
private Juego main = new Juego();
@Mock
Scanner scanner;
@Mock
Jugador jugador;
@Mock
Crupier crupier;
@Before
public void setup() {
out = new ByteArrayOutputStream();
System.setOut(new PrintStream(out));
}
@Test
public void cuandoEscribeNombreEntoncesPreguntaSiQuiereJugar(){
when(scanner.nextLine()).thenReturn("Charles");
main.jugar();
Assert.assertTrue(out.toString().contains("Si quieres empezar a jugar "+
"escribe: jugar"));
}
@Test
public void testCuandoIngresaSaldo0MuestraSaldoNoSuficiente(){
when(scanner.nextLine()).thenReturn("Charles").thenReturn("jugar").
thenReturn("0");
main.jugar();
Assert.assertTrue(out.toString().contains("SALDO NO SUFICIENTE"));
}
@Test
public void testCuandoEscribeSaldoMuestraElSaldoDisponible(){
when(scanner.nextLine()).thenReturn("Charles").thenReturn("jugar").
thenReturn("200").thenReturn("saldo").thenReturn("no");
main.jugar();
Assert.assertTrue(out.toString().contains("Tu saldo es: 200"));
}
@Test
public void testCuandoEscribeHistoricoMuestraLosHistoricos(){
when(scanner.nextLine()).thenReturn("Charles").thenReturn("jugar").
thenReturn("200").thenReturn("historico").thenReturn("no");
main.jugar();
Assert.assertTrue(out.toString().contains("Mostrando historico de " +
"jugadas..."));
}
@Test
public void testCuandoEscribeNivelesMuestraLosNivelesDisponibles(){
when(scanner.nextLine()).thenReturn("Charles").thenReturn("jugar").
thenReturn("200").thenReturn("niveles");
main.jugar();
Assert.assertTrue(out.toString().contains("***** Niveles Disponibles " +
"*****"));
}
@Test
public void testCuandoIngresaAlNivel2MuestraBlackJack(){
when(scanner.nextLine()).thenReturn("Charles").thenReturn("jugar").
thenReturn("200").thenReturn("niveles").thenReturn("Nivel 2");
main.jugar();
Assert.assertTrue(out.toString().contains("*****BLACKJACK*****"));
}
@Test
public void testCuandoIngresaAlNivel2PideLaApuesta(){
when(scanner.nextLine()).thenReturn("Charles").thenReturn("jugar").
thenReturn("200").thenReturn("niveles").thenReturn("Nivel 2");
main.jugar();
Assert.assertTrue(out.toString().contains("Para empezar ingrese su " +
"apuesta"));
}
@Test
public void testGanaJugador(){
when(jugador.obtenerValorDeLaMano()).thenReturn(18);
when(crupier.obtenerValorDeLaMano()).thenReturn(11);
assertEquals("Gano el Jugador!",main.encontrarGanadorBlackJack());
}
@Test
public void testGanaCrupier(){
when(jugador.obtenerValorDeLaMano()).thenReturn(18);
when(crupier.obtenerValorDeLaMano()).thenReturn(20);
assertEquals("Gano el Crupier!",main.encontrarGanadorBlackJack());
}
@Test
public void testEmpatan(){
when(jugador.obtenerValorDeLaMano()).thenReturn(20);
when(crupier.obtenerValorDeLaMano()).thenReturn(20);
assertEquals("Empataron nadie gano",main.encontrarGanadorBlackJack());
}
@Test
public void testEmpatanCon21(){
when(jugador.obtenerValorDeLaMano()).thenReturn(21);
when(crupier.obtenerValorDeLaMano()).thenReturn(21);
assertEquals("Empataron nadie gano",main.encontrarGanadorBlackJack());
}
@Test
public void testJugadorConsigueBlackJack(){
when(jugador.getJugadas()).thenReturn(2);
when(jugador.obtenerValorDeLaMano()).thenReturn(21);
when(crupier.obtenerValorDeLaMano()).thenReturn(5);
assertEquals("BlackJack --> Paga por 3",main.encontrarGanadorBlackJack());
}
@Test
public void testJugadorConsigueBlackJackPeroEmpata(){
when(jugador.getJugadas()).thenReturn(2);
when(jugador.obtenerValorDeLaMano()).thenReturn(21);
when(crupier.obtenerValorDeLaMano()).thenReturn(21);
assertEquals("Empataron nadie gano",main.encontrarGanadorBlackJack());
}
@Test
public void testPierdeElCrupierYGanaElJugador(){
when(jugador.obtenerValorDeLaMano()).thenReturn(12);
when(crupier.obtenerValorDeLaMano()).thenReturn(23);
assertEquals("Gano el Jugador!",main.encontrarGanadorBlackJack());
}
@Test
public void testPierdeElJuadorYGanaElCrupier(){
when(jugador.obtenerValorDeLaMano()).thenReturn(25);
when(crupier.obtenerValorDeLaMano()).thenReturn(20);
assertEquals("Gano el Crupier!",main.encontrarGanadorBlackJack());
}
//Pierden los dos NO PUEDE PASAR
@Test
public void testPierdenLosDos(){
when(jugador.obtenerValorDeLaMano()).thenReturn(23);
when(crupier.obtenerValorDeLaMano()).thenReturn(28);
assertEquals("Perdieron los dos",main.encontrarGanadorBlackJack());
}
}
package com.bytesw.juego;
import static org.mockito.Mockito.*;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.InjectMocks;
import org.mockito.Mock;
import org.mockito.junit.MockitoJUnitRunner;
import java.io.ByteArrayOutputStream;
import java.io.PrintStream;
import static org.junit.Assert.assertEquals;
@RunWith(MockitoJUnitRunner.class)
public class JugadorTest {
@InjectMocks
Jugador jugador = new Jugador("Charles");
@Mock
Mano mano = new Mano();
private ByteArrayOutputStream out;
@Before
public void setup() {
out = new ByteArrayOutputStream();
System.setOut(new PrintStream(out));
}
@Test
public void testObtenerValorDeLaMano() {
System.out.println("Probrando la suma del valor de la mano");
when(mano.sumarCartasEnLaMano()).thenReturn(20);
assertEquals(20,jugador.obtenerValorDeLaMano());
}
@Test
public void superoElValor21() {
System.out.println("Probrando si paso 21 la suma de su mano");
when(mano.sumarCartasEnLaMano()).thenReturn(22);
assertEquals(true,jugador.superoElValor21());
}
}
\ No newline at end of file
mock-maker-inline
\ No newline at end of file
artifactId=blackJackGame
groupId=org.example
version=1.0-SNAPSHOT
com/bytesw/baraja/Baraja.class
com/bytesw/baraja/Palo.class
com/bytesw/juego/Juego.class
com/bytesw/juego/Crupier.class
com/bytesw/Main.class
com/bytesw/baraja/cartas/Carta.class
com/bytesw/baraja/cartas/CartaFigura.class
com/bytesw/baraja/cartas/CartaNumero.class
com/bytesw/juego/Mano.class
com/bytesw/juego/Jugador.class
com/bytesw/baraja/Color.class
com/bytesw/juego/HistoricoResultado.class
/home/charles/Documents/EXAMEN/blackJackGame/src/main/java/com/bytesw/baraja/Baraja.java
/home/charles/Documents/EXAMEN/blackJackGame/src/main/java/com/bytesw/juego/HistoricoResultado.java
/home/charles/Documents/EXAMEN/blackJackGame/src/main/java/com/bytesw/juego/Crupier.java
/home/charles/Documents/EXAMEN/blackJackGame/src/main/java/com/bytesw/baraja/Color.java
/home/charles/Documents/EXAMEN/blackJackGame/src/main/java/com/bytesw/baraja/Palo.java
/home/charles/Documents/EXAMEN/blackJackGame/src/main/java/com/bytesw/juego/Juego.java
/home/charles/Documents/EXAMEN/blackJackGame/src/main/java/com/bytesw/Main.java
/home/charles/Documents/EXAMEN/blackJackGame/src/main/java/com/bytesw/baraja/cartas/CartaNumero.java
/home/charles/Documents/EXAMEN/blackJackGame/src/main/java/com/bytesw/juego/Jugador.java
/home/charles/Documents/EXAMEN/blackJackGame/src/main/java/com/bytesw/baraja/cartas/Carta.java
/home/charles/Documents/EXAMEN/blackJackGame/src/main/java/com/bytesw/juego/Mano.java
/home/charles/Documents/EXAMEN/blackJackGame/src/main/java/com/bytesw/baraja/cartas/CartaFigura.java
com/bytesw/juego/JugadorTest.class
com/bytesw/BlackJackTest.class
/home/charles/Documents/EXAMEN/blackJackGame/src/test/java/com/bytesw/juego/JugadorTest.java
/home/charles/Documents/EXAMEN/blackJackGame/src/test/java/com/bytesw/BlackJackTest.java
<?xml version="1.0" encoding="UTF-8" ?>
<testsuite tests="16" failures="0" name="com.bytesw.BlackJackTest" time="0.219" errors="0" skipped="0">
<properties>
<property name="idea.version" value="2022.3"/>
<property name="java.runtime.name" value="OpenJDK Runtime Environment"/>
<property name="sun.boot.library.path" value="/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/amd64"/>
<property name="java.vm.version" value="25.352-b08"/>
<property name="java.vm.vendor" value="Private Build"/>
<property name="maven.multiModuleProjectDirectory" value="/home/charles/Documents/EXAMEN/blackJackGame"/>
<property name="java.vendor.url" value="http://java.oracle.com/"/>
<property name="path.separator" value=":"/>
<property name="guice.disable.misplaced.annotation.check" value="true"/>
<property name="java.vm.name" value="OpenJDK 64-Bit Server VM"/>
<property name="file.encoding.pkg" value="sun.io"/>
<property name="user.country" value="US"/>
<property name="sun.java.launcher" value="SUN_STANDARD"/>
<property name="sun.os.patch.level" value="unknown"/>
<property name="java.vm.specification.name" value="Java Virtual Machine Specification"/>
<property name="user.dir" value="/home/charles/Documents/EXAMEN/blackJackGame"/>
<property name="java.runtime.version" value="1.8.0_352-8u352-ga-1~20.04-b08"/>
<property name="java.awt.graphicsenv" value="sun.awt.X11GraphicsEnvironment"/>
<property name="java.endorsed.dirs" value="/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/endorsed"/>
<property name="os.arch" value="amd64"/>
<property name="java.io.tmpdir" value="/tmp"/>
<property name="line.separator" value="
"/>
<property name="java.vm.specification.vendor" value="Oracle Corporation"/>
<property name="os.name" value="Linux"/>
<property name="maven.ext.class.path" value="/home/charles/idea/plugins/maven/lib/maven-event-listener.jar"/>
<property name="classworlds.conf" value="/home/charles/idea/plugins/maven/lib/maven3/bin/m2.conf"/>
<property name="sun.jnu.encoding" value="UTF-8"/>
<property name="java.library.path" value="/usr/java/packages/lib/amd64:/usr/lib/x86_64-linux-gnu/jni:/lib/x86_64-linux-gnu:/usr/lib/x86_64-linux-gnu:/usr/lib/jni:/lib:/usr/lib"/>
<property name="jansi.passthrough" value="true"/>
<property name="maven.conf" value="/home/charles/idea/plugins/maven/lib/maven3/conf"/>
<property name="java.specification.name" value="Java Platform API Specification"/>
<property name="java.class.version" value="52.0"/>
<property name="sun.management.compiler" value="HotSpot 64-Bit Tiered Compilers"/>
<property name="os.version" value="5.15.0-56-generic"/>
<property name="user.home" value="/home/charles"/>
<property name="user.timezone" value="America/Lima"/>
<property name="java.awt.printerjob" value="sun.print.PSPrinterJob"/>
<property name="java.specification.version" value="1.8"/>
<property name="file.encoding" value="UTF-8"/>
<property name="user.name" value="charles"/>
<property name="java.class.path" value="/home/charles/idea/plugins/maven/lib/maven3/boot/plexus-classworlds-2.6.0.jar:/home/charles/idea/plugins/maven/lib/maven3/boot/plexus-classworlds.license:/home/charles/idea/lib/idea_rt.jar"/>
<property name="java.vm.specification.version" value="1.8"/>
<property name="sun.arch.data.model" value="64"/>
<property name="java.home" value="/usr/lib/jvm/java-8-openjdk-amd64/jre"/>
<property name="sun.java.command" value="org.codehaus.classworlds.Launcher -Didea.version=2022.3 package"/>
<property name="java.specification.vendor" value="Oracle Corporation"/>
<property name="user.language" value="en"/>
<property name="awt.toolkit" value="sun.awt.X11.XToolkit"/>
<property name="java.vm.info" value="mixed mode"/>
<property name="java.version" value="1.8.0_352"/>
<property name="java.ext.dirs" value="/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/ext:/usr/java/packages/lib/ext"/>
<property name="securerandom.source" value="file:/dev/./urandom"/>
<property name="sun.boot.class.path" value="/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/resources.jar:/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/rt.jar:/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/sunrsasign.jar:/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/jsse.jar:/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/jce.jar:/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/charsets.jar:/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/jfr.jar:/usr/lib/jvm/java-8-openjdk-amd64/jre/classes"/>
<property name="java.vendor" value="Private Build"/>
<property name="java.specification.maintenance.version" value="4"/>
<property name="maven.home" value="/home/charles/idea/plugins/maven/lib/maven3"/>
<property name="file.separator" value="/"/>
<property name="java.vendor.url.bug" value="http://bugreport.sun.com/bugreport/"/>
<property name="sun.cpu.endian" value="little"/>
<property name="sun.io.unicode.encoding" value="UnicodeLittle"/>
<property name="sun.desktop" value="gnome"/>
<property name="sun.cpu.isalist" value=""/>
</properties>
<testcase classname="com.bytesw.BlackJackTest" name="testEmpatan" time="0.181"/>
<testcase classname="com.bytesw.BlackJackTest" name="testCuandoEscribeNivelesMuestraLosNivelesDisponibles" time="0.009"/>
<testcase classname="com.bytesw.BlackJackTest" name="testEmpatanCon21" time="0.003"/>
<testcase classname="com.bytesw.BlackJackTest" name="testCuandoEscribeHistoricoMuestraLosHistoricos" time="0.003"/>
<testcase classname="com.bytesw.BlackJackTest" name="testCuandoIngresaSaldo0MuestraSaldoNoSuficiente" time="0.003"/>
<testcase classname="com.bytesw.BlackJackTest" name="testPierdenLosDos" time="0.001"/>
<testcase classname="com.bytesw.BlackJackTest" name="testCuandoIngresaAlNivel2PideLaApuesta" time="0.003"/>
<testcase classname="com.bytesw.BlackJackTest" name="testPierdeElCrupierYGanaElJugador" time="0.003"/>
<testcase classname="com.bytesw.BlackJackTest" name="testPierdeElJuadorYGanaElCrupier" time="0.002"/>
<testcase classname="com.bytesw.BlackJackTest" name="testGanaCrupier" time="0.001"/>
<testcase classname="com.bytesw.BlackJackTest" name="cuandoEscribeNombreEntoncesPreguntaSiQuiereJugar" time="0.002"/>
<testcase classname="com.bytesw.BlackJackTest" name="testCuandoIngresaAlNivel2MuestraBlackJack" time="0.001"/>
<testcase classname="com.bytesw.BlackJackTest" name="testJugadorConsigueBlackJackPeroEmpata" time="0.002"/>
<testcase classname="com.bytesw.BlackJackTest" name="testCuandoEscribeSaldoMuestraElSaldoDisponible" time="0.001"/>
<testcase classname="com.bytesw.BlackJackTest" name="testJugadorConsigueBlackJack" time="0.002"/>
<testcase classname="com.bytesw.BlackJackTest" name="testGanaJugador" time="0.002"/>
</testsuite>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8" ?>
<testsuite tests="2" failures="0" name="com.bytesw.juego.JugadorTest" time="0.178" errors="0" skipped="0">
<properties>
<property name="idea.version" value="2022.3"/>
<property name="java.runtime.name" value="OpenJDK Runtime Environment"/>
<property name="sun.boot.library.path" value="/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/amd64"/>
<property name="java.vm.version" value="25.352-b08"/>
<property name="java.vm.vendor" value="Private Build"/>
<property name="maven.multiModuleProjectDirectory" value="/home/charles/Documents/EXAMEN/blackJackGame"/>
<property name="java.vendor.url" value="http://java.oracle.com/"/>
<property name="path.separator" value=":"/>
<property name="guice.disable.misplaced.annotation.check" value="true"/>
<property name="java.vm.name" value="OpenJDK 64-Bit Server VM"/>
<property name="file.encoding.pkg" value="sun.io"/>
<property name="user.country" value="US"/>
<property name="sun.java.launcher" value="SUN_STANDARD"/>
<property name="sun.os.patch.level" value="unknown"/>
<property name="java.vm.specification.name" value="Java Virtual Machine Specification"/>
<property name="user.dir" value="/home/charles/Documents/EXAMEN/blackJackGame"/>
<property name="java.runtime.version" value="1.8.0_352-8u352-ga-1~20.04-b08"/>
<property name="java.awt.graphicsenv" value="sun.awt.X11GraphicsEnvironment"/>
<property name="java.endorsed.dirs" value="/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/endorsed"/>
<property name="os.arch" value="amd64"/>
<property name="java.io.tmpdir" value="/tmp"/>
<property name="line.separator" value="
"/>
<property name="java.vm.specification.vendor" value="Oracle Corporation"/>
<property name="os.name" value="Linux"/>
<property name="maven.ext.class.path" value="/home/charles/idea/plugins/maven/lib/maven-event-listener.jar"/>
<property name="classworlds.conf" value="/home/charles/idea/plugins/maven/lib/maven3/bin/m2.conf"/>
<property name="sun.jnu.encoding" value="UTF-8"/>
<property name="java.library.path" value="/usr/java/packages/lib/amd64:/usr/lib/x86_64-linux-gnu/jni:/lib/x86_64-linux-gnu:/usr/lib/x86_64-linux-gnu:/usr/lib/jni:/lib:/usr/lib"/>
<property name="jansi.passthrough" value="true"/>
<property name="maven.conf" value="/home/charles/idea/plugins/maven/lib/maven3/conf"/>
<property name="java.specification.name" value="Java Platform API Specification"/>
<property name="java.class.version" value="52.0"/>
<property name="sun.management.compiler" value="HotSpot 64-Bit Tiered Compilers"/>
<property name="os.version" value="5.15.0-56-generic"/>
<property name="user.home" value="/home/charles"/>
<property name="user.timezone" value="America/Lima"/>
<property name="java.awt.printerjob" value="sun.print.PSPrinterJob"/>
<property name="java.specification.version" value="1.8"/>
<property name="file.encoding" value="UTF-8"/>
<property name="user.name" value="charles"/>
<property name="java.class.path" value="/home/charles/idea/plugins/maven/lib/maven3/boot/plexus-classworlds-2.6.0.jar:/home/charles/idea/plugins/maven/lib/maven3/boot/plexus-classworlds.license:/home/charles/idea/lib/idea_rt.jar"/>
<property name="java.vm.specification.version" value="1.8"/>
<property name="sun.arch.data.model" value="64"/>
<property name="java.home" value="/usr/lib/jvm/java-8-openjdk-amd64/jre"/>
<property name="sun.java.command" value="org.codehaus.classworlds.Launcher -Didea.version=2022.3 package"/>
<property name="java.specification.vendor" value="Oracle Corporation"/>
<property name="user.language" value="en"/>
<property name="awt.toolkit" value="sun.awt.X11.XToolkit"/>
<property name="java.vm.info" value="mixed mode"/>
<property name="java.version" value="1.8.0_352"/>
<property name="java.ext.dirs" value="/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/ext:/usr/java/packages/lib/ext"/>
<property name="securerandom.source" value="file:/dev/./urandom"/>
<property name="sun.boot.class.path" value="/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/resources.jar:/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/rt.jar:/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/sunrsasign.jar:/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/jsse.jar:/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/jce.jar:/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/charsets.jar:/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/jfr.jar:/usr/lib/jvm/java-8-openjdk-amd64/jre/classes"/>
<property name="java.vendor" value="Private Build"/>
<property name="java.specification.maintenance.version" value="4"/>
<property name="maven.home" value="/home/charles/idea/plugins/maven/lib/maven3"/>
<property name="file.separator" value="/"/>
<property name="java.vendor.url.bug" value="http://bugreport.sun.com/bugreport/"/>
<property name="sun.cpu.endian" value="little"/>
<property name="sun.io.unicode.encoding" value="UnicodeLittle"/>
<property name="sun.desktop" value="gnome"/>
<property name="sun.cpu.isalist" value=""/>
</properties>
<testcase classname="com.bytesw.juego.JugadorTest" name="superoElValor21" time="0.178"/>
<testcase classname="com.bytesw.juego.JugadorTest" name="testObtenerValorDeLaMano" time="0"/>
</testsuite>
\ No newline at end of file
-------------------------------------------------------------------------------
Test set: com.bytesw.BlackJackTest
-------------------------------------------------------------------------------
Tests run: 16, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.221 sec
-------------------------------------------------------------------------------
Test set: com.bytesw.juego.JugadorTest
-------------------------------------------------------------------------------
Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.774 sec
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment