### Question:
TableMergeArguments implements TableMergeConfig, Serializable { @Override public PartitionSpec getPartionSpec() { if (this.partitionSpec == null && this.partitionKeys != null) { this.partitionSpec = new DefaultPartitionSpec(this.partitionKeys); } return this.partitionSpec; } TableMergeArguments(String... args); @Override String getTargetTable(); @Override String getTargetSchema(); @Override String getSourceTable(); @Override String getSourceSchema(); @Override MergeStrategy getStrategy(); @Override List<ColumnSpec> getColumnSpecs(); @Override PartitionSpec getPartionSpec(); String getPartitionValue();  }### Answer:
@Test public void testKeysSeparators() { String[] args = Arrays.copyOf(SHORT_ARGS, SHORT_ARGS.length); List<String> argList = Arrays.asList(args); argList.set(1, "field1|type1|formula(column1), field2|type2|formula(column2)\tfield3|type3|formula(column3) , field4|type4|formula(column4) \n field5|type5|formula(column5)\t\n\tfield6|type6|formula(column6)"); TableMergeArguments config = new TableMergeArguments(args); assertThat(config.getPartionSpec()).isNotNull(); assertThat(config.getPartionSpec().getKeys()) .isNotEmpty() .extracting("key", "type", "formula") .contains(tuple("field1", "type1", "formula(column1)"), tuple("field2", "type2", "formula(column2)"), tuple("field3", "type3", "formula(column3)"), tuple("field4", "type4", "formula(column4)"), tuple("field5", "type5", "formula(column5)"), tuple("field6", "type6", "formula(column6)")); }