public async Task DeleteInaccessibleWorkspacesNotReferencedByTimeEntries()
        {
            var accessibleReferenced     = new MockWorkspace(1, false, SyncStatus.InSync);
            var accessibleUnreferenced   = new MockWorkspace(2, false, SyncStatus.InSync);
            var inaccessibleReferenced   = new MockWorkspace(3, true, SyncStatus.InSync);
            var inaccessibleUnreferenced = new MockWorkspace(4, true, SyncStatus.InSync);

            var timeEntry1 = new MockTimeEntry(11, accessibleReferenced, syncStatus: SyncStatus.InSync);
            var timeEntry2 = new MockTimeEntry(22, inaccessibleReferenced, syncStatus: SyncStatus.InSync);

            var workspaces  = new[] { accessibleReferenced, accessibleUnreferenced, inaccessibleReferenced, inaccessibleUnreferenced };
            var timeEntries = new[] { timeEntry1, timeEntry2 };

            configureDataSources(workspaces, timeEntries: timeEntries);

            await state.Start().SingleAsync();

            workspacesDataSource.Received().DeleteAll(Arg.Is <IEnumerable <IThreadSafeWorkspace> >(
                                                          arg => arg.All(ws => ws == inaccessibleUnreferenced)));
        }