/** * Copyright (c) 2010, 2012 Darmstadt University of Technology. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Patrick Gottschaemmer, Olav Lenz - initial tests */ package org.eclipse.recommenders.tests.apidocs; import static org.junit.Assert.*; import static org.mockito.Mockito.*; import java.util.List; import org.eclipse.recommenders.apidocs.rcp.ApidocProvider; import org.eclipse.recommenders.internal.apidocs.rcp.ApidocsPreferences; import org.eclipse.recommenders.internal.apidocs.rcp.ApidocsView; import org.eclipse.recommenders.internal.apidocs.rcp.SubscriptionManager; import org.junit.Before; import org.junit.Test; import com.google.common.collect.Lists; import com.google.common.eventbus.EventBus; public class ProviderStoreTest { private ApidocsView view; private ApidocProvider provider0; private ApidocProvider provider1; private ApidocProvider provider2; private ApidocProvider additionalProvider; private List<ApidocProvider> providers; private ApidocsPreferences preferences; @Before public void setup() { preferences = new ApidocsPreferences(); boolean nodeCleared = preferences.clearProviderRankingPreferences(); if (!nodeCleared) { fail("Test fails because of clearing of ProviderRanking store failed."); } provider0 = createProviderMock("provider0"); provider1 = createProviderMock("provider1"); provider2 = createProviderMock("provider2"); additionalProvider = createProviderMock("additionalProvider"); providers = Lists.newArrayList(provider0, provider1, provider2); view = createView(providers); } private ApidocProvider createProviderMock(String name) { ApidocProvider mock = mock(ApidocProvider.class); when(mock.getId()).thenReturn(name); return mock; } private ApidocsView createView(List<ApidocProvider> providers) { EventBus bus = mock(EventBus.class); SubscriptionManager subManger = mock(SubscriptionManager.class); return new ApidocsView(bus, subManger, providers, preferences); } @Test public void removeProvider() { view.storeProviderRanking(); providers.remove(provider1); view = createView(providers); List<ApidocProvider> expectedProviders = Lists.newArrayList(provider0, provider2); assertEquals(view.getProviderRanking(), expectedProviders); } @Test public void addProvider() { view.storeProviderRanking(); providers.add(1, additionalProvider); view = createView(providers); List<ApidocProvider> expectedProviders = Lists.newArrayList(provider0, provider1, provider2, additionalProvider); assertEquals(view.getProviderRanking(), expectedProviders); } @Test public void modifyProviderOrder() { view.moveAfter(0, 1); view.storeProviderRanking(); providers.remove(provider2); providers.add(additionalProvider); view = createView(providers); List<ApidocProvider> expectedProviders = Lists.newArrayList(provider1, provider0, additionalProvider); assertEquals(view.getProviderRanking(), expectedProviders); } }