Skip to content

Commit 01a3fc4

Browse files
committed
test: prevent shared-frequency cross-factory stock access
1 parent c99604b commit 01a3fc4

1 file changed

Lines changed: 34 additions & 0 deletions

File tree

‎src/test/java/com/innygr/icreateordernetworking/logistics/StockLinkBindingDataTest.java‎

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,4 +53,38 @@ void malformedRowsAreIgnoredWithoutLosingValidBindings() {
5353
StockLinkBindingData loaded = StockLinkBindingData.load(root, null);
5454
assertTrue(loaded.save(new CompoundTag(), null).getList("Bindings", Tag.TAG_COMPOUND).isEmpty());
5555
}
56+
@Test
57+
void sharedCreateFrequencyDoesNotMakeDifferentFactoriesInterchangeable() {
58+
UUID network = UUID.randomUUID();
59+
UUID owner = UUID.randomUUID();
60+
UUID team = UUID.randomUUID();
61+
StockLinkBindingData.Binding factoryA = new StockLinkBindingData.Binding(
62+
"minecraft:overworld", 1L, network, UUID.randomUUID(), owner, team);
63+
StockLinkBindingData.Binding anotherLinkInFactoryA = new StockLinkBindingData.Binding(
64+
"minecraft:overworld", 2L, network, factoryA.factoryId(), owner, team);
65+
StockLinkBindingData.Binding factoryBOnSameFrequency = new StockLinkBindingData.Binding(
66+
"minecraft:overworld", 3L, network, UUID.randomUUID(), owner, team);
67+
68+
assertTrue(StockLinkBindingData.belongsToSameFactory(factoryA, anotherLinkInFactoryA));
69+
assertFalse(StockLinkBindingData.belongsToSameFactory(factoryA, factoryBOnSameFrequency));
70+
assertFalse(StockLinkBindingData.belongsToSameFactory(factoryA, null));
71+
}
72+
73+
@Test
74+
void factoryIdentityComparisonIncludesOwnerAndTeam() {
75+
UUID network = UUID.randomUUID();
76+
UUID factory = UUID.randomUUID();
77+
UUID owner = UUID.randomUUID();
78+
UUID team = UUID.randomUUID();
79+
StockLinkBindingData.Binding expected = new StockLinkBindingData.Binding(
80+
"minecraft:overworld", 1L, network, factory, owner, team);
81+
StockLinkBindingData.Binding differentOwner = new StockLinkBindingData.Binding(
82+
"minecraft:overworld", 2L, network, factory, UUID.randomUUID(), team);
83+
StockLinkBindingData.Binding differentTeam = new StockLinkBindingData.Binding(
84+
"minecraft:overworld", 3L, network, factory, owner, UUID.randomUUID());
85+
86+
assertFalse(StockLinkBindingData.belongsToSameFactory(expected, differentOwner));
87+
assertFalse(StockLinkBindingData.belongsToSameFactory(expected, differentTeam));
88+
}
89+
5690
}

0 commit comments

Comments
 (0)