mirror of
https://github.com/michaelrausch/Party-Parrots-At-Sea.git
synced 2026-05-09 14:28:43 +00:00
Started making a cucumber test for allchat.
Will need to incorporate mockito in order to mock controller input. Have commented out the tests as they are not working correctly yet. #story[1246]
This commit is contained in:
@@ -303,7 +303,7 @@ public class ClientToServerThread implements Runnable {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void closeSocket() {
|
public void closeSocket() {
|
||||||
try {
|
try {
|
||||||
socket.close();
|
socket.close();
|
||||||
socketOpen = false;
|
socketOpen = false;
|
||||||
|
|||||||
@@ -234,6 +234,7 @@ public class GameClient {
|
|||||||
|
|
||||||
private void parsePackets() {
|
private void parsePackets() {
|
||||||
while (socketThread.getPacketQueue().peek() != null) {
|
while (socketThread.getPacketQueue().peek() != null) {
|
||||||
|
System.out.println("PARSING PACKET");
|
||||||
StreamPacket packet = socketThread.getPacketQueue().poll();
|
StreamPacket packet = socketThread.getPacketQueue().poll();
|
||||||
switch (packet.getType()) {
|
switch (packet.getType()) {
|
||||||
case RACE_STATUS:
|
case RACE_STATUS:
|
||||||
@@ -297,6 +298,8 @@ public class GameClient {
|
|||||||
case CHATTER_TEXT:
|
case CHATTER_TEXT:
|
||||||
Pair<Integer, String> playerIdMessagePair = StreamParser
|
Pair<Integer, String> playerIdMessagePair = StreamParser
|
||||||
.extractChatterText(packet);
|
.extractChatterText(packet);
|
||||||
|
|
||||||
|
System.out.println("playerIdMessagePair = " + playerIdMessagePair);
|
||||||
raceView.updateChatHistory(
|
raceView.updateChatHistory(
|
||||||
allBoatsMap.get(playerIdMessagePair.getKey()).getColour(),
|
allBoatsMap.get(playerIdMessagePair.getKey()).getColour(),
|
||||||
playerIdMessagePair.getValue()
|
playerIdMessagePair.getValue()
|
||||||
@@ -457,4 +460,9 @@ public class GameClient {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public ClientToServerThread getSocketThread() {
|
||||||
|
return socketThread;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,5 @@
|
|||||||
|
Feature: SendChat
|
||||||
|
Scenario: User send chat to another client
|
||||||
|
Given The are two games running
|
||||||
|
When the user has pressed sends the message "Hello world" in a text box
|
||||||
|
Then the other client should recieve the message "Hello world"
|
||||||
@@ -0,0 +1,53 @@
|
|||||||
|
package steps;
|
||||||
|
|
||||||
|
import cucumber.api.PendingException;
|
||||||
|
import cucumber.api.java.en.Given;
|
||||||
|
import cucumber.api.java.en.Then;
|
||||||
|
import cucumber.api.java.en.When;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
|
||||||
|
import javafx.scene.layout.Pane;
|
||||||
|
import org.junit.Assert;
|
||||||
|
import org.mockito.Mock;
|
||||||
|
import seng302.gameServer.GameStages;
|
||||||
|
import seng302.gameServer.GameState;
|
||||||
|
import seng302.gameServer.MainServerThread;
|
||||||
|
import seng302.gameServer.messages.BoatAction;
|
||||||
|
import seng302.model.ServerYacht;
|
||||||
|
import seng302.visualiser.ClientToServerThread;
|
||||||
|
import seng302.visualiser.GameClient;
|
||||||
|
import seng302.visualiser.controllers.StartScreenController;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Created by kre39 on 7/08/17.
|
||||||
|
*/
|
||||||
|
public class SendChatSteps {
|
||||||
|
|
||||||
|
MainServerThread mst;
|
||||||
|
GameClient client1;
|
||||||
|
GameClient client2;
|
||||||
|
|
||||||
|
|
||||||
|
//TODO Need to mock the controller pane in order to run the full game client
|
||||||
|
@Given("^The are two games running$")
|
||||||
|
public void the_are_two_games_running() throws Throwable {
|
||||||
|
// client1 = new GameClient(new Pane());
|
||||||
|
// client1.runAsHost("localhost", 4942);
|
||||||
|
//// client2 = new ClientToServerThread("localhost", 4942);
|
||||||
|
// GameState.setCurrentStage(GameStages.RACING);
|
||||||
|
// Thread.sleep(200);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@When("^the user has pressed sends the message \"([^\"]*)\" in a text box$")
|
||||||
|
public void the_user_has_pressed_sends_the_message_in_a_text_box(String arg1) throws Throwable {
|
||||||
|
// client1.getSocketThread().sendChatterMessage(arg1);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Then("^the other client should recieve the message \"([^\"]*)\"$")
|
||||||
|
public void the_other_client_should_recieve_the_message(String arg1) throws Throwable {
|
||||||
|
// System.out.println(client2.getPacketQueue());
|
||||||
|
// client2.setSocketToClose();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -49,5 +49,7 @@ public class ToggleSailSteps {
|
|||||||
} else {
|
} else {
|
||||||
Assert.assertFalse(yacht.getSailIn());
|
Assert.assertFalse(yacht.getSailIn());
|
||||||
}
|
}
|
||||||
|
mst.terminate();
|
||||||
|
client.closeSocket();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user