@Override
    public AttributedList<Path> list(final Path directory, final ListProgressListener listener) throws BackgroundException {
        if(directory.isRoot()) {
            final AttributedList<Path> list = new AttributedList<>();
            list.add(MYFILES_NAME);
            list.add(SHARED_NAME);
            listener.chunk(directory, list);
            return list;
        }
        else if(new SimplePathPredicate(SHARED_NAME).test(directory)) {
            return new SharedWithMeListService(session, fileid).list(directory, listener);
        }
        else {
            return new GraphItemListService(session, fileid).list(directory, listener);
        }
    }
@Test
    public void testListMyFiles() throws Exception {
        final AttributedList<Path> list = new OneDriveListService(session, fileid).list(OneDriveListService.MYFILES_NAME, new DisabledListProgressListener());
        assertFalse(list.isEmpty());
        for(Path f : list) {
            assertEquals(OneDriveListService.MYFILES_NAME, f.getParent());
        }
    }