package com.chrisfolger.needsmoredojo.testutil; import com.intellij.lang.javascript.JavaScriptFileType; import com.intellij.openapi.fileTypes.FileType; import com.intellij.openapi.vfs.VirtualFile; import com.intellij.psi.FileViewProvider; import com.intellij.psi.PsiDirectory; import com.intellij.psi.PsiElementVisitor; import com.intellij.psi.impl.source.PsiFileImpl; import org.jetbrains.annotations.NotNull; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; public class MockPsiFile extends PsiFileImpl { private String name; private String path; private MockPsiDirectory directory; public MockPsiFile(String fileName, String path) { super(mock(FileViewProvider.class)); this.name = fileName; this.path = path; directory = new MockPsiDirectory(path); } @NotNull @Override public FileType getFileType() { return new JavaScriptFileType(); } @Override public PsiDirectory getContainingDirectory() { return this.directory; } @Override public void accept(@NotNull PsiElementVisitor psiElementVisitor) { return; } @Override public String getName() { return this.name; } @Override public VirtualFile getVirtualFile() { VirtualFile file = mock(VirtualFile.class); when(file.getCanonicalPath()).thenReturn(this.path); return file; } }