### Question:
UMethodInvocation extends UExpression implements MethodInvocationTree { @Override public JCMethodInvocation inline(Inliner inliner) throws CouldNotResolveImportException { return inliner .maker() .Apply( com.sun.tools.javac.util.List.<JCExpression>nil(), getMethodSelect().inline(inliner), inliner.<JCExpression>inlineList(getArguments())); }  static UMethodInvocation create(UExpression methodSelect, List<UExpression> arguments); static UMethodInvocation create(UExpression methodSelect, UExpression... arguments); @Override abstract UExpression getMethodSelect(); @Override abstract ImmutableList<UExpression> getArguments(); @Override @Nullable Choice<Unifier> visitMethodInvocation(
      MethodInvocationTree methodInvocation, @Nullable Unifier unifier); @Override R accept(TreeVisitor<R, D> visitor, D data); @Override Kind getKind(); @Override List<UTree<?>> getTypeArguments(); @Override JCMethodInvocation inline(Inliner inliner);  }### Answer:
@Test public void inline() throws CouldNotResolveImportException { UExpression fooIdent = mock(UExpression.class); when(fooIdent.inline(isA(Inliner.class))) .thenReturn(inliner.maker().Ident(inliner.asName("foo"))); ULiteral oneLit = ULiteral.intLit(1); ULiteral barLit = ULiteral.stringLit("bar"); UMethodInvocation invocation = UMethodInvocation.create(fooIdent, oneLit, barLit); assertInlines("foo(1, \"bar\")", invocation); }