From 43156af3f65989872b8b46d4eff815393faf5126 Mon Sep 17 00:00:00 2001 From: danhaywood Date: Sun, 5 Feb 2023 12:56:53 +0000 Subject: [PATCH] #1045: tests as black box --- .../library/freeze/TextFileBasedViolationStore.java | 8 +------- .../freeze/TextFileBasedViolationStoreTest.java | 13 ++++++++++++- 2 files changed, 13 insertions(+), 8 deletions(-) diff --git a/archunit/src/main/java/com/tngtech/archunit/library/freeze/TextFileBasedViolationStore.java b/archunit/src/main/java/com/tngtech/archunit/library/freeze/TextFileBasedViolationStore.java index 5e2da6d68a..626ebe757d 100644 --- a/archunit/src/main/java/com/tngtech/archunit/library/freeze/TextFileBasedViolationStore.java +++ b/archunit/src/main/java/com/tngtech/archunit/library/freeze/TextFileBasedViolationStore.java @@ -29,7 +29,6 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import com.google.common.annotations.VisibleForTesting; import com.google.common.base.Joiner; import com.google.common.base.Splitter; import com.tngtech.archunit.PublicAPI; @@ -153,18 +152,13 @@ private String ensureRuleFileName(ArchRule rule) { ruleFileName = storedRules.getProperty(ruleDescription); log.debug("Rule '{}' is already stored in file {}", ruleDescription, ruleFileName); } else { - ruleFileName = newRuleFileName(ruleDescription); + ruleFileName = this.ruleFileNameStrategy.apply(ruleDescription); log.debug("Assigning new file {} to rule '{}'", ruleFileName, ruleDescription); storedRules.setProperty(ruleDescription, ruleFileName); } return ruleFileName; } - @VisibleForTesting() - String newRuleFileName(String description) { - return this.ruleFileNameStrategy.apply(description); - } - @Override public List getViolations(ArchRule rule) { String ruleDetailsFileName = storedRules.getProperty(rule.getDescription()); diff --git a/archunit/src/test/java/com/tngtech/archunit/library/freeze/TextFileBasedViolationStoreTest.java b/archunit/src/test/java/com/tngtech/archunit/library/freeze/TextFileBasedViolationStoreTest.java index 55dd6d9e63..6f3dee0f36 100644 --- a/archunit/src/test/java/com/tngtech/archunit/library/freeze/TextFileBasedViolationStoreTest.java +++ b/archunit/src/test/java/com/tngtech/archunit/library/freeze/TextFileBasedViolationStoreTest.java @@ -121,14 +121,25 @@ public void stores_violations_with_line_breaks() { @Test public void class_can_be_overridden_and_rule_file_name_strategy_supplied() { + + // given class MySubclassOfTextFileBasedViolationStore extends TextFileBasedViolationStore { public MySubclassOfTextFileBasedViolationStore() { super(s -> s + " xxx"); } }; TextFileBasedViolationStore store = new MySubclassOfTextFileBasedViolationStore(); + store.initialize(propertiesOf( + "default.path", configuredFolder.getAbsolutePath(), + "default.allowStoreCreation", String.valueOf(true))); + + // when + ArchRule firstRule = rule("first rule"); + store.save(firstRule, ImmutableList.of("first violation1", "first violation2")); - assertThat(store.newRuleFileName("abc")).isEqualTo("abc xxx"); + // then + String fileName = configuredFolder.listFiles()[0].getName(); + assertThat(fileName).isEqualTo("first rule xxx"); } private Properties readProperties(File file) throws IOException {