public AccountDataResult getAccountData(long accountId) {
        Future<Map<String, Object>> accountDataFuture = accountClient.getAccountData(accountId);
        Future<Integer> unreadNotificationsFuture = notificationService.asyncUnreadNotificationCount(accountId);

        AccountDataResult result;
        try {
            result = objectMapper.convertValue(accountDataFuture.get(), AccountDataResult.class);
        } catch (IllegalArgumentException | InterruptedException | ExecutionException e) {
            throw new AccountRuntimeException("TODO", e);
        }
        try {
            result.setUnreadNotifications(unreadNotificationsFuture.get());
        } catch (InterruptedException | ExecutionException e) {
            throw new AccountRuntimeException("TODO", e);
        }
        return result;
    }
@Test
    public void testGetAccountData() {
        Map<String, Object> result = Map.of(
                "status", "OK",
                "error", "custom error",
                "email_status", "VERIFIED",
                "setting_2_factor", "true",
                "classified_deceased", "true");

        when(accountClient.getAccountData(anyLong())).thenReturn(new AsyncResult<Map<String, Object>>(result));
        when(notificationService.asyncUnreadNotificationCount(anyLong())).thenReturn(new AsyncResult<Integer>(1));

        AccountDataResult accountData = accountService.getAccountData(1);

        assertEquals(Status.OK, accountData.getStatus());
        assertEquals("custom error", accountData.getError());
        assertEquals(1, accountData.getUnreadNotifications());
        assertEquals(true, accountData.getClassifiedDeceased());
        assertEquals(EmailStatus.VERIFIED, accountData.getEmailStatus());
        assertEquals(true, accountData.getSetting2Factor());
    }