|
27 | 27 | */
|
28 | 28 | package mekhq.campaign.parts.equipment;
|
29 | 29 |
|
| 30 | +import static mekhq.campaign.parts.AmmoUtilities.getAmmoType; |
| 31 | +import static org.junit.jupiter.api.Assertions.assertEquals; |
| 32 | +import static org.junit.jupiter.api.Assertions.assertFalse; |
| 33 | +import static org.junit.jupiter.api.Assertions.assertInstanceOf; |
| 34 | +import static org.junit.jupiter.api.Assertions.assertNotNull; |
| 35 | +import static org.junit.jupiter.api.Assertions.assertNull; |
| 36 | +import static org.junit.jupiter.api.Assertions.assertTrue; |
| 37 | +import static org.mockito.ArgumentMatchers.any; |
| 38 | +import static org.mockito.ArgumentMatchers.anyInt; |
| 39 | +import static org.mockito.ArgumentMatchers.eq; |
| 40 | +import static org.mockito.Mockito.doAnswer; |
| 41 | +import static org.mockito.Mockito.mock; |
| 42 | +import static org.mockito.Mockito.times; |
| 43 | +import static org.mockito.Mockito.verify; |
| 44 | +import static org.mockito.Mockito.when; |
| 45 | + |
| 46 | +import java.io.ByteArrayInputStream; |
| 47 | +import java.io.IOException; |
| 48 | +import java.io.PrintWriter; |
| 49 | +import java.io.StringWriter; |
| 50 | +import javax.xml.parsers.DocumentBuilder; |
| 51 | +import javax.xml.parsers.ParserConfigurationException; |
| 52 | + |
30 | 53 | import megamek.Version;
|
31 | 54 | import megamek.common.AmmoType;
|
32 | 55 | import megamek.common.Entity;
|
|
43 | 66 | import mekhq.campaign.unit.Unit;
|
44 | 67 | import mekhq.campaign.work.IAcquisitionWork;
|
45 | 68 | import mekhq.utilities.MHQXMLUtility;
|
| 69 | +import org.junit.jupiter.api.BeforeEach; |
| 70 | +import org.junit.jupiter.api.Nested; |
46 | 71 | import org.junit.jupiter.api.Test;
|
47 | 72 | import org.w3c.dom.Document;
|
48 | 73 | import org.w3c.dom.Element;
|
49 | 74 | import org.xml.sax.SAXException;
|
50 | 75 |
|
51 |
| -import javax.xml.parsers.DocumentBuilder; |
52 |
| -import javax.xml.parsers.ParserConfigurationException; |
53 |
| -import java.io.ByteArrayInputStream; |
54 |
| -import java.io.IOException; |
55 |
| -import java.io.PrintWriter; |
56 |
| -import java.io.StringWriter; |
57 |
| - |
58 |
| -import static mekhq.campaign.parts.AmmoUtilities.getAmmoType; |
59 |
| -import static org.junit.jupiter.api.Assertions.*; |
60 |
| -import static org.mockito.ArgumentMatchers.any; |
61 |
| -import static org.mockito.ArgumentMatchers.anyInt; |
62 |
| -import static org.mockito.ArgumentMatchers.eq; |
63 |
| -import static org.mockito.Mockito.*; |
64 |
| - |
65 | 76 | public class AmmoBinTest {
|
66 | 77 | @Test
|
67 | 78 | public void deserializationCtorTest() {
|
@@ -1460,4 +1471,46 @@ public void fixFullBinAfterChangingAmmoType() {
|
1460 | 1471 | // ... but the correct amount of our original ammo type unloaded from the bin.
|
1461 | 1472 | assertEquals(ammoType.getShots(), quartermaster.getAmmoAvailable(ammoType));
|
1462 | 1473 | }
|
| 1474 | + |
| 1475 | + @Nested |
| 1476 | + class AmmoBinSamePartTypeTests { |
| 1477 | + Campaign mockCampaign; |
| 1478 | + AmmoType ammo1; |
| 1479 | + AmmoType ammo2; |
| 1480 | + int shotsNeeded = 1; |
| 1481 | + int equipmentNum = 42; |
| 1482 | + |
| 1483 | + @BeforeEach |
| 1484 | + void beforeEach() { |
| 1485 | + mockCampaign = mock(Campaign.class); |
| 1486 | + |
| 1487 | + AmmoMounted mockAmmoRack1 = mock(AmmoMounted.class); |
| 1488 | + AmmoMounted mockAmmoRack2 = mock(AmmoMounted.class); |
| 1489 | + |
| 1490 | + when(mockAmmoRack1.getType()).thenReturn(ammo1); |
| 1491 | + when(mockAmmoRack2.getType()).thenReturn(ammo2); |
| 1492 | + } |
| 1493 | + |
| 1494 | + @Test void matchingACAmmo () { |
| 1495 | + ammo1 = (AmmoType) AmmoType.get("ISAC5 Ammo"); |
| 1496 | + ammo2 = (AmmoType) AmmoType.get("ISAC5 Ammo"); |
| 1497 | + |
| 1498 | + // Create an Ammo Bin with some ammo ... |
| 1499 | + AmmoBin ammoBin1 = new AmmoBin(0, ammo1, equipmentNum, shotsNeeded, false, false, mockCampaign); |
| 1500 | + AmmoBin ammoBin2 = new AmmoBin(0, ammo2, equipmentNum, shotsNeeded, false, false, mockCampaign); |
| 1501 | + |
| 1502 | + assertTrue(ammoBin1.isSamePartType(ammoBin2)); |
| 1503 | + } |
| 1504 | + |
| 1505 | + @Test void mismatchedACAmmo () { |
| 1506 | + ammo1 = (AmmoType) AmmoType.get("ISAC5 Ammo"); |
| 1507 | + ammo2 = (AmmoType) AmmoType.get("ISAC10 Ammo"); |
| 1508 | + |
| 1509 | + // Create an Ammo Bin with some ammo ... |
| 1510 | + AmmoBin ammoBin1 = new AmmoBin(0, ammo1, equipmentNum, shotsNeeded, false, false, mockCampaign); |
| 1511 | + AmmoBin ammoBin2 = new AmmoBin(0, ammo2, equipmentNum, shotsNeeded, false, false, mockCampaign); |
| 1512 | + |
| 1513 | + assertFalse(ammoBin1.isSamePartType(ammoBin2)); |
| 1514 | + } |
| 1515 | + } |
1463 | 1516 | }
|
0 commit comments