Home / Class/ ChangelogTests Class — spring-boot Architecture

ChangelogTests Class — spring-boot Architecture

Architecture documentation for the ChangelogTests class in ChangelogTests.java from the spring-boot codebase.

Entity Profile

Relationship Graph

Source Code

configuration-metadata/spring-boot-configuration-metadata-changelog-generator/src/test/java/org/springframework/boot/configurationmetadata/changelog/ChangelogTests.java lines 34–85

class ChangelogTests {

	@Test
	void diffContainsDifferencesBetweenLeftAndRightInputs() {
		Changelog differences = TestChangelog.load();
		assertThat(differences).isNotNull();
		assertThat(differences.oldVersionNumber()).isEqualTo("1.0");
		assertThat(differences.newVersionNumber()).isEqualTo("2.0");
		assertThat(differences.differences()).hasSize(9);
		List<Difference> added = differences.differences()
			.stream()
			.filter((difference) -> difference.type() == DifferenceType.ADDED)
			.toList();
		assertThat(added).hasSize(2)
			.anySatisfy((entry) -> assertProperty(entry.newProperty(), "test.add", String.class, "new"))
			.anySatisfy((entry) -> assertProperty(entry.newProperty(), "test.add.deprecated", String.class, "test2"));
		List<Difference> deleted = differences.differences()
			.stream()
			.filter((difference) -> difference.type() == DifferenceType.DELETED)
			.toList();
		assertThat(deleted).hasSize(4)
			.anySatisfy((entry) -> assertProperty(entry.oldProperty(), "test.replace", String.class, "replace"))
			.anySatisfy((entry) -> assertProperty(entry.oldProperty(), "test.delete", String.class, "delete"))
			.anySatisfy(
					(entry) -> assertProperty(entry.newProperty(), "test.delete.deprecated", String.class, "delete"))
			.anySatisfy((entry) -> assertProperty(entry.newProperty(), "test.removed.directly", String.class,
					"directlyRemoved"));
		List<Difference> deprecated = differences.differences()
			.stream()
			.filter((difference) -> difference.type() == DifferenceType.DEPRECATED)
			.toList();
		assertThat(deprecated).hasSize(1);
		assertProperty(deprecated.get(0).oldProperty(), "test.deprecate", String.class, "wrong");
		assertProperty(deprecated.get(0).newProperty(), "test.deprecate", String.class, "wrong");
		List<Difference> defaultChanged = differences.differences()
			.stream()
			.filter((difference) -> difference.type() == DifferenceType.DEFAULT_CHANGED)
			.toList();
		assertThat(defaultChanged).hasSize(2)
			.anySatisfy((entry) -> assertProperty(entry.newProperty(), "test.default.array.change", String[].class,
					new String[] { "b", "a" }))
			.anySatisfy((entry) -> assertProperty(entry.newProperty(), "test.default.change", String.class, "new"));
	}

	private void assertProperty(ConfigurationMetadataProperty property, String id, Class<?> type, Object defaultValue) {
		assertThat(property).isNotNull();
		assertThat(property.getId()).isEqualTo(id);
		assertThat(property.getType()).isEqualTo(type.getCanonicalName());
		assertThat(property.getDefaultValue()).isEqualTo(defaultValue);
	}

}

Domain

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free