Skip to content

Commit 193f7df

Browse files
XxFran10xXclaude
andcommitted
Cover the sharing command, menu buttons and report header
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
1 parent 67bce8b commit 193f7df

2 files changed

Lines changed: 61 additions & 0 deletions

File tree

‎src/test/java/net/tfminecraft/simplefactions/espionage/EspionageMenusCoverageTest.java‎

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -309,6 +309,37 @@ void privateConductCyclesEachSettingAndPreservesReportsAndTheOtherSetting() {
309309
assertEquals(Material.LIME_DYE, top(spy).getItem(11).getType());
310310
}
311311

312+
@Test
313+
void sharingCyclesEachPartnerAndReportsNameTheSharedTierWhileSharingIsAllowed() {
314+
EspionageView.settings(spy, home, manager);
315+
assertTrue(text(top(spy).getItem(21)).contains("Sharing nothing"));
316+
for (IntelligenceTier expected :
317+
new IntelligenceTier[] {
318+
IntelligenceTier.RUMOURS,
319+
IntelligenceTier.BROAD,
320+
IntelligenceTier.RELIABLE,
321+
IntelligenceTier.DETAILED,
322+
IntelligenceTier.UNKNOWN
323+
}) {
324+
click(spy, 21);
325+
assertEquals(expected, home.getEspionage().sharing(SharingPartner.OVERLORD));
326+
}
327+
click(spy, 23);
328+
assertEquals(IntelligenceTier.RUMOURS, home.getEspionage().sharing(SharingPartner.VASSALS));
329+
assertTrue(text(top(spy).getItem(23)).contains("Sharing up to Rumours"));
330+
report.shared = "broad";
331+
EspionageView.foreignPositions(leader, target, manager);
332+
assertTrue(
333+
text(top(leader).getItem(4)).contains("shares everything up to Broad estimates exactly"));
334+
YamlConfiguration config = new YamlConfiguration();
335+
config.set("espionage.vassalage.allow-sharing", false);
336+
EspionageConfig.load(config);
337+
EspionageView.foreignPositions(leader, target, manager);
338+
assertFalse(text(top(leader).getItem(4)).contains("shares everything"));
339+
EspionageView.settings(spy, home, manager);
340+
assertNull(top(spy).getItem(21));
341+
}
342+
312343
@Test
313344
void staleOfficeOwnershipAndFactionMembershipClosePrivateMenus() {
314345
EspionageView.settings(spy, home, manager);

‎src/test/java/net/tfminecraft/simplefactions/espionage/EspionageOperationsCoverageTest.java‎

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -482,6 +482,36 @@ void completionListsOnlyAuthorizedOnlineAppointmentsAndPrivateConductChoices() t
482482
EspionageCommands.complete(leader, new String[] {"spymaster", "sabotage", "defense", "5"}));
483483
}
484484

485+
@Test
486+
void spymastersShareByCommandAndInvalidSharingArgumentsChangeNothing() throws Exception {
487+
offices();
488+
assertTrue(
489+
EspionageCommands.handle(leader, new String[] {"spymaster", "share", "vassals", "broad"}));
490+
assertEquals(IntelligenceTier.BROAD, home.getEspionage().sharing(SharingPartner.VASSALS));
491+
assertTrue(
492+
EspionageCommands.handle(
493+
leader, new String[] {"spymaster", "share", "overlord", "reliable"}));
494+
assertEquals(IntelligenceTier.RELIABLE, home.getEspionage().sharing(SharingPartner.OVERLORD));
495+
assertTrue(
496+
EspionageCommands.handle(leader, new String[] {"spymaster", "share", "vassals", "none"}));
497+
assertEquals(IntelligenceTier.UNKNOWN, home.getEspionage().sharing(SharingPartner.VASSALS));
498+
clearInvocations(leader);
499+
assertTrue(
500+
EspionageCommands.handle(leader, new String[] {"spymaster", "share", "allies", "broad"}));
501+
assertTrue(
502+
EspionageCommands.handle(
503+
leader, new String[] {"spymaster", "share", "overlord", "everything"}));
504+
assertEquals(IntelligenceTier.RELIABLE, home.getEspionage().sharing(SharingPartner.OVERLORD));
505+
verify(leader, times(2)).sendMessage(contains("<overlord|vassals>"));
506+
assertTrue(EspionageCommands.complete(leader, new String[] {"spymaster", ""}).contains("share"));
507+
assertEquals(
508+
List.of("overlord", "vassals"),
509+
EspionageCommands.complete(leader, new String[] {"spymaster", "share", ""}));
510+
assertEquals(
511+
List.of("rumours", "reliable"),
512+
EspionageCommands.complete(leader, new String[] {"spymaster", "share", "vassals", "r"}));
513+
}
514+
485515
@ParameterizedTest
486516
@ValueSource(
487517
strings = {"null", "offline", "foreign", "no-character", "already-holder", "cooldown"})

0 commit comments

Comments
 (0)