Skip to content

Commit

Permalink
Add details to ModifiedTrait event id
Browse files Browse the repository at this point in the history
This commit adds the DiffType and TraitId to the ValidationEventId
emitted by the ModifiedTrait diff evaluator.
  • Loading branch information
jvschneid committed Dec 30, 2022
1 parent b63e2d1 commit 3746f12
Show file tree
Hide file tree
Showing 2 changed files with 18 additions and 9 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,7 @@
import software.amazon.smithy.model.validation.ValidationEvent;
import software.amazon.smithy.utils.ListUtils;
import software.amazon.smithy.utils.SetUtils;
import software.amazon.smithy.utils.StringUtils;

/**
* Finds breaking changes related to when a trait is added, removed, or
Expand Down Expand Up @@ -235,7 +236,7 @@ List<ValidationEvent> validate(
}

return Collections.singletonList(ValidationEvent.builder()
.id(ModifiedTrait.class.getSimpleName())
.id(getValidationEventId(this, trait))
.severity(severity)
.shape(shape)
.sourceLocation(right)
Expand Down Expand Up @@ -269,7 +270,7 @@ List<ValidationEvent> validate(
}

return Collections.singletonList(ValidationEvent.builder()
.id(ModifiedTrait.class.getSimpleName())
.id(getValidationEventId(this, trait))
.severity(severity)
.shape(shape)
.message(message)
Expand Down Expand Up @@ -303,7 +304,7 @@ List<ValidationEvent> validate(
}

return Collections.singletonList(ValidationEvent.builder()
.id(ModifiedTrait.class.getSimpleName())
.id(getValidationEventId(this, trait))
.severity(severity)
.shape(shape)
.message(message)
Expand Down Expand Up @@ -368,6 +369,11 @@ abstract List<ValidationEvent> validate(
Node left,
Node right,
Severity severity);

private static String getValidationEventId(DiffType diffType, ShapeId trait) {
return String.format("%s.%s.%s", ModifiedTrait.class.getSimpleName(),
StringUtils.capitalize(StringUtils.lowerCase(diffType.toString())), trait);
}
}

private static void crawlContents(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -68,19 +68,20 @@ public TestCaseData(String oldValue, String newValue) {

@ParameterizedTest
@MethodSource("data")
public void testConst(String oldValue, String newValue, String tag, String searchString) {
public void testConst(String oldValue, String newValue, String diffType, String tag, String searchString) {
TestCaseData data = new TestCaseData(oldValue, newValue);
Shape definition = createDefinition("diff.error.const");
Model modelA = Model.assembler().addShape(definition).addShape(data.oldShape).assemble().unwrap();
Model modelB = Model.assembler().addShape(definition).addShape(data.newShape).assemble().unwrap();
List<ValidationEvent> events = ModelDiff.compare(modelA, modelB);

assertThat(TestHelper.findEvents(events, "ModifiedTrait").size(), equalTo(1));
assertThat(events.get(0).getId(), equalTo(String.format("ModifiedTrait.%s.%s", diffType, ID)));
}

@ParameterizedTest
@MethodSource("data")
public void testWithTag(String oldValue, String newValue, String tag, String searchString) {
public void testWithTag(String oldValue, String newValue, String diffType, String tag, String searchString) {
TestCaseData data = new TestCaseData(oldValue, newValue);

Shape definition = createDefinition(tag);
Expand All @@ -89,19 +90,21 @@ public void testWithTag(String oldValue, String newValue, String tag, String sea
List<ValidationEvent> events = ModelDiff.compare(modelA, modelB);

assertThat(TestHelper.findEvents(events, "ModifiedTrait").size(), equalTo(1));
assertThat(events.get(0).getId(), equalTo(String.format("ModifiedTrait.%s.%s", diffType, ID)));
assertThat(events.get(0).getMessage(), containsString(searchString));
}

@ParameterizedTest
@MethodSource("data")
public void testWithoutDefinition(String oldValue, String newValue, String tag, String searchString) {
public void testWithoutDefinition(String oldValue, String newValue, String diffType, String tag, String searchString) {
TestCaseData data = new TestCaseData(oldValue, newValue);

Model modelA = Model.assembler().addShape(data.oldShape).assemble().unwrap();
Model modelB = Model.assembler().addShape(data.newShape).assemble().unwrap();
List<ValidationEvent> events = ModelDiff.compare(modelA, modelB);

assertThat(TestHelper.findEvents(events, "ModifiedTrait").size(), equalTo(1));
assertThat(events.get(0).getId(), equalTo(String.format("ModifiedTrait.%s.%s", diffType, ID)));
assertThat(events.get(0).getMessage(), containsString(searchString));
for (ValidationEvent event : events) {
assertThat(event.getSeverity(), equalTo(Severity.WARNING));
Expand All @@ -110,9 +113,9 @@ public void testWithoutDefinition(String oldValue, String newValue, String tag,

public static Collection<String[]> data() {
return Arrays.asList(new String[][] {
{null, "hi", "diff.error.add", "Added"},
{"hi", null, "diff.error.remove", "Removed"},
{"foo", "baz", "diff.error.update", "Changed"},
{null, "hi", "Add", "diff.error.add", "Added"},
{"hi", null, "Remove", "diff.error.remove", "Removed"},
{"foo", "baz", "Update", "diff.error.update", "Changed"},
});
}

Expand Down

0 comments on commit 3746f12

Please sign in to comment.