Привет, я хочу написать тест ArchUnit для классов обслуживания так, чтобы Полям не разрешалось быть датой. Пока я могу сделать что-то близкое к тому, что мне нужно, выполнив следующее:
@Test
public void all_public_methods_in_the_controller_layer_should_return_API_response_wrappers2() {
JavaClasses importedClasses = new ClassFileImporter().importPackages("com.some.package");
methods().that().areDeclaredInClassesThat().areAnnotatedWith(XmlAccessorType.class).and().areDeclaredInClassesThat().resideInAPackage("..webservice..").and().arePublic().and().haveNameMatching("Date").should().haveRawReturnType(SomeOtherDate.class).because("bla bla bla").check(importedClasses);
}
Нонаписание аналогичных тестов для полей просто проходит, хотя классы содержат поля даты.
пример:
@Test
public void some_architecture_rule22() {
JavaClasses importedClasses = new ClassFileImporter().importPackages("com.some.package");
fields().that().areDeclaredIn(SomeClass.java).and().arePrivate().and().haveRawType(Date.class).should().haveRawType(SomeOtherDate.class).because("bla bla bla").check(importedClasses);
}