package com.chrisfolger.needsmoredojo.testutil;

import com.intellij.lang.ASTNode;
import com.intellij.lang.javascript.psi.impl.JSParameterImpl;

import static org.mockito.Mockito.mock;

public class MockJSParameter extends JSParameterImpl
{
    String text = null;

    public MockJSParameter(String text) {
        super(mock(ASTNode.class));

        this.text = text;
    }

    @Override
    public String getText()
    {
        return text;
    }
}

@@ -137,16 +137,108 @@
 terImpl;
+%0Aimport com.intellij.psi.PsiElement;%0Aimport org.apache.commons.lang.NotImplementedException;
 %0A%0Aimport
@@ -328,10 +328,140 @@
 Impl
-%0A%7B
+ implements MockJSElementInterface%0A%7B%0A    private MockJSElementInterface prevSibling;%0A    private MockJSElementInterface nextSibling;
 %0A   
@@ -668,11 +668,776 @@
 t;%0A    %7D
+%0A%0A    @Override%0A    public MockJSElementInterface comesBefore(MockJSElementInterface element) %7B%0A        element.setPrevSibling(this);%0A        this.nextSibling = element;%0A%0A        return this;%0A    %7D%0A%0A    @Override%0A    public void setPrevSibling(MockJSElementInterface element) %7B%0A        this.prevSibling = element;%0A    %7D%0A%0A    @Override%0A    public void setNextSibling(MockJSElementInterface element) %7B%0A        this.nextSibling = element;%0A    %7D%0A%0A    @Override%0A    public void setParent(MockJSElementInterface element) %7B%0A        throw new NotImplementedException();%0A    %7D%0A%0A    @Override%0A    public PsiElement getPrevSibling()%0A    %7B%0A        return this.prevSibling;%0A    %7D%0A%0A    @Override%0A    public PsiElement getNextSibling()%0A    %7B%0A        return this.nextSibling;%0A    %7D
 %0A%7D%0A

update mock