blob: 92bbb122e6c92d120108679b61719b1fd6d99edb [file] [log] [blame]
package org.eclipse.platform.discovery.destprefs.test.unit.prefpage;
import java.util.HashSet;
import java.util.Set;
import org.eclipse.platform.discovery.destprefs.internal.prefpage.ui.DestinationConfiguratorsPresenter;
import org.eclipse.platform.discovery.destprefs.internal.prefpage.ui.IDestinationConfiguratorsView;
import org.eclipse.platform.discovery.destprefs.internal.xpparser.SearchDestinationsConfiguratorXPParser;
import org.eclipse.platform.discovery.runtime.api.IDestinationsProvider;
import org.eclipse.platform.discovery.runtime.api.ISearchDestination;
import org.eclipse.platform.discovery.testutils.utils.registry.ExtensionRegistryBuilder;
import org.junit.Before;
import org.junit.Test;
import org.mockito.Mock;
import org.mockito.Mockito;
import org.mockito.MockitoAnnotations;
public class DestinationConfiguratorsPresenterTest {
private static final String DEST_PROV_ID_1 = "prov1";
private ExtensionRegistryBuilder registryBuilder;
private DestinationConfiguratorsPresenter presenter;
@Mock
private IDestinationConfiguratorsView view;
private ISearchDestination dest1;
@Before
public void setup() {
MockitoAnnotations.initMocks(this);
registryBuilder = new ExtensionRegistryBuilder();
registryBuilder.addDestinationCategory("cat1", "cat1");
IDestinationsProvider prov1 = Mockito.mock(IDestinationsProvider.class);
registryBuilder.addDestinationsProvider(DEST_PROV_ID_1, "cat1", null, prov1.getClass().getCanonicalName(), prov1);
Set<ISearchDestination> destinations1 = new HashSet<ISearchDestination>();
dest1 = Mockito.mock(ISearchDestination.class);
destinations1.add(dest1);
Mockito.when(prov1.getSearchDestinations()).thenReturn(destinations1);
SearchDestinationsConfiguratorXPParser parser = new SearchDestinationsConfiguratorXPParser(registryBuilder.getRegistry());
presenter = new DestinationConfiguratorsPresenter(parser);
presenter.setView(view);
}
@Test
public void destinationSelectedTogglesEnablement() {
presenter.destinationSelected(dest1);
Mockito.verify(view).setAddEnabled(Mockito.eq(true));
Mockito.verify(view).setEditEnabled(Mockito.eq(true));
Mockito.verify(view).setRemoveEnabled(Mockito.eq(true));
}
@Test
public void destinationSelectedThenAdd() {
presenter.destinationSelected(dest1);
presenter.addDestination(DEST_PROV_ID_1);
Mockito.verify(view).setAddEnabled(Mockito.eq(true));
Mockito.verify(view).setEditEnabled(Mockito.eq(true));
Mockito.verify(view).setRemoveEnabled(Mockito.eq(true));
}
}