aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_MultiBlockBase.java21
-rw-r--r--src/test/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_MultiBlockBaseTest.java46
2 files changed, 60 insertions, 7 deletions
diff --git a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_MultiBlockBase.java b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_MultiBlockBase.java
index 7eacf05b4e..af0219c4b1 100644
--- a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_MultiBlockBase.java
+++ b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_MultiBlockBase.java
@@ -25,6 +25,7 @@ import net.minecraftforge.common.util.Constants;
import net.minecraftforge.common.util.ForgeDirection;
import net.minecraftforge.fluids.FluidStack;
+import org.jetbrains.annotations.TestOnly;
import org.lwjgl.input.Keyboard;
import com.google.common.collect.Iterables;
@@ -96,7 +97,7 @@ public abstract class GT_MetaTileEntity_MultiBlockBase extends MetaTileEntity
public ArrayList<GT_MetaTileEntity_Hatch_Muffler> mMufflerHatches = new ArrayList<>();
public ArrayList<GT_MetaTileEntity_Hatch_Energy> mEnergyHatches = new ArrayList<>();
public ArrayList<GT_MetaTileEntity_Hatch_Maintenance> mMaintenanceHatches = new ArrayList<>();
- protected final List<GT_MetaTileEntity_Hatch> mExoticEnergyHatches = new ArrayList<>();
+ protected List<GT_MetaTileEntity_Hatch> mExoticEnergyHatches = new ArrayList<>();
@SideOnly(Side.CLIENT)
protected GT_SoundLoop activitySoundLoop;
@@ -1505,7 +1506,7 @@ public abstract class GT_MetaTileEntity_MultiBlockBase extends MetaTileEntity
return false;
}
- if (mExoticEnergyHatches.size() >= 1) {
+ if (!mExoticEnergyHatches.isEmpty()) {
if (!mEnergyHatches.isEmpty()) {
return false;
}
@@ -1515,11 +1516,7 @@ public abstract class GT_MetaTileEntity_MultiBlockBase extends MetaTileEntity
}
}
- if (mEnergyHatches.size() > 2) {
- return false;
- }
-
- return true;
+ return mEnergyHatches.size() <= 2;
}
/**
@@ -1917,4 +1914,14 @@ public abstract class GT_MetaTileEntity_MultiBlockBase extends MetaTileEntity
.setTooltipShowUpDelay(TOOLTIP_DELAY);
return (ButtonWidget) button;
}
+
+ @TestOnly
+ protected void setEnergyHatches(ArrayList<GT_MetaTileEntity_Hatch_Energy> EnergyHatches) {
+ this.mEnergyHatches = EnergyHatches;
+ }
+
+ @TestOnly
+ protected void setExoticEnergyHatches(List<GT_MetaTileEntity_Hatch> ExoticEnergyHatches) {
+ this.mExoticEnergyHatches = ExoticEnergyHatches;
+ }
}
diff --git a/src/test/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_MultiBlockBaseTest.java b/src/test/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_MultiBlockBaseTest.java
new file mode 100644
index 0000000000..a6f874b956
--- /dev/null
+++ b/src/test/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_MultiBlockBaseTest.java
@@ -0,0 +1,46 @@
+package gregtech.api.metatileentity.implementations;
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
+
+import java.util.ArrayList;
+
+import org.junit.jupiter.params.ParameterizedTest;
+import org.junit.jupiter.params.provider.CsvSource;
+import org.mockito.Answers;
+import org.mockito.Mockito;
+
+/**
+ * Tests some functions of {@link GT_MetaTileEntity_MultiBlockBase}.
+ * <p>
+ * The classes and tests are non-public because JUnit5
+ * <a href="https://junit.org/junit5/docs/snapshot/user-guide/#writing-tests-classes-and-methods">recommends</a>
+ * to omit the {@code public} modifier.
+ */
+@SuppressWarnings("NewClassNamingConvention") /*
+ * The name of the original class does not fit the convention,
+ * but refactoring that is a story for another time.
+ */
+class GT_MetaTileEntity_MultiBlockBaseTest {
+
+ @ParameterizedTest
+ @CsvSource({ "0,0,false", "2,0,false", "1,0,true", "1,1,false", "0,1,true", "0,2,true", "0,3,false" })
+ void checkExoticAndNormalEnergyHatches_parametrizedTest(int exoticEnergyHatchesCount, int normalEnergyHatchesCount,
+ boolean expectedResult) {
+ GT_MetaTileEntity_MultiBlockBase testedClassInstance = Mockito
+ .mock(GT_MetaTileEntity_MultiBlockBase.class, Answers.CALLS_REAL_METHODS);
+
+ testedClassInstance.setEnergyHatches(fillList(GT_MetaTileEntity_Hatch_Energy.class, normalEnergyHatchesCount));
+ testedClassInstance.setExoticEnergyHatches(fillList(GT_MetaTileEntity_Hatch.class, exoticEnergyHatchesCount));
+
+ assertEquals(expectedResult, testedClassInstance.checkExoticAndNormalEnergyHatches());
+ }
+
+ private <T> ArrayList<T> fillList(Class<T> classData, int returnedListSize) {
+ T objectToInsert = Mockito.mock(classData);
+ ArrayList<T> listToReturn = new ArrayList<>();
+ for (int i = 0; i < returnedListSize; i++) {
+ listToReturn.add(objectToInsert);
+ }
+ return listToReturn;
+ }
+}