/*
* Copyright 2010 The Rabbit Eclipse Plug-in Project
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy of
* the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations under
* the License.
*/
package rabbit.ui.internal.viewers;
import static org.hamcrest.CoreMatchers.equalTo;
import static org.hamcrest.CoreMatchers.notNullValue;
import static org.junit.Assert.assertThat;
import static org.mockito.BDDMockito.given;
import static org.mockito.Mockito.mock;
import org.eclipse.core.resources.IFile;
import org.eclipse.core.resources.IFolder;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.resources.IWorkspaceRoot;
import org.eclipse.core.resources.ResourcesPlugin;
import org.eclipse.core.runtime.Path;
import org.eclipse.swt.SWT;
import org.eclipse.swt.graphics.Color;
import org.eclipse.ui.PlatformUI;
import org.junit.Test;
public class ResourceLabelProviderTest extends NullLabelProviderTest {
private final IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot();
@Test
public void getForegroundShouldReturnDarkGrayForANonExistFile() {
Color expectedColor = PlatformUI.getWorkbench().getDisplay()
.getSystemColor(SWT.COLOR_DARK_GRAY);
IFile file = mock(IFile.class);
given(file.exists()).willReturn(false);
assertThat(provider.getForeground(file), equalTo(expectedColor));
}
@Test
public void getForegroundShouldReturnDarkGrayForANonExistFolder() {
Color expectedColor = PlatformUI.getWorkbench().getDisplay()
.getSystemColor(SWT.COLOR_DARK_GRAY);
IFolder folder = mock(IFolder.class);
given(folder.exists()).willReturn(false);
assertThat(provider.getForeground(folder), equalTo(expectedColor));
}
@Test
public void getForegroundShouldReturnDarkGrayForANonExistProject() {
Color expectedColor = PlatformUI.getWorkbench().getDisplay()
.getSystemColor(SWT.COLOR_DARK_GRAY);
IProject project = mock(IProject.class);
given(project.exists()).willReturn(false);
assertThat(provider.getForeground(project), equalTo(expectedColor));
}
@Test
public void getImageShouldReturnAnImageForAFile() {
IFile file = root.getFile(new Path("/project/file"));
assertThat(provider.getImage(file), notNullValue());
}
@Test
public void getImageShouldReturnAnImageForAFolder() {
IFolder folder = root.getFolder(new Path("/project/folder"));
assertThat(provider.getImage(folder), notNullValue());
}
@Test
public void getImageShouldReturnAnImageForAProject() {
IProject project = root.getProject("project");
assertThat(provider.getImage(project), notNullValue());
}
@Test
public void getTextShouldReturnTheNameOfAFile() {
String expectedName = "File1";
IFile file = root.getFile(new Path("/project/folder/" + expectedName));
assertThat(provider.getText(file), equalTo(expectedName));
}
@Test
public void getTextShouldReturnTheNameOfAProject() {
String expectedName = "Project1";
IProject project = root.getProject(expectedName);
assertThat(provider.getText(project), equalTo(expectedName));
}
@Test
public void getTextShouldReturnTheRelativePathOfAFolder() {
String expectedPath = "folderA/folderB";
IFolder folder = root.getFolder(new Path("project/" + expectedPath));
assertThat(provider.getText(folder), equalTo(expectedPath));
}
@Override
protected NullLabelProvider create() {
return new ResourceLabelProvider();
}
}