diff --git a/pom.xml b/pom.xml index c6ec0cc8..6fb2cc76 100644 --- a/pom.xml +++ b/pom.xml @@ -15,5 +15,10 @@ 4.12 test + + org.apache.commons + commons-lang3 + 3.7 + diff --git a/src/main/java/io/zipcoder/casino/Card.java b/src/main/java/io/zipcoder/casino/Card.java new file mode 100644 index 00000000..7a31700f --- /dev/null +++ b/src/main/java/io/zipcoder/casino/Card.java @@ -0,0 +1,25 @@ +package io.zipcoder.casino; + +public class Card { + + private final Rank rank; + private final Suit suit; + + public Card(Rank rank, Suit suit) { + this.rank = rank; + this.suit = suit; + } + + public Rank getRank() { + return rank; + } + + public Suit getSuit() { + return suit; + } + + public String toString() { + return rank + " of " + suit; + } + +} diff --git a/src/main/java/io/zipcoder/casino/CardGameInterface.java b/src/main/java/io/zipcoder/casino/CardGameInterface.java new file mode 100644 index 00000000..a40093f2 --- /dev/null +++ b/src/main/java/io/zipcoder/casino/CardGameInterface.java @@ -0,0 +1,10 @@ +package io.zipcoder.casino; + +import java.util.ArrayList; + +public interface CardGameInterface { + ArrayList deck = new ArrayList(); + + int checkNumberOfCards(); + void dealCards(); +} diff --git a/src/main/java/io/zipcoder/casino/DiceGameInterface.java b/src/main/java/io/zipcoder/casino/DiceGameInterface.java new file mode 100644 index 00000000..f32fc2e6 --- /dev/null +++ b/src/main/java/io/zipcoder/casino/DiceGameInterface.java @@ -0,0 +1,6 @@ +package io.zipcoder.casino; + +public interface DiceGameInterface { + void rollDice(); + int getNumberOfDice(); +} diff --git a/src/main/java/io/zipcoder/casino/GamblingInterface.java b/src/main/java/io/zipcoder/casino/GamblingInterface.java new file mode 100644 index 00000000..c19778e7 --- /dev/null +++ b/src/main/java/io/zipcoder/casino/GamblingInterface.java @@ -0,0 +1,11 @@ +package io.zipcoder.casino; + +import java.util.Map; + +public interface GamblingInterface { + int checkChipAmount(); + void placeBet(int betAmount); + int getAnte(); + void bootPlayerFromGame(); + int chekcPot(); +} diff --git a/src/main/java/io/zipcoder/casino/Game.java b/src/main/java/io/zipcoder/casino/Game.java new file mode 100644 index 00000000..3577ddc0 --- /dev/null +++ b/src/main/java/io/zipcoder/casino/Game.java @@ -0,0 +1,7 @@ +package io.zipcoder.casino; + +public abstract class Game implements GameInterface{ + public abstract void start(); + public abstract void end(); + +} diff --git a/src/main/java/io/zipcoder/casino/GameInterface.java b/src/main/java/io/zipcoder/casino/GameInterface.java new file mode 100644 index 00000000..3d71056d --- /dev/null +++ b/src/main/java/io/zipcoder/casino/GameInterface.java @@ -0,0 +1,6 @@ +package io.zipcoder.casino; + +public interface GameInterface { + void start(); + void end(); +} diff --git a/src/main/java/io/zipcoder/casino/Rank.java b/src/main/java/io/zipcoder/casino/Rank.java new file mode 100644 index 00000000..fe546b9c --- /dev/null +++ b/src/main/java/io/zipcoder/casino/Rank.java @@ -0,0 +1,35 @@ +package io.zipcoder.casino; + +public enum Rank { + + DEUCE(2,"2"), + THREE(3,"3"), + FOUR(4,"4"), + FIVE(5,"5"), + SIX(6,"6"), + SEVEN(7,"7"), + EIGHT(8,"8"), + NINE(9,"9"), + TEN(10,"10"), + JACK(11,"J"), + QUEEN(12,"Q"), + KING(13,"K"), + ACE(1,"A"); + + final int rankValue; + final String rankSymbol; + + Rank(int rankValue, String rankSymbol) { + this.rankValue = rankValue; + this.rankSymbol = rankSymbol; + } + + public int toInt() { + return this.rankValue; + } + + public String toString() { + return this.rankSymbol; + } + +} diff --git a/src/main/java/io/zipcoder/casino/Suit.java b/src/main/java/io/zipcoder/casino/Suit.java new file mode 100644 index 00000000..f1e981e4 --- /dev/null +++ b/src/main/java/io/zipcoder/casino/Suit.java @@ -0,0 +1,26 @@ +package io.zipcoder.casino; + +public enum Suit { + + CLUBS("clubs", "\u2663"), + DIAMONDS("diamonds", "\u2666"), + HEARTS("hearts", "\u2665"), + SPADES("spades", "\u2660"); + + final String suitWord; + final String suitSymbol; + + Suit(String suitWord, String suitSymbol) { + this.suitWord = suitWord; + this.suitSymbol = suitSymbol; + } + + public String toString() { + return this.suitWord; + } + + public String toSymbol() { + return this.suitSymbol; + } + +} diff --git a/src/test/java/io/zipcoder/casino/CardTest.java b/src/test/java/io/zipcoder/casino/CardTest.java new file mode 100644 index 00000000..f9c756d8 --- /dev/null +++ b/src/test/java/io/zipcoder/casino/CardTest.java @@ -0,0 +1,71 @@ +package io.zipcoder.casino; + +import org.junit.Assert; +import org.junit.Test; +import org.junit.Before; + +public class CardTest { + + private Card card; + + @Test + public void CardConstructorRankPositiveTest() { + + // Given + Rank expectedRank = Rank.DEUCE; + Suit expectedSuit = Suit.CLUBS; + Card card = new Card(Rank.DEUCE, Suit.CLUBS); + + // When + Rank actualRank = card.getRank(); + Suit actualSuit = card.getSuit(); + + // Then + Assert.assertEquals(expectedRank, actualRank); + Assert.assertEquals(expectedSuit, actualSuit); + } + + @Test + public void getRankPositiveTest() { + + // Given + Rank expectedRank = Rank.SEVEN; + Card card = new Card(Rank.SEVEN, Suit.SPADES); + + // When + Rank actualRank = card.getRank(); + + // Then + Assert.assertEquals(expectedRank, actualRank); + } + + @Test + public void getSuitPositiveTest() { + + // Given + Suit expectedSuit = Suit.DIAMONDS; + Card card = new Card(Rank.EIGHT, Suit.DIAMONDS); + + // When + Suit actualSuit = card.getSuit(); + + // Then + Assert.assertEquals(expectedSuit, actualSuit); + + } + + @Test + public void toStringPositiveTest() { + + // Given + String expectedString = "J of hearts"; + Card card = new Card(Rank.JACK, Suit.HEARTS); + + // When + String actualString = card.toString(); + + // Then + Assert.assertEquals(expectedString, actualString); + } + +} \ No newline at end of file diff --git a/src/test/java/io/zipcoder/casino/CasinoTest.java b/src/test/java/io/zipcoder/casino/CasinoTest.java index e9286523..eaed2c04 100644 --- a/src/test/java/io/zipcoder/casino/CasinoTest.java +++ b/src/test/java/io/zipcoder/casino/CasinoTest.java @@ -1,5 +1,10 @@ package io.zipcoder.casino; +import org.junit.Assert; +import org.junit.Test; +import org.junit.Before; public class CasinoTest { + + } diff --git a/src/test/java/io/zipcoder/casino/RankTest.java b/src/test/java/io/zipcoder/casino/RankTest.java new file mode 100644 index 00000000..42f2011e --- /dev/null +++ b/src/test/java/io/zipcoder/casino/RankTest.java @@ -0,0 +1,41 @@ +package io.zipcoder.casino; + +import org.junit.Assert; +import org.junit.Test; +import org.junit.Before; + +public class RankTest { + + private Card card; + + @Test + public void RanktoIntTest() { + + // Given + int expectedRankValue = 3; + Card card = new Card(Rank.THREE, Suit.HEARTS); + + // When + int actualRankValue = card.getRank().toInt(); + + // Then + Assert.assertEquals(expectedRankValue, actualRankValue); + } + + @Test + public void RanktoStringTest() { + + // Given + String expectedRankSymbol = "3"; + Card card = new Card(Rank.THREE, Suit.HEARTS); + + // When + String actualRankSymbol = card.getRank().toString(); + + // Then + Assert.assertEquals(expectedRankSymbol, actualRankSymbol); + } + + + +} diff --git a/src/test/java/io/zipcoder/casino/SuitTest.java b/src/test/java/io/zipcoder/casino/SuitTest.java new file mode 100644 index 00000000..862acdd4 --- /dev/null +++ b/src/test/java/io/zipcoder/casino/SuitTest.java @@ -0,0 +1,38 @@ +package io.zipcoder.casino; + +import org.junit.Assert; +import org.junit.Test; +import org.junit.Before; + +public class SuitTest { + + private Card card; + + @Test + public void SuitToStringTest() { + + // Given + String expectedSuitWord = "clubs"; + Card card = new Card(Rank.NINE, Suit.CLUBS); + + // When + String actualSuitWord = card.getSuit().toString(); + + // Then + Assert.assertEquals(expectedSuitWord, actualSuitWord); + } + + @Test + public void SuitToSymbolTest() { + + // Given + String expectedSuitSymbol = "\u2663"; + Card card = new Card(Rank.NINE, Suit.CLUBS); + + // When + String actualSuitSymbol = card.getSuit().toSymbol(); + + // Then + Assert.assertEquals(expectedSuitSymbol, actualSuitSymbol); + } +} \ No newline at end of file