@Test
public void addProjectionInterfacesAddsProjectionInterfaces() throws MultipleDefaultProjectionsException, MultipleSimilarlyNamedProjectionsException {

    // given
    var expectedName = "name";
    var expectedTarget = (Class) Integer.class;
    var expectedBasePackage = "de/test";
    given(typeScannerMock.findTypes(expectedBasePackage)).willReturn(Set.of(annotatedClass));
    given(annotationUtilsWrapperMock.findAnnotation(annotatedClass, NamedProjection.class))
            .willReturn(namedProjectionAnnotationMock);
    given(namedProjectionAnnotationMock.target())
            .willReturn(expectedTarget);
    given(namedProjectionAnnotationMock.name())
            .willReturn(expectedName);
    given(namedProjectionAnnotationMock.defaultProjection())
            .willReturn(true);
    // when
    projectionService.addProjectionInterfaces(expectedBasePackage);
    // then
    var softly = new SoftAssertions();
    softly.assertThat(projectionService.projectionClassMap)
            .containsExactly(entry(Pair.of(expectedName, expectedTarget), (Class<?>) annotatedClass));
    softly.assertThat(projectionService.defaultProjectionClassMap)
            .containsExactly(entry((Class<?>) expectedTarget, (Class<?>) annotatedClass));
    softly.assertAll();
}