/*
* Copyright 2017 Red Hat, Inc. and/or its affiliates.
*
* 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 org.kie.workbench.common.screens.library.client.util;
import java.util.ArrayList;
import java.util.List;
import org.jboss.errai.ioc.client.api.ManagedInstance;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.kie.workbench.common.screens.explorer.client.utils.Classifier;
import org.kie.workbench.common.widgets.client.handlers.NewResourceHandler;
import org.mockito.Mock;
import org.mockito.runners.MockitoJUnitRunner;
import org.uberfire.backend.vfs.Path;
import org.uberfire.client.workbench.type.ClientResourceType;
import static org.junit.Assert.*;
import static org.mockito.Mockito.*;
@RunWith(MockitoJUnitRunner.class)
public class ResourceUtilsTest {
@Mock
private Classifier classifier;
@Mock
private ManagedInstance<NewResourceHandler> newResourceHandlers;
private ResourceUtils resourceUtils;
@Before
public void setup() {
resourceUtils = spy(new ResourceUtils(classifier,
newResourceHandlers));
ClientResourceType clientResourceType = mock(ClientResourceType.class);
doReturn("java").when(clientResourceType).getSuffix();
doReturn(clientResourceType).when(classifier).findResourceType(any(Path.class));
doReturn(getNewResourceHandlers()).when(resourceUtils).getNewResourceHandlers();
}
@Test
public void getBaseFileNameTest() {
assertEquals("MyClass",
resourceUtils.getBaseFileName(getPath("MyClass.java")));
assertEquals("MyClass.txt",
resourceUtils.getBaseFileName(getPath("MyClass.txt.java")));
}
private Path getPath(final String fileName) {
final Path path = mock(Path.class);
doReturn(fileName).when(path).getFileName();
return path;
}
@Test
public void getOrderedNewResourceHandlersTest() {
final List<NewResourceHandler> orderedNewResourceHandlers = resourceUtils.getOrderedNewResourceHandlers();
assertEquals("B",
orderedNewResourceHandlers.get(0).getDescription());
assertEquals("A",
orderedNewResourceHandlers.get(1).getDescription());
assertEquals("b",
orderedNewResourceHandlers.get(2).getDescription());
assertEquals("c",
orderedNewResourceHandlers.get(3).getDescription());
assertEquals("C",
orderedNewResourceHandlers.get(4).getDescription());
assertEquals("a",
orderedNewResourceHandlers.get(5).getDescription());
}
@Test
public void getAlphabeticallyOrderedNewResourceHandlersTest() {
final List<NewResourceHandler> alphabeticallyOrderedNewResourceHandlers = resourceUtils.getAlphabeticallyOrderedNewResourceHandlers();
assertEquals("a",
alphabeticallyOrderedNewResourceHandlers.get(0).getDescription());
assertEquals("A",
alphabeticallyOrderedNewResourceHandlers.get(1).getDescription());
assertEquals("b",
alphabeticallyOrderedNewResourceHandlers.get(2).getDescription());
assertEquals("B",
alphabeticallyOrderedNewResourceHandlers.get(3).getDescription());
assertEquals("c",
alphabeticallyOrderedNewResourceHandlers.get(4).getDescription());
assertEquals("C",
alphabeticallyOrderedNewResourceHandlers.get(5).getDescription());
}
private List<NewResourceHandler> getNewResourceHandlers() {
List<NewResourceHandler> newResourceHandlers = new ArrayList<>();
newResourceHandlers.add(createNewResourceHandler("b",
0));
newResourceHandlers.add(createNewResourceHandler("c",
0));
newResourceHandlers.add(createNewResourceHandler("B",
-10));
newResourceHandlers.add(createNewResourceHandler("a",
10));
newResourceHandlers.add(createNewResourceHandler("A",
0));
newResourceHandlers.add(createNewResourceHandler("C",
0));
return newResourceHandlers;
}
private NewResourceHandler createNewResourceHandler(String description,
int order) {
NewResourceHandler newResourceHandler = mock(NewResourceHandler.class);
doReturn(description).when(newResourceHandler).getDescription();
doReturn(order).when(newResourceHandler).order();
return newResourceHandler;
}
}