/*******************************************************************************
* Copyright (c) 2012-2015 Codenvy, S.A.
* 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:
* Codenvy, S.A. - initial API and implementation
*******************************************************************************/
package org.eclipse.che.ide.ext.java.client.projecttree.nodes;
import org.eclipse.che.api.project.gwt.client.ProjectServiceClient;
import org.eclipse.che.api.project.shared.dto.ItemReference;
import org.eclipse.che.ide.api.project.tree.TreeNode;
import org.eclipse.che.ide.ext.java.client.projecttree.JavaTreeStructure;
import org.eclipse.che.ide.rest.DtoUnmarshallerFactory;
import com.google.web.bindery.event.shared.EventBus;
import org.junit.Before;
import org.junit.Test;
import org.mockito.Mock;
import static org.junit.Assert.assertFalse;
import static org.mockito.Matchers.eq;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
/** @author Artem Zatsarynnyy */
public class AbstractSourceContainerNodeTest extends BaseNodeTest {
@Mock
private ItemReference folderItemReference;
private AbstractSourceContainerNode sourceContainerNode;
@Before
public void setUp() {
super.setUp();
sourceContainerNode = new DummySourceContainerNode(null,
folderItemReference,
treeStructure,
eventBus,
projectServiceClient,
dtoUnmarshallerFactory);
}
@Test
public void testCanContainsFolder() throws Exception {
assertFalse(sourceContainerNode.canContainsFolder());
}
@Test
public void shouldCreateChildSourceFileNode() {
ItemReference javaFileItem = mock(ItemReference.class);
when(javaFileItem.getName()).thenReturn("Test.java");
when(javaFileItem.getType()).thenReturn("file");
sourceContainerNode.createChildNode(javaFileItem);
verify(treeStructure).newSourceFileNode(eq(sourceContainerNode), eq(javaFileItem));
}
@Test
public void shouldCreateChildPackageNode() {
ItemReference packageItem = mock(ItemReference.class);
when(packageItem.getType()).thenReturn("folder");
sourceContainerNode.createChildNode(packageItem);
verify(treeStructure).newPackageNode(eq(sourceContainerNode), eq(packageItem));
}
private class DummySourceContainerNode extends AbstractSourceContainerNode {
public DummySourceContainerNode(TreeNode<?> parent,
ItemReference data,
JavaTreeStructure treeStructure,
EventBus eventBus,
ProjectServiceClient projectServiceClient,
DtoUnmarshallerFactory dtoUnmarshallerFactory) {
super(parent, data, treeStructure, eventBus, projectServiceClient, dtoUnmarshallerFactory);
}
}
}