Nantes Université

Skip to content
Extraits de code Groupes Projets
Valider 444b031c rédigé par ArKeid0s's avatar ArKeid0s
Parcourir les fichiers

Updated GameManager tests

parent 05f9f8d1
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
Pipeline #56232 réussi
......@@ -256,7 +256,6 @@ public class GameManager implements IGameManager
int quantityTemp = quantity;
Player buyer = getPlayer(buyerId);
int buyerMoney = buyer.getPlayerDTO().getMoney();
Player seller = getPlayer(sellerId);
Player nextNeighborToBuyFrom = null;
......@@ -290,6 +289,7 @@ public class GameManager implements IGameManager
//Seller has all the quantity required
if (sellerResources.get(resource) >= quantityTemp)
{
int buyerMoney = buyer.getPlayerDTO().getMoney();
//Buyer can buy the resource
if (buyerMoney >= 2)
{
......@@ -308,7 +308,14 @@ public class GameManager implements IGameManager
}
//Add resources to buyer
buyerResources.replace(resource, buyerResources.get(resource), buyerResources.get(resource) + quantityTemp);
if (buyerResources.containsKey(resource))
{
buyerResources.replace(resource, buyerResources.get(resource), buyerResources.get(resource) + quantityTemp);
}
else
{
buyerResources.put(resource, quantityTemp);
}
buyer.getPlayerDTO().setResources(buyerResources);
}
......@@ -318,6 +325,7 @@ public class GameManager implements IGameManager
//Seller resources are less than the quantity but has the resource
else if (sellerResources.get(resource) < quantityTemp)
{
int buyerMoney = buyer.getPlayerDTO().getMoney();
//Buyer can buy the resource
if (buyerMoney >= 2)
{
......@@ -331,36 +339,50 @@ public class GameManager implements IGameManager
}
//Add resources to buyer
buyerResources.replace(resource, buyerResources.get(resource), sellerResourceInt);
buyer.getPlayerDTO().setResources(buyerResources);
if (buyerResources.containsKey(resource))
{
buyerResources.replace(resource, buyerResources.get(resource), buyerResources.get(resource) + sellerResourceInt);
}
else
{
buyerResources.put(resource, sellerResourceInt);
}
quantityTemp -= sellerResourceInt;
}
}
}
//Try to buy from the next neighbor
else if (secondSellerResources.containsKey(resource) && quantityTemp != 0)
if (secondSellerResources.containsKey(resource) && quantityTemp != 0)
{
int buyerMoney = buyer.getPlayerDTO().getMoney();
//Buyer can buy the resource
if (buyerMoney >= 2)
{
buyer.getPlayerDTO().setMoney(buyerMoney - 2);
// If seller no more have this resource
if (sellerResources.get(resource) == quantityTemp)
if (secondSellerResources.get(resource) == quantityTemp)
{
sellerResources.remove(resource);
seller.getPlayerDTO().setResources(sellerResources);
secondSellerResources.remove(resource);
nextNeighborToBuyFrom.getPlayerDTO().setResources(secondSellerResources);
}
// Subtract quantity
else
{
sellerResources.replace(resource, sellerResources.get(resource), sellerResources.get(resource) - quantityTemp);
seller.getPlayerDTO().setResources(sellerResources);
secondSellerResources.replace(resource, secondSellerResources.get(resource), secondSellerResources.get(resource) - quantityTemp);
nextNeighborToBuyFrom.getPlayerDTO().setResources(secondSellerResources);
}
//Add resources to buyer
buyerResources.replace(resource, buyerResources.get(resource), buyerResources.get(resource) + quantityTemp);
buyer.getPlayerDTO().setResources(buyerResources);
if (buyerResources.containsKey(resource))
{
buyerResources.replace(resource, buyerResources.get(resource), buyerResources.get(resource) + quantityTemp);
}
else
{
buyerResources.put(resource, quantityTemp);
}
}
//Set to 0 to tell no need to sell more
......
......@@ -98,9 +98,12 @@ public class TestGameManager
String username = "Mathis";
String playerId2 = "2";
String username2 = "Guillaume";
String playerId3 = "3";
String username3 = "Malo";
gm.addPlayer(playerId, username);
gm.addPlayer(playerId2, username2);
gm.addPlayer(playerId3, username3);
Player player1 = gm.getPlayer(playerId);
......@@ -108,7 +111,7 @@ public class TestGameManager
res1.put(Resource.CLAY, 10);
res1.put(Resource.GLASS, 2);
player1.getPlayerDTO().setResources(res1);
player1.getPlayerDTO().setMoney(9);
player1.getPlayerDTO().setMoney(10);
Player player2 = gm.getPlayer(playerId2);
......@@ -116,13 +119,85 @@ public class TestGameManager
res2.put(Resource.CLAY, 5);
res2.put(Resource.ORE, 15);
player2.getPlayerDTO().setResources(res2);
player2.getPlayerDTO().setMoney(9);
player2.getPlayerDTO().setMoney(10);
Player player3 = gm.getPlayer(playerId3);
Map<Resource, Integer> res3 = player3.getPlayerDTO().getResources();
res3.put(Resource.CLAY, 5);
res3.put(Resource.ORE, 15);
player3.getPlayerDTO().setResources(res3);
player3.getPlayerDTO().setMoney(10);
gm.buyResourcesFrom(playerId, playerId2, Resource.ORE, 5);
assertEquals(8, gm.getPlayer(playerId).getPlayerDTO().getMoney());
assertEquals(5, gm.getPlayer(playerId).getPlayerDTO().getResources().get(Resource.ORE).intValue());
assertEquals(10, gm.getPlayer(playerId2).getPlayerDTO().getResources().get(Resource.ORE).intValue());
}
// Test buying resources from neighbor but dont have enough so try the other one
@Test
public void testBuyResourcesFromOtherNeighbor()
{
GameManager gm = new GameManager();
String playerId = "1";
String username = "Mathis";
String playerId2 = "2";
String username2 = "Guillaume";
String playerId3 = "3";
String username3 = "Malo";
gm.addPlayer(playerId, username);
gm.addPlayer(playerId2, username2);
gm.addPlayer(playerId3, username3);
Player player1 = gm.getPlayer(playerId);
Map<Resource, Integer> res1 = player1.getPlayerDTO().getResources();
res1.put(Resource.CLAY, 10);
res1.put(Resource.GLASS, 2);
player1.getPlayerDTO().setResources(res1);
player1.getPlayerDTO().setMoney(10);
Player player2 = gm.getPlayer(playerId2);
Map<Resource, Integer> res2 = player2.getPlayerDTO().getResources();
res2.put(Resource.CLAY, 5);
res2.put(Resource.ORE, 3);
player2.getPlayerDTO().setResources(res2);
player2.getPlayerDTO().setMoney(10);
Player player3 = gm.getPlayer(playerId3);
Map<Resource, Integer> res3 = player3.getPlayerDTO().getResources();
res3.put(Resource.CLAY, 5);
res3.put(Resource.ORE, 15);
player3.getPlayerDTO().setResources(res3);
player3.getPlayerDTO().setMoney(10);
gm.buyResourcesFrom(playerId, playerId2, Resource.ORE, 5);
assertEquals(5, gm.getPlayer(playerId).getPlayerDTO().getResources().get(Resource.ORE).intValue());
assertEquals(13, gm.getPlayer(playerId3).getPlayerDTO().getResources().get(Resource.ORE).intValue());
assertFalse(gm.getPlayer(playerId2).getPlayerDTO().getResources().containsKey(Resource.ORE));
assertEquals(6, gm.getPlayer(playerId).getPlayerDTO().getMoney());
}
@Test
public void testCalculateVictoryPoints() {
GameManager gameManager = new GameManager();
String playerId = "1";
String username = "Mathis";
gameManager.addPlayer(playerId, username);
}
......
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Terminez d'abord l'édition de ce message.
Veuillez vous inscrire ou vous pour commenter