@Test
public void prettifyKey_withTwoLevelParentKey() {

    // Given
    KeyDto childKeyDto = mock(KeyDto.class);
    given(childKeyDto.getKind()).willReturn("child_kind");
    given(childKeyDto.getId()).willReturn(3L);
    KeyDto parentKeyDto = mock(KeyDto.class);
    given(parentKeyDto.getKind()).willReturn("parent_kind");
    given(parentKeyDto.getId()).willReturn(1L);
    KeyDto grandParentKeyDto = mock(KeyDto.class);
    given(grandParentKeyDto.getKind()).willReturn("grandparent_kind");
    given(grandParentKeyDto.getName()).willReturn("some_name");
    given(childKeyDto.getParentKey()).willReturn(parentKeyDto);
    given(parentKeyDto.getParentKey()).willReturn(grandParentKeyDto);
    // When
    String prettifiedKey = keyPrettifier.prettifyKey(childKeyDto);
    // Then
    assertEquals("grandparent_kind (some_name) > parent_kind (1) > child_kind (3)", prettifiedKey);
}