Use static imports for common things to improve readability.

This commit is contained in:
Florian Nücke
2020-12-05 14:20:32 +01:00
parent 219176c16d
commit 58c9135db5
7 changed files with 101 additions and 85 deletions

View File

@@ -5,9 +5,11 @@ import li.cil.oc2.api.bus.device.rpc.RPCMethod;
import javax.annotation.Nullable;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import static java.util.Collections.emptyList;
import static java.util.Collections.singletonList;
/**
* A reflection based implementation of {@link RPCDevice} using the {@link Callback}
* annotation to discover {@link RPCMethod}s in a target object via
@@ -46,7 +48,7 @@ public final class ObjectDevice implements RPCDevice {
* @param typeName the type name of the device.
*/
public ObjectDevice(final Object object, @Nullable final String typeName) {
this(object, typeName != null ? Collections.singletonList(typeName) : Collections.emptyList());
this(object, typeName != null ? singletonList(typeName) : emptyList());
}
/**
@@ -55,7 +57,7 @@ public final class ObjectDevice implements RPCDevice {
* @param object the object containing the methods provided by this device.
*/
public ObjectDevice(final Object object) {
this(object, Collections.emptyList());
this(object, emptyList());
}
@Override

View File

@@ -13,6 +13,8 @@ import net.minecraftforge.common.util.LazyOptional;
import java.util.*;
import static java.util.Collections.emptySet;
public abstract class TileEntityDeviceBusController implements DeviceBusController {
public enum State {
SCAN_PENDING,
@@ -81,7 +83,7 @@ public abstract class TileEntityDeviceBusController implements DeviceBusControll
@Override
public Set<UUID> getDeviceIdentifiers(final Device device) {
return deviceIds.getOrDefault(device, Collections.emptySet());
return deviceIds.getOrDefault(device, emptySet());
}
public State scan() {

View File

@@ -4,10 +4,11 @@ import li.cil.oc2.api.bus.Device;
import li.cil.oc2.api.bus.DeviceBusController;
import net.minecraftforge.common.capabilities.CapabilityManager;
import java.util.Collections;
import java.util.Set;
import java.util.UUID;
import static java.util.Collections.emptySet;
public final class DeviceBusControllerCapability {
public static void register() {
CapabilityManager.INSTANCE.register(DeviceBusController.class, new NullStorage<>(), Implementation::new);
@@ -24,12 +25,12 @@ public final class DeviceBusControllerCapability {
@Override
public Set<Device> getDevices() {
return Collections.emptySet();
return emptySet();
}
@Override
public Set<UUID> getDeviceIdentifiers(final Device device) {
return Collections.emptySet();
return emptySet();
}
}
}

View File

@@ -15,6 +15,8 @@ import net.minecraft.world.World;
import java.util.Collection;
import java.util.Collections;
import static java.util.Collections.singletonList;
public class RedstoneInterfaceTileEntity extends TileEntity implements NamedDevice {
private static final int HORIZONTAL_DIRECTION_COUNT = 4;
private static final String OUTPUT_NBT_TAG_NAME = "output";
@@ -43,7 +45,7 @@ public class RedstoneInterfaceTileEntity extends TileEntity implements NamedDevi
@Override
public Collection<String> getDeviceTypeNames() {
return Collections.singletonList("redstone");
return singletonList("redstone");
}
@Callback

View File

@@ -17,6 +17,10 @@ import org.mockito.MockitoAnnotations;
import java.util.Collections;
import static java.util.Collections.emptyList;
import static java.util.Collections.singletonList;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertTrue;
import static org.mockito.ArgumentMatchers.*;
import static org.mockito.Mockito.*;
@@ -47,20 +51,20 @@ public class DeviceBusTests {
busControllerBusElement = mock(DeviceBusElement.class);
when(busControllerTileEntity.getCapability(eq(busElementCapability), any()))
.thenReturn(LazyOptional.of(() -> busControllerBusElement));
when(busControllerBusElement.getLocalDevices()).thenReturn(Collections.emptyList());
when(busControllerBusElement.getLocalDevices()).thenReturn(emptyList());
busController = new TestBusController();
}
@Test
public void scanPendingWhenTileEntityNotLoaded() {
Assertions.assertEquals(TileEntityDeviceBusController.State.SCAN_PENDING, busController.scan());
assertEquals(TileEntityDeviceBusController.State.SCAN_PENDING, busController.scan());
}
@Test
public void scanCompletesWhenNoNeighbors() {
when(world.chunkExists(anyInt(), anyInt())).thenReturn(true);
Assertions.assertEquals(TileEntityDeviceBusController.State.READY, busController.scan());
assertEquals(TileEntityDeviceBusController.State.READY, busController.scan());
}
@Test
@@ -68,12 +72,12 @@ public class DeviceBusTests {
when(world.chunkExists(anyInt(), anyInt())).thenReturn(true);
final RPCDevice device = mock(RPCDevice.class);
when(busControllerBusElement.getLocalDevices()).thenReturn(Collections.singletonList(device));
when(busControllerBusElement.getLocalDevices()).thenReturn(singletonList(device));
Assertions.assertEquals(TileEntityDeviceBusController.State.READY, busController.scan());
assertEquals(TileEntityDeviceBusController.State.READY, busController.scan());
verify(busControllerBusElement).addController(busController);
Assertions.assertTrue(busController.getDevices().contains(device));
assertTrue(busController.getDevices().contains(device));
}
@Test
@@ -83,7 +87,7 @@ public class DeviceBusTests {
final DeviceBusElement busElement1 = mockBusElement(CONTROLLER_POS.west());
final DeviceBusElement busElement2 = mockBusElement(CONTROLLER_POS.west().west());
Assertions.assertEquals(TileEntityDeviceBusController.State.READY, busController.scan());
assertEquals(TileEntityDeviceBusController.State.READY, busController.scan());
verify(busElement1).addController(busController);
verify(busElement2).addController(busController);
@@ -96,7 +100,7 @@ public class DeviceBusTests {
final DeviceBusElement busElement = mock(DeviceBusElement.class);
when(tileEntity.getCapability(eq(busElementCapability), any())).thenReturn(LazyOptional.of(() -> busElement));
when(busElement.getLocalDevices()).thenReturn(Collections.emptyList());
when(busElement.getLocalDevices()).thenReturn(emptyList());
return busElement;
}

View File

@@ -7,6 +7,8 @@ import org.junit.jupiter.api.Test;
import java.util.UUID;
import static org.junit.jupiter.api.Assertions.*;
public final class SerializationTests {
@Test
public void testSerializeFlat() {
@@ -25,19 +27,19 @@ public final class SerializationTests {
value.stringValue = "test string";
value.uuidValue = uuid;
final CompoundNBT nbt = Assertions.assertDoesNotThrow(() -> NBTSerialization.serialize(value));
final CompoundNBT nbt = assertDoesNotThrow(() -> NBTSerialization.serialize(value));
Assertions.assertEquals(123, nbt.getByte("byteValue"));
Assertions.assertEquals(234, nbt.getShort("shortValue"));
Assertions.assertEquals(456, nbt.getInt("intValue"));
Assertions.assertEquals(567, nbt.getLong("longValue"));
Assertions.assertEquals(678.9f, nbt.getFloat("floatValue"));
Assertions.assertEquals(789.0, nbt.getDouble("doubleValue"));
Assertions.assertArrayEquals(new byte[]{1, 2, 3}, nbt.getByteArray("byteArrayValue"));
Assertions.assertArrayEquals(new int[]{4, 5, 6}, nbt.getIntArray("intArrayValue"));
Assertions.assertArrayEquals(new long[]{7, 8, 9}, nbt.getLongArray("longArrayValue"));
Assertions.assertEquals("test string", nbt.getString("stringValue"));
Assertions.assertEquals(uuid, nbt.getCompound("uuidValue").getUniqueId("uuidValue"));
assertEquals(123, nbt.getByte("byteValue"));
assertEquals(234, nbt.getShort("shortValue"));
assertEquals(456, nbt.getInt("intValue"));
assertEquals(567, nbt.getLong("longValue"));
assertEquals(678.9f, nbt.getFloat("floatValue"));
assertEquals(789.0, nbt.getDouble("doubleValue"));
assertArrayEquals(new byte[]{1, 2, 3}, nbt.getByteArray("byteArrayValue"));
assertArrayEquals(new int[]{4, 5, 6}, nbt.getIntArray("intArrayValue"));
assertArrayEquals(new long[]{7, 8, 9}, nbt.getLongArray("longArrayValue"));
assertEquals("test string", nbt.getString("stringValue"));
assertEquals(uuid, nbt.getCompound("uuidValue").getUniqueId("uuidValue"));
}
@Test
@@ -58,19 +60,19 @@ public final class SerializationTests {
uuidNBT.putUniqueId("uuidValue", uuid);
nbt.put("uuidValue", uuidNBT);
final Flat value = Assertions.assertDoesNotThrow(() -> NBTSerialization.deserialize(nbt, Flat.class, new Flat()));
final Flat value = assertDoesNotThrow(() -> NBTSerialization.deserialize(nbt, Flat.class, new Flat()));
Assertions.assertEquals(98, value.byteValue);
Assertions.assertEquals(876, value.shortValue);
Assertions.assertEquals(765, value.intValue);
Assertions.assertEquals(654, value.longValue);
Assertions.assertEquals(543.2f, value.floatValue);
Assertions.assertEquals(432, .1, value.doubleValue);
Assertions.assertArrayEquals(new byte[]{9, 8, 7}, value.byteArrayValue);
Assertions.assertArrayEquals(new int[]{8, 7, 6}, value.intArrayValue);
Assertions.assertArrayEquals(new long[]{7, 6, 5}, value.longArrayValue);
Assertions.assertEquals("another test", value.stringValue);
Assertions.assertEquals(uuid, value.uuidValue);
assertEquals(98, value.byteValue);
assertEquals(876, value.shortValue);
assertEquals(765, value.intValue);
assertEquals(654, value.longValue);
assertEquals(543.2f, value.floatValue);
assertEquals(432, .1, value.doubleValue);
assertArrayEquals(new byte[]{9, 8, 7}, value.byteArrayValue);
assertArrayEquals(new int[]{8, 7, 6}, value.intArrayValue);
assertArrayEquals(new long[]{7, 6, 5}, value.longArrayValue);
assertEquals("another test", value.stringValue);
assertEquals(uuid, value.uuidValue);
}
@Test
@@ -92,36 +94,36 @@ public final class SerializationTests {
uuidNBT.putUniqueId("uuidValue", uuid);
nbt.put("uuidValue", uuidNBT);
final Flat value = Assertions.assertDoesNotThrow(() -> NBTSerialization.deserialize(nbt, Flat.class, null));
final Flat value = assertDoesNotThrow(() -> NBTSerialization.deserialize(nbt, Flat.class, null));
Assertions.assertEquals(98, value.byteValue);
Assertions.assertEquals(876, value.shortValue);
Assertions.assertEquals(765, value.intValue);
Assertions.assertEquals(654, value.longValue);
Assertions.assertEquals(543.2f, value.floatValue);
Assertions.assertEquals(432, .1, value.doubleValue);
Assertions.assertArrayEquals(new byte[]{9, 8, 7}, value.byteArrayValue);
Assertions.assertArrayEquals(new int[]{8, 7, 6}, value.intArrayValue);
Assertions.assertArrayEquals(new long[]{7, 6, 5}, value.longArrayValue);
Assertions.assertEquals("another test", value.stringValue);
Assertions.assertEquals(uuid, value.uuidValue);
assertEquals(98, value.byteValue);
assertEquals(876, value.shortValue);
assertEquals(765, value.intValue);
assertEquals(654, value.longValue);
assertEquals(543.2f, value.floatValue);
assertEquals(432, .1, value.doubleValue);
assertArrayEquals(new byte[]{9, 8, 7}, value.byteArrayValue);
assertArrayEquals(new int[]{8, 7, 6}, value.intArrayValue);
assertArrayEquals(new long[]{7, 6, 5}, value.longArrayValue);
assertEquals("another test", value.stringValue);
assertEquals(uuid, value.uuidValue);
}
@Test
public void testModifiers() {
final WithModifiers value = new WithModifiers();
final CompoundNBT nbt = Assertions.assertDoesNotThrow(() -> NBTSerialization.serialize(value));
final CompoundNBT nbt = assertDoesNotThrow(() -> NBTSerialization.serialize(value));
Assertions.assertTrue(nbt.contains("nonTransientInt"));
Assertions.assertEquals(123, nbt.getInt("nonTransientInt"));
Assertions.assertFalse(nbt.contains("transientInt"));
Assertions.assertFalse(nbt.contains("finalInt"));
assertTrue(nbt.contains("nonTransientInt"));
assertEquals(123, nbt.getInt("nonTransientInt"));
assertFalse(nbt.contains("transientInt"));
assertFalse(nbt.contains("finalInt"));
nbt.putIntArray("finalIntArray", new int[]{8, 7, 6});
Assertions.assertDoesNotThrow(() -> NBTSerialization.deserialize(nbt, value));
assertDoesNotThrow(() -> NBTSerialization.deserialize(nbt, value));
Assertions.assertArrayEquals(new int[]{8, 7, 6}, value.finalIntArray);
assertArrayEquals(new int[]{8, 7, 6}, value.finalIntArray);
}
@Test
@@ -131,11 +133,11 @@ public final class SerializationTests {
root.child = new Nested();
root.child.value = 234;
final CompoundNBT nbt = Assertions.assertDoesNotThrow(() -> NBTSerialization.serialize(root));
final CompoundNBT nbt = assertDoesNotThrow(() -> NBTSerialization.serialize(root));
Assertions.assertEquals(123, nbt.getInt("value"));
Assertions.assertTrue(nbt.contains("child"));
Assertions.assertEquals(234, nbt.getCompound("child").getInt("value"));
assertEquals(123, nbt.getInt("value"));
assertTrue(nbt.contains("child"));
assertEquals(234, nbt.getCompound("child").getInt("value"));
}
@Test
@@ -146,11 +148,11 @@ public final class SerializationTests {
nbt.put("child", child);
child.putInt("value", 234);
final Nested value = Assertions.assertDoesNotThrow(() -> NBTSerialization.deserialize(nbt, Nested.class, new Nested()));
final Nested value = assertDoesNotThrow(() -> NBTSerialization.deserialize(nbt, Nested.class, new Nested()));
Assertions.assertEquals(123, value.value);
Assertions.assertEquals(234, value.child.value);
Assertions.assertNull(value.child.child);
assertEquals(123, value.value);
assertEquals(234, value.child.value);
assertNull(value.child.child);
}
@Test
@@ -161,11 +163,11 @@ public final class SerializationTests {
nbt.put("child", child);
child.putInt("value", 234);
final Nested value = Assertions.assertDoesNotThrow(() -> NBTSerialization.deserialize(nbt, Nested.class, null));
final Nested value = assertDoesNotThrow(() -> NBTSerialization.deserialize(nbt, Nested.class, null));
Assertions.assertEquals(123, value.value);
Assertions.assertEquals(234, value.child.value);
Assertions.assertNull(value.child.child);
assertEquals(123, value.value);
assertEquals(234, value.child.value);
assertNull(value.child.child);
}
@Serialized

View File

@@ -20,6 +20,9 @@ import java.util.Collections;
import java.util.List;
import java.util.UUID;
import static java.util.Collections.singleton;
import static java.util.Collections.singletonList;
import static org.junit.jupiter.api.Assertions.*;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
@@ -49,17 +52,17 @@ public class RPCAdapterTests {
rpcAdapter.step(0); // process message
final String message = serialDevice.readMessageAsVM();
Assertions.assertNotNull(message);
assertNotNull(message);
final JsonObject json = new JsonParser().parse(message).getAsJsonObject();
final JsonArray devicesJson = json.getAsJsonArray("data");
Assertions.assertEquals(1, devicesJson.size());
assertEquals(1, devicesJson.size());
final JsonObject deviceJson = devicesJson.get(0).getAsJsonObject();
final JsonArray methodsJson = deviceJson.getAsJsonArray("methods");
Assertions.assertEquals(1, methodsJson.size());
assertEquals(1, methodsJson.size());
}
@Test
@@ -70,7 +73,7 @@ public class RPCAdapterTests {
invokeMethod(DEVICE_UUID, method.getName(), 0xdeadbeef);
Assertions.assertEquals(0xdeadbeef, method.passedValue);
assertEquals(0xdeadbeef, method.passedValue);
}
@Test
@@ -80,9 +83,9 @@ public class RPCAdapterTests {
setDevice(device, DEVICE_UUID);
final JsonElement result = invokeMethod(DEVICE_UUID, method.getName(), 0xdeadbeefcafebabeL);
Assertions.assertNotNull(result);
Assertions.assertTrue(result.isJsonPrimitive());
Assertions.assertEquals(0xcafebabe, result.getAsInt());
assertNotNull(result);
assertTrue(result.isJsonPrimitive());
assertEquals(0xcafebabe, result.getAsInt());
}
@Test
@@ -91,12 +94,12 @@ public class RPCAdapterTests {
final ObjectDevice device = new ObjectDevice(object);
setDevice(device, DEVICE_UUID);
Assertions.assertEquals(42 + 23, invokeMethod(DEVICE_UUID, "add", 42, 23).getAsInt());
assertEquals(42 + 23, invokeMethod(DEVICE_UUID, "add", 42, 23).getAsInt());
}
private void setDevice(final RPCDevice device, final UUID deviceId) {
when(busController.getDevices()).thenReturn(Collections.singleton(device));
when(busController.getDeviceIdentifiers(device)).thenReturn(Collections.singleton(deviceId));
when(busController.getDevices()).thenReturn(singleton(device));
when(busController.getDeviceIdentifiers(device)).thenReturn(singleton(deviceId));
// trigger device cache rebuild
rpcAdapter.pause();
@@ -120,9 +123,9 @@ public class RPCAdapterTests {
rpcAdapter.step(0);
final String result = serialDevice.readMessageAsVM();
Assertions.assertNotNull(result);
assertNotNull(result);
final JsonObject resultJson = new JsonParser().parse(result).getAsJsonObject();
Assertions.assertEquals("result", resultJson.get("type").getAsString());
assertEquals("result", resultJson.get("type").getAsString());
return resultJson.get("data");
}
@@ -229,12 +232,12 @@ public class RPCAdapterTests {
@Override
public List<String> getTypeNames() {
return Collections.singletonList(getClass().getSimpleName());
return singletonList(getClass().getSimpleName());
}
@Override
public List<RPCMethod> getMethods() {
return Collections.singletonList(method);
return singletonList(method);
}
}
}