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 ...@@ -256,7 +256,6 @@ public class GameManager implements IGameManager
int quantityTemp = quantity; int quantityTemp = quantity;
Player buyer = getPlayer(buyerId); Player buyer = getPlayer(buyerId);
int buyerMoney = buyer.getPlayerDTO().getMoney();
Player seller = getPlayer(sellerId); Player seller = getPlayer(sellerId);
Player nextNeighborToBuyFrom = null; Player nextNeighborToBuyFrom = null;
...@@ -290,6 +289,7 @@ public class GameManager implements IGameManager ...@@ -290,6 +289,7 @@ public class GameManager implements IGameManager
//Seller has all the quantity required //Seller has all the quantity required
if (sellerResources.get(resource) >= quantityTemp) if (sellerResources.get(resource) >= quantityTemp)
{ {
int buyerMoney = buyer.getPlayerDTO().getMoney();
//Buyer can buy the resource //Buyer can buy the resource
if (buyerMoney >= 2) if (buyerMoney >= 2)
{ {
...@@ -308,7 +308,14 @@ public class GameManager implements IGameManager ...@@ -308,7 +308,14 @@ public class GameManager implements IGameManager
} }
//Add resources to buyer //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); buyer.getPlayerDTO().setResources(buyerResources);
} }
...@@ -318,6 +325,7 @@ public class GameManager implements IGameManager ...@@ -318,6 +325,7 @@ public class GameManager implements IGameManager
//Seller resources are less than the quantity but has the resource //Seller resources are less than the quantity but has the resource
else if (sellerResources.get(resource) < quantityTemp) else if (sellerResources.get(resource) < quantityTemp)
{ {
int buyerMoney = buyer.getPlayerDTO().getMoney();
//Buyer can buy the resource //Buyer can buy the resource
if (buyerMoney >= 2) if (buyerMoney >= 2)
{ {
...@@ -331,36 +339,50 @@ public class GameManager implements IGameManager ...@@ -331,36 +339,50 @@ public class GameManager implements IGameManager
} }
//Add resources to buyer //Add resources to buyer
buyerResources.replace(resource, buyerResources.get(resource), sellerResourceInt); if (buyerResources.containsKey(resource))
buyer.getPlayerDTO().setResources(buyerResources); {
buyerResources.replace(resource, buyerResources.get(resource), buyerResources.get(resource) + sellerResourceInt);
}
else
{
buyerResources.put(resource, sellerResourceInt);
}
quantityTemp -= sellerResourceInt; quantityTemp -= sellerResourceInt;
} }
} }
} }
//Try to buy from the next neighbor //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 //Buyer can buy the resource
if (buyerMoney >= 2) if (buyerMoney >= 2)
{ {
buyer.getPlayerDTO().setMoney(buyerMoney - 2); buyer.getPlayerDTO().setMoney(buyerMoney - 2);
// If seller no more have this resource // If seller no more have this resource
if (sellerResources.get(resource) == quantityTemp) if (secondSellerResources.get(resource) == quantityTemp)
{ {
sellerResources.remove(resource); secondSellerResources.remove(resource);
seller.getPlayerDTO().setResources(sellerResources); nextNeighborToBuyFrom.getPlayerDTO().setResources(secondSellerResources);
} }
// Subtract quantity // Subtract quantity
else else
{ {
sellerResources.replace(resource, sellerResources.get(resource), sellerResources.get(resource) - quantityTemp); secondSellerResources.replace(resource, secondSellerResources.get(resource), secondSellerResources.get(resource) - quantityTemp);
seller.getPlayerDTO().setResources(sellerResources); nextNeighborToBuyFrom.getPlayerDTO().setResources(secondSellerResources);
} }
//Add resources to buyer //Add resources to buyer
buyerResources.replace(resource, buyerResources.get(resource), buyerResources.get(resource) + quantityTemp); if (buyerResources.containsKey(resource))
buyer.getPlayerDTO().setResources(buyerResources); {
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 //Set to 0 to tell no need to sell more
......
...@@ -98,9 +98,12 @@ public class TestGameManager ...@@ -98,9 +98,12 @@ public class TestGameManager
String username = "Mathis"; String username = "Mathis";
String playerId2 = "2"; String playerId2 = "2";
String username2 = "Guillaume"; String username2 = "Guillaume";
String playerId3 = "3";
String username3 = "Malo";
gm.addPlayer(playerId, username); gm.addPlayer(playerId, username);
gm.addPlayer(playerId2, username2); gm.addPlayer(playerId2, username2);
gm.addPlayer(playerId3, username3);
Player player1 = gm.getPlayer(playerId); Player player1 = gm.getPlayer(playerId);
...@@ -108,7 +111,7 @@ public class TestGameManager ...@@ -108,7 +111,7 @@ public class TestGameManager
res1.put(Resource.CLAY, 10); res1.put(Resource.CLAY, 10);
res1.put(Resource.GLASS, 2); res1.put(Resource.GLASS, 2);
player1.getPlayerDTO().setResources(res1); player1.getPlayerDTO().setResources(res1);
player1.getPlayerDTO().setMoney(9); player1.getPlayerDTO().setMoney(10);
Player player2 = gm.getPlayer(playerId2); Player player2 = gm.getPlayer(playerId2);
...@@ -116,13 +119,85 @@ public class TestGameManager ...@@ -116,13 +119,85 @@ public class TestGameManager
res2.put(Resource.CLAY, 5); res2.put(Resource.CLAY, 5);
res2.put(Resource.ORE, 15); res2.put(Resource.ORE, 15);
player2.getPlayerDTO().setResources(res2); 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); 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()); 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