Skip to content
This repository has been archived by the owner on Apr 29, 2020. It is now read-only.

Commit

Permalink
Merge pull request lucaminudel#30 from wubin28/master
Browse files Browse the repository at this point in the history
Used "Subclass and set superclass' field" to verify the next turn number should be increased by 1
  • Loading branch information
lucaminudel committed Jan 5, 2015
2 parents 6e5db1c + dd25c48 commit d813329
Show file tree
Hide file tree
Showing 6 changed files with 81 additions and 4 deletions.
7 changes: 7 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -5,3 +5,10 @@ _ReSharper*/
*.user
.DS_Store
*.pyc

#Doc
*.rtf#

# IDEA
.idea/
*.iml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.9</version>
<version>4.11</version>
<type>jar</type>
<scope>test</scope>
</dependency>
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
package tddmicroexercises.turnticketdispenser;

/**
* Created by benwu on 14-6-11.
*/
public class TestingTurnNumberSequence extends TurnNumberSequence {
public void setCurrentTurnNumber(int currentTurnNumber) {
super.turnNumber = currentTurnNumber;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,19 @@

public class TicketDispenser
{
private TurnNumberSequence turnNumberSequence;

public TicketDispenser(TurnNumberSequence turnNumberSequence) {
this.turnNumberSequence = turnNumberSequence;
}

public TicketDispenser() {
this.turnNumberSequence = new TurnNumberSequence();
}

public TurnTicket getTurnTicket()
{
int newTurnNumber = TurnNumberSequence.getNextTurnNumber();
int newTurnNumber = this.turnNumberSequence.getNextTurnNumber();
TurnTicket newTurnTicket = new TurnTicket(newTurnNumber);

return newTurnTicket;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,10 @@

public class TurnNumberSequence
{
private static int _turnNumber = 0;
protected static int turnNumber = 0;

public static int getNextTurnNumber()
{
return _turnNumber++;
return ++turnNumber;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
package tddmicroexercises.turnticketdispenser;

import org.junit.Test;

import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;

public class TicketDispenserTest {
@Test
public void a_new_ticket_should_have_the_turn_number_subsequent_to_the_previous_ticket() {
// Arrange
TicketDispenser ticketDispenser = new TicketDispenser();

// Act
TurnTicket previousTicket = ticketDispenser.getTurnTicket();
TurnTicket newTicket = ticketDispenser.getTurnTicket();

// Assert
assertTrue(newTicket.getTurnNumber() > previousTicket.getTurnNumber());
}

@Test
public void a_new_ticket_should_have_the_turn_number_subsequent_to_the_previous_ticket_from_another_dispenser() {
// Arrange
TicketDispenser dispenser = new TicketDispenser();
TicketDispenser anotherDispenser = new TicketDispenser();

// Act
TurnTicket previousTicket = dispenser.getTurnTicket();
TurnTicket newTicketFromAnotherDispenser = anotherDispenser.getTurnTicket();

// Assert
assertTrue(newTicketFromAnotherDispenser.getTurnNumber() > previousTicket.getTurnNumber());
}

@Test
public void after_ticket_10_come_ticket_11() {
// Arrange
TestingTurnNumberSequence testingTurnNumberSequence = new TestingTurnNumberSequence();
testingTurnNumberSequence.setCurrentTurnNumber(10);
TicketDispenser ticketDispenser = new TicketDispenser(testingTurnNumberSequence);

// Act
TurnTicket newTicket = ticketDispenser.getTurnTicket();

// Assert
assertEquals(11, newTicket.getTurnNumber());
}

}

0 comments on commit d813329

Please sign in to comment.