Newer
Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
package model
import org.assertj.core.api.Assertions.assertThat
import org.junit.jupiter.api.Test
internal class DeckTest {
@Test
fun addBelow() {
val deck = Deck()
val card1: Card = HeartCard(false, 2)
deck.addBelow(card1)
assertThat(deck.cards).hasSize(1).contains(card1)
val card2 = DiamondCard(false, 2)
deck.addBelow(card2)
assertThat(deck.cards).hasSize(2).first().isEqualTo(card2)
assertThat(deck.top).isNotNull.isEqualTo(card1)
}
@Test
fun draw() {
val deck = Deck()
val card = deck.draw()
assertThat(card).isNull()
assertThat(deck.cards).isEmpty()
val card2 = SpadeCard(true, "2")
deck += card2
assertThat(deck.draw()).isNotNull.isEqualTo(card2)
assertThat(deck.cards).hasSize(0)
deck += card2
val card3 = ClubCard(true, 2)
deck.addBelow(card3)
assertThat(deck.draw()).isNotNull.isEqualTo(card2)
assertThat(deck.cards).hasSize(1).contains(card3)
}
@Test
fun testDrawPile() {
val deck = Deck()
val card2 = SpadeCard(false, "K")
deck += card2
val card3 = HeartCard(true, "Q")
deck += card3
val drawn = deck.draw()
assertThat(drawn).isNotNull.isEqualTo(card3)
assertThat(deck.top).isNotNull.isEqualTo(card2)
}
@Test
fun plusAssign() {
val deck = Deck()
val card1: Card = HeartCard(false, 2)
deck += card1
assertThat(deck.cards).hasSize(1).contains(card1)
val card2 = DiamondCard(false, 2)
deck += card2
assertThat(deck.cards).hasSize(2).first().isEqualTo(card1)
assertThat(deck.top).isNotNull.isEqualTo(card2)
}
@Test
fun flipDeck() {
val deck = Deck(mutableListOf(HeartCard(true, 5), HeartCard(true, 6)))
deck.flipDeck()
assertThat(deck.cards).isEqualTo(mutableListOf(HeartCard(false, 6), HeartCard(false, 5)))
}
@Test
fun testPlusAssign() {
val deck = Deck()
val card1: Card = HeartCard(false, 2)
deck += mutableListOf(card1)
assertThat(deck.cards).hasSize(1).contains(card1)
val card2 = DiamondCard(false, 2)
deck += mutableListOf(card2)
assertThat(deck.cards).hasSize(2).first().isEqualTo(card1)
assertThat(deck.top).isNotNull.isEqualTo(card2)
}
@Test
fun plus() {
val deck = Deck()
val card1: Card = HeartCard(false, 2)
val deck1 = deck + mutableListOf(card1)
assertThat(deck1?.cards).isNotNull.hasSize(1).contains(card1)
val card2 = DiamondCard(false, 2)
var deck2 = deck1!! + mutableListOf(card2)
assertThat(deck2?.cards).isNotNull.hasSize(2).first().isEqualTo(card1)
assertThat(deck2!!.top).isNotNull.isEqualTo(card2)
deck2 = deck2 + mutableListOf()
assertThat(deck2?.cards).isNotNull.hasSize(2).first().isEqualTo(card1)
assertThat(deck2!!.top).isNotNull.isEqualTo(card2)
}
@Test
fun testPlus() {
val deck = Deck()
val card1: Card = HeartCard(false, 2)
val deck1 = deck + card1
assertThat(deck1?.cards).isNotNull.hasSize(1).contains(card1)
val card2 = DiamondCard(false, 2)
val deck2 = deck1!! + card2
assertThat(deck2?.cards).isNotNull.hasSize(2).first().isEqualTo(card1)
assertThat(deck2!!.top).isNotNull.isEqualTo(card2)
}
@Test
fun testPlusKO() {
val deck = GamePile(mutableListOf(HeartCard(false, 2)))
val card2 = DiamondCard(false, 2)
val deck2 = deck + card2
assertThat(deck2).isNull()
}
@Test
fun plusKO() {
val card1: Card = HeartCard(false, 2)
val deck = GamePile(mutableListOf(card1))
val card2 = DiamondCard(false, 2)
val deck2 = deck + mutableListOf(card2)
assertThat(deck2).isNull()
val deck3 = deck + mutableListOf()
assertThat(deck3?.cards).isNotNull.hasSize(1).contains(card1)
}
@Test
fun remove() {
val deck = Deck()
var cards = deck.remove(1)
assertThat(cards).isEmpty()
deck += HeartCard(true, "A")
cards = deck.remove(2)
assertThat(cards).hasSize(1)
assertThat(deck.cards).hasSize(0)
}
@Test
fun testCheckCardStore() {
assertThat(deck.checkCardCanGoOnPile(DiamondCard(false, 2))).isFalse
assertThat(deck.checkCardCanGoOnPile(ClubCard(false, 2))).isFalse
assertThat(deck.checkCardCanGoOnPile(SpadeCard(false, 2))).isFalse
assertThat(deck.checkCardCanGoOnPile(SpadeCard(false, "A"))).isTrue
deck += SpadeCard(false, "A")
assertThat(deck.checkCardCanGoOnPile(DiamondCard(false, 2))).isFalse
assertThat(deck.checkCardCanGoOnPile(SpadeCard(false, 2))).isTrue
}
@Test
fun testCheckCardPile() {
val deck = GamePile(mutableListOf(HeartCard(false, 2)))
assertThat(deck.pileCompatibilityCheck(DiamondCard(false, 2))).isFalse
assertThat(deck.pileCompatibilityCheck(ClubCard(false, 2))).isFalse
assertThat(deck.pileCompatibilityCheck(SpadeCard(false, 2))).isFalse
assertThat(deck.pileCompatibilityCheck(SpadeCard(false, "A"))).isTrue
assertThat(deck.pileCompatibilityCheck(SpadeCard(false, "3"))).isFalse
assertThat(deck.pileCompatibilityCheck(DiamondCard(false, 2))).isFalse
assertThat(deck.pileCompatibilityCheck(DiamondCard(false, "K"))).isTrue