@Test public void testGetSyncStagesBy() throws SyncConfigurationException, IllegalArgumentException, NonObjectJSONException, IOException, ParseException, CryptoException, NoSuchStageException { final MockGlobalSessionCallback callback = new MockGlobalSessionCallback(); GlobalSession s = MockPrefsGlobalSession.getSession( TEST_USERNAME, TEST_PASSWORD, new KeyBundle(TEST_USERNAME, TEST_SYNC_KEY), callback, /* context */ null, null); assertTrue( s.getSyncStageByName(Stage.syncBookmarks) instanceof AndroidBrowserBookmarksServerSyncStage); final Set<String> empty = new HashSet<String>(); final Set<String> bookmarksAndTabsNames = new HashSet<String>(); bookmarksAndTabsNames.add("bookmarks"); bookmarksAndTabsNames.add("tabs"); final Set<GlobalSyncStage> bookmarksAndTabsSyncStages = new HashSet<GlobalSyncStage>(); GlobalSyncStage bookmarksStage = s.getSyncStageByName("bookmarks"); GlobalSyncStage tabsStage = s.getSyncStageByName(Stage.syncTabs); bookmarksAndTabsSyncStages.add(bookmarksStage); bookmarksAndTabsSyncStages.add(tabsStage); final Set<Stage> bookmarksAndTabsEnums = new HashSet<Stage>(); bookmarksAndTabsEnums.add(Stage.syncBookmarks); bookmarksAndTabsEnums.add(Stage.syncTabs); assertTrue(s.getSyncStagesByName(empty).isEmpty()); assertEquals( bookmarksAndTabsSyncStages, new HashSet<GlobalSyncStage>(s.getSyncStagesByName(bookmarksAndTabsNames))); assertEquals( bookmarksAndTabsSyncStages, new HashSet<GlobalSyncStage>(s.getSyncStagesByEnum(bookmarksAndTabsEnums))); }