Skip to content

Commit 30e0dbd

Browse files
Merge pull request #13 from LittleBeasts/unitTests
Unit tests
2 parents ed59855 + fc7eea7 commit 30e0dbd

5 files changed

Lines changed: 129 additions & 23 deletions

File tree

calculationEngine.iml

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<module org.jetbrains.idea.maven.project.MavenProjectsManager.isMavenModule="true" type="JAVA_MODULE" version="4">
3+
<component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_8">
4+
<output url="file://$MODULE_DIR$/target/classes" />
5+
<output-test url="file://$MODULE_DIR$/target/test-classes" />
6+
<content url="file://$MODULE_DIR$">
7+
<sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false" />
8+
<sourceFolder url="file://$MODULE_DIR$/src/test/java" isTestSource="true" />
9+
<excludeFolder url="file://$MODULE_DIR$/target" />
10+
</content>
11+
<orderEntry type="inheritedJdk" />
12+
<orderEntry type="sourceFolder" forTests="false" />
13+
<orderEntry type="library" name="Maven: org.json:json:20200518" level="project" />
14+
<orderEntry type="library" name="Maven: junit:junit:4.13.1" level="project" />
15+
<orderEntry type="library" name="Maven: org.hamcrest:hamcrest-core:1.3" level="project" />
16+
<orderEntry type="library" scope="TEST" name="Maven: org.mockito:mockito-core:3.9.0" level="project" />
17+
<orderEntry type="library" scope="TEST" name="Maven: net.bytebuddy:byte-buddy:1.10.20" level="project" />
18+
<orderEntry type="library" scope="TEST" name="Maven: net.bytebuddy:byte-buddy-agent:1.10.20" level="project" />
19+
<orderEntry type="library" scope="TEST" name="Maven: org.objenesis:objenesis:3.2" level="project" />
20+
</component>
21+
</module>

pom.xml

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,17 @@
1313
<artifactId>json</artifactId>
1414
<version>20200518</version>
1515
</dependency>
16+
<dependency>
17+
<groupId>junit</groupId>
18+
<artifactId>junit</artifactId>
19+
<version>4.13.1</version>
20+
</dependency>
21+
<dependency>
22+
<groupId>org.mockito</groupId>
23+
<artifactId>mockito-core</artifactId>
24+
<version>3.9.0</version>
25+
<scope>test</scope>
26+
</dependency>
1627
</dependencies>
1728

1829
<properties>

src/main/java/calculationEngine/entities/CeInventory.java

