test_class.declarator: typeFilter
test_class.modifier: @Mock private
test_class.original_string: @Mock private TsTypeFilter typeFilter;
test_class.type: TsTypeFilter
test_class.var_name: typeFilter
test_class.declarator: identifierFilter
test_class.modifier: @Mock private
test_class.original_string: @Mock private TsIdentifierFilter identifierFilter;
test_class.type: TsIdentifierFilter
test_class.var_name: identifierFilter
test_class.file: recipe-generator/src/test/java/ca/derekcormier/recipe/generator/filter/TsParamFilterTest.java
test_class.identifier: TsParamFilterTest
test_case.body: @Test
    public void testApply_addsEllipsisToNameWhenVararg() {
      Cookbook cookbook = new Cookbook("test", new ArrayList<>(), new ArrayList<>());
      Filter filter = new TsParamFilter(cookbook, typeFilter, identifierFilter);
      when(typeFilter.apply("int...")).thenReturn("number[]");
      when(identifierFilter.apply("foo")).thenReturn("foo");
  
      assertEquals("...foo: number[]", filter.apply(param("foo", "int...")));
    }
test_case.class_method_signature: TsParamFilterTest.testApply_addsEllipsisToNameWhenVararg()
test_case.full_signature: @Test public void testApply_addsEllipsisToNameWhenVararg()
test_case.identifier: testApply_addsEllipsisToNameWhenVararg
test_case.invocations: thenReturn when apply thenReturn when apply assertEquals apply param
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void testApply_addsEllipsisToNameWhenVararg()
focal_class.declarator: typeFiler
focal_class.modifier: private final
focal_class.original_string: private final Filter typeFiler;
focal_class.type: Filter
focal_class.var_name: typeFiler
focal_class.declarator: identifierFilter
focal_class.modifier: private final
focal_class.original_string: private final Filter identifierFilter;
focal_class.type: Filter
focal_class.var_name: identifierFilter
focal_class.file: recipe-generator/src/main/java/ca/derekcormier/recipe/generator/filter/TsParamFilter.java
focal_class.identifier: TsParamFilter
focal_class.class_method_signature: TsParamFilter.TsParamFilter(Cookbook cookbook, Filter typeFilter, Filter identifierFilter)
focal_class.full_signature: public  TsParamFilter(Cookbook cookbook, Filter typeFilter, Filter identifierFilter)
focal_class.identifier: TsParamFilter
focal_class.modifiers: public
focal_class.parameters: (Cookbook cookbook, Filter typeFilter, Filter identifierFilter)
focal_class.signature:  TsParamFilter(Cookbook cookbook, Filter typeFilter, Filter identifierFilter)
focal_class.class_method_signature: TsParamFilter.apply(Object value, Object... params)
focal_class.full_signature: @Override public Object apply(Object value, Object... params)
focal_class.identifier: apply
focal_class.modifiers: @Override public
focal_class.parameters: (Object value, Object... params)
focal_class.return: Object
focal_class.signature: Object apply(Object value, Object... params)
focal_class.superclass: extends RecipeFilter
focal_method.body: @Override
    public Object apply(Object value, Object... params) {
      Map<String, String> param = (Map<String, String>) value;
      String name = param.get("name");
      ParamType type = CookbookUtils.parseType(param.get("type"), getCookbook());
  
      return (type.isVararg() ? "..." : "")
          + identifierFilter.apply(name)
          + ": "
          + typeFiler.apply(param.get("type"));
    }
focal_method.class_method_signature: TsParamFilter.apply(Object value, Object... params)
focal_method.full_signature: @Override public Object apply(Object value, Object... params)
focal_method.identifier: apply
focal_method.invocations: get parseType get getCookbook isVararg apply apply get
focal_method.modifiers: @Override public
focal_method.parameters: (Object value, Object... params)
focal_method.return: Object
focal_method.signature: Object apply(Object value, Object... params)