/*******************************************************************************
* Copyright (c) 2015 Tasktop Technologies and others.
* 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:
* Tasktop Technologies - initial API and implementation
*******************************************************************************/
package org.eclipse.mylyn.internal.tasks.ui.wizards;
import static org.junit.Assert.assertEquals;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.when;
import java.util.Arrays;
import java.util.Collection;
import org.eclipse.mylyn.internal.tasks.ui.BrandManager;
import org.eclipse.mylyn.internal.tasks.ui.ConnectorBrand;
import org.eclipse.mylyn.internal.tasks.ui.wizards.SelectRepositoryConnectorPage.ConnectorBrandContentProvider;
import org.eclipse.mylyn.tasks.tests.connector.MockRepositoryConnector;
import org.junit.Test;
import com.google.common.collect.ImmutableList;
public class ConnectorBrandContentProviderTest {
@Test
public void testGetElementsNoConnectors() {
Collection<MockRepositoryConnector> connectors = ImmutableList.of();
BrandManager brandManager = mock(BrandManager.class);
ConnectorBrandContentProvider provider = new ConnectorBrandContentProvider(brandManager, connectors);
assertEquals(0, provider.getElements(null).length);
}
@Test
public void testGetElementsMultipleConnectors() {
MockRepositoryConnector cantCreateRepository = mockConnector("cantCreateRepository");
when(cantCreateRepository.canCreateRepository()).thenReturn(false);
MockRepositoryConnector notUserManaged = mockConnector("notUserManaged");
when(notUserManaged.isUserManaged()).thenReturn(false);
MockRepositoryConnector c1 = mockConnector("c1");
MockRepositoryConnector c2 = mockConnector("c2");
MockRepositoryConnector c3 = mockConnector("c3");
Collection<MockRepositoryConnector> connectors = ImmutableList.of(c1, c2, notUserManaged, cantCreateRepository,
c3);
BrandManager brandManager = mock(BrandManager.class);
ConnectorBrandContentProvider provider = new ConnectorBrandContentProvider(brandManager, connectors);
assertBrands(provider, new ConnectorBrand(c1, null), new ConnectorBrand(c2, null), new ConnectorBrand(c3, null));
when(brandManager.getBrands(c1.getConnectorKind())).thenReturn(ImmutableList.of("a", "b", "c"));
when(brandManager.getBrands(c2.getConnectorKind())).thenReturn(ImmutableList.<String> of());
when(brandManager.getBrands(c3.getConnectorKind())).thenReturn(ImmutableList.of("d"));
assertBrands(provider, new ConnectorBrand(c1, null), new ConnectorBrand(c1, "a"), new ConnectorBrand(c1, "b"),
new ConnectorBrand(c1, "c"), new ConnectorBrand(c2, null), new ConnectorBrand(c3, null),
new ConnectorBrand(c3, "d"));
}
protected MockRepositoryConnector mockConnector(String kind) {
MockRepositoryConnector spy = spy(new MockRepositoryConnector());
when(spy.getConnectorKind()).thenReturn(kind);
return spy;
}
protected void assertBrands(ConnectorBrandContentProvider provider, ConnectorBrand... brands) {
assertEquals(Arrays.asList(brands), Arrays.asList(provider.getElements(null)));
}
}