Lines changed: 23 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,8 @@ public class CeInventory {
1515
CeItem equippedArmorHead;
1616
CeItem equippedWeapon;
1717

18-
CeSlot[] slots = new CeSlot[10];
18+
int maxItemSlots = 10;
19+
CeSlot[] slots = new CeSlot[maxItemSlots];
1920

2021
public void loadSaveInventory(CeItem armorShoulder, CeItem armorShoes, CeItem armorLegs, CeItem armorChest, CeItem armorHead, CeItem weapon, CeSlot[] slots) {
2122
this.slots = slots;
@@ -27,32 +28,34 @@ public void loadSaveInventory(CeItem armorShoulder, CeItem armorShoes, CeItem ar
2728
this.equippedWeapon = weapon;
2829
}
2930

30-
public CeInventory(){
31-
for(int i = 0; i < slots.length; i++){
31+
public CeInventory() {
32+
for (int i = 0; i < slots.length; i++) {
3233
slots[i] = new CeSlot();
3334
}
3435
}
3536

3637
public void addItemToInventory(CeItem item) throws NoPlaceInInventoryException {
38+
if (item == null) {
39+
throw new NullPointerException();
40+
}
3741
boolean foundSlot = false;
3842
boolean addedItem = false;
3943
int firstEmptySlot = 0;
40-
for (int i = 0; i < slots.length; i++ ) {
44+
for (int i = 0; i < slots.length; i++) {
4145
CeSlot slot = slots[i];
4246
if (slot.getItem() != null && slot.getItem().compareTo(item)) {
4347
slot.increaseAmount();
4448
foundSlot = true;
4549
addedItem = true;
4650
break;
47-
}
48-
else if (slot.getItem() == null && !foundSlot) {
51+
} else if (slot.getItem() == null && !foundSlot) {
4952
firstEmptySlot = i;
5053
foundSlot = true;
5154
break;
5255
}
5356
}
54-
if(!addedItem && foundSlot) slots[firstEmptySlot].setItem(item);
55-
if(!foundSlot) throw new NoPlaceInInventoryException();
57+
if (!addedItem && foundSlot) slots[firstEmptySlot].setItem(item);
58+
if (!foundSlot) throw new NoPlaceInInventoryException();
5659

5760
}
5861

@@ -63,7 +66,7 @@ public void useItem(CeItem item) throws ItemNotInInventoryException {
6366

6467
for (CeSlot slot : slots) {
6568
CeItem slotItem = slot.getItem();
66-
if (slotItem != null){
69+
if (slotItem != null) {
6770
if (slotItem.compareTo(item)) {
6871
matchingItem = true;
6972
int remainingAmount = slot.decreaseAmount();
@@ -74,7 +77,7 @@ public void useItem(CeItem item) throws ItemNotInInventoryException {
7477
}
7578
}
7679
}
77-
if (!matchingItem){
80+
if (!matchingItem) {
7881
throw new ItemNotInInventoryException(item);
7982
}
8083
}
@@ -111,8 +114,7 @@ private void setEquippedArmorShoulder(CeItem equippedArmorShoulder) throws Wrong
111114
if(equippedArmorShoulder.getType() == armorShoulder){
112115
this.equippedArmorShoulder = equippedArmorShoulder;
113116
this.equippedArmorShoulder.equip();
114-
}
115-
else throw new WrongItemException(equippedArmorShoulder, "Armor type shoulderArmor");
117+
} else throw new WrongItemException(equippedArmorShoulder, "Armor type shoulderArmor");
116118
}
117119

118120
private void setEquippedArmorShoes(CeItem equippedArmorShoes) throws WrongItemException {
@@ -121,8 +123,7 @@ private void setEquippedArmorShoes(CeItem equippedArmorShoes) throws WrongItemEx
121123
if(equippedArmorShoes.getType() == armorShoes){
122124
this.equippedArmorShoes = equippedArmorShoes;
123125
this.equippedArmorShoes.equip();
124-
}
125-
else throw new WrongItemException(equippedArmorShoes, "Armor type armorShoes");
126+
} else throw new WrongItemException(equippedArmorShoes, "Armor type armorShoes");
126127
}
127128

128129
private void setEquippedArmorLegs(CeItem equippedArmorLegs) throws WrongItemException {
@@ -131,8 +132,7 @@ private void setEquippedArmorLegs(CeItem equippedArmorLegs) throws WrongItemExce
131132
if(equippedArmorLegs.getType() == armorLegs){
132133
this.equippedArmorLegs = equippedArmorLegs;
133134
this.equippedArmorLegs.equip();
134-
}
135-
else throw new WrongItemException(equippedArmorLegs, "Armor type ArmorLegs");
135+
} else throw new WrongItemException(equippedArmorLegs, "Armor type ArmorLegs");
136136
}
137137

138138
private void setEquippedArmorChest(CeItem equippedArmorChest) throws WrongItemException {
@@ -141,8 +141,7 @@ private void setEquippedArmorChest(CeItem equippedArmorChest) throws WrongItemEx
141141
if(equippedArmorChest.getType() == armorChest){
142142
this.equippedArmorChest = equippedArmorChest;
143143
this.equippedArmorChest.equip();
144-
}
145-
else throw new WrongItemException(equippedArmorChest, "Armor type ArmorChest");
144+
} else throw new WrongItemException(equippedArmorChest, "Armor type ArmorChest");
146145
}
147146

148147
private void setEquippedArmorHead(CeItem equippedArmorHead) throws WrongItemException {
@@ -151,8 +150,7 @@ private void setEquippedArmorHead(CeItem equippedArmorHead) throws WrongItemExce
151150
if(equippedArmorHead.getType() == armorHead){
152151
this.equippedArmorHead = equippedArmorHead;
153152
this.equippedArmorHead.equip();
154-
}
155-
else throw new WrongItemException(equippedArmorHead, "Armor type armorHead");
153+
} else throw new WrongItemException(equippedArmorHead, "Armor type armorHead");
156154
}
157155

158156
private void setEquippedWeapon(CeItem equippedWeapon) throws WrongItemException {
@@ -161,8 +159,7 @@ private void setEquippedWeapon(CeItem equippedWeapon) throws WrongItemException
161159
if(equippedWeapon.getType() == weapon){
162160
this.equippedWeapon = equippedWeapon;
163161
this.equippedWeapon.equip();
164-
}
165-
else throw new WrongItemException(equippedWeapon, "Armor type weapon");
162+
} else throw new WrongItemException(equippedWeapon, "Armor type weapon");
166163
}
167164

168165
public CeItem getEquippedArmorShoulder() {
@@ -192,4 +189,8 @@ public CeItem getEquippedWeapon() {
192189
public CeSlot[] getSlots() {
193190
return slots;
194191
}
192+
193+
public int getMaxItemSlots() {
194+
return maxItemSlots;
195+
}
195196
}

src/main/java/calculationEngine/environment/CeLoot.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22

33
import org.json.JSONArray;
44
import org.json.JSONObject;
5-
65
import static config.LootConfig.itemList;
76

87
public class CeLoot {
Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,74 @@
1+
package calculationEngine.enviroment;
2+
3+
import calculationEngine.entities.CeInventory;
4+
import calculationEngine.entities.CeSlot;
5+
import calculationEngine.entities.NoPlaceInInventoryException;
6+
import calculationEngine.environment.CeItem;
7+
import org.json.JSONObject;
8+
import org.junit.Before;
9+
import org.junit.Test;
10+
import org.mockito.Mockito;
11+
12+
import static config.LootConfig.itemList;
13+
import static org.junit.Assert.*;
14+
15+
public class CeInventoryTest {
16+
CeInventory ceInventory;
17+
18+
@Before
19+
public void setUp() {
20+
ceInventory = new CeInventory();
21+
}
22+
23+
@Test
24+
public void checkIfItemAddedToInventory() throws NoPlaceInInventoryException {
25+
JSONObject itemJson = new JSONObject(itemList.get("cage").toString());
26+
CeItem ceItem = new CeItem();
27+
ceItem.setNewLootedItem(itemJson);
28+
ceInventory.addItemToInventory(ceItem);
29+
CeSlot[] slots = ceInventory.getSlots();
30+
for (CeSlot slot : slots) {
31+
if (slot.getItem() != null && slot.getItem().equals(ceItem)) {
32+
assertEquals(ceItem, slot.getItem());
33+
break;
34+
}
35+
}
36+
}
37+
38+
@Test
39+
public void addItemTwoTimesToInventory() throws NoPlaceInInventoryException {
40+
JSONObject itemJson = new JSONObject(itemList.get("cage").toString());
41+
CeItem ceItem = new CeItem();
42+
ceItem.setNewLootedItem(itemJson);
43+
int amountToAdd = 2;
44+
for (int i = 0; i < amountToAdd; i++) {
45+
ceInventory.addItemToInventory(ceItem);
46+
}
47+
CeSlot[] slots = ceInventory.getSlots();
48+
int itemAmount = 0;
49+
for (CeSlot slot : slots) {
50+
if (slot.getItem() != null && slot.getItem().equals(ceItem)) {
51+
itemAmount = slot.getAmount();
52+
}
53+
}
54+
assertEquals(itemAmount, amountToAdd);
55+
}
56+
57+
@Test(expected = NullPointerException.class)
58+
public void addNullToInventory() throws NoPlaceInInventoryException {
59+
ceInventory.addItemToInventory(null);
60+
}
61+
62+
@Test(expected = NoPlaceInInventoryException.class)
63+
public void addElvenItemsToInventory() throws NoPlaceInInventoryException {
64+
int amountToAdd = ceInventory.getMaxItemSlots()+1 ;
65+
for (int i = 0; i < amountToAdd; i++) {
66+
JSONObject itemJson = new JSONObject(itemList.get("cage").toString());
67+
itemJson.put("name", "cage" + i);
68+
CeItem ceItem = new CeItem();
69+
ceItem.setNewLootedItem(itemJson);
70+
ceInventory.addItemToInventory(ceItem);
71+
}
72+
}
73+
74+
}

0 commit comments

Comments
 (0)