package com.chrisfolger.needsmoredojo.testutil;
import com.intellij.lang.ASTNode;
import com.intellij.lang.javascript.psi.JSDefinitionExpression;
import com.intellij.lang.javascript.psi.JSExpression;
import com.intellij.lang.javascript.psi.JSExpressionStatement;
import com.intellij.lang.javascript.psi.impl.JSAssignmentExpressionImpl;
import static org.mockito.Mockito.mock;
public class MockJSAssignmentExpression extends JSAssignmentExpressionImpl
{
private String definitionNamespace;
private String definitionName;
private String content;
private JSDefinitionExpression definition;
public MockJSAssignmentExpression(String definitionNamespace, String definitionName, String content) {
super(mock(ASTNode.class));
this.definitionNamespace = definitionNamespace;
this.definitionName = definitionName;
this.content = content;
}
public MockJSAssignmentExpression(JSDefinitionExpression definition, String content) {
super(mock(ASTNode.class));
this.definition = definition;
this.content = content;
}
@Override
public JSExpression[] getChildren()
{
if(definition == null)
{
return new JSExpression[] { new MockJSDefinitionExpression(definitionNamespace, definitionName), BasicPsiElements.expressionFromText(content) };
}
else
{
return new JSExpression[] { this.definition, BasicPsiElements.expressionFromText(content)};
}
}
}