IndentStep { public static FormatterStep create(Type type, int numSpacesPerTab) { Objects.requireNonNull(type, "type"); return FormatterStep.create("indentWith" + type.tabSpace("Tabs", "Spaces"), new State(type, numSpacesPerTab), State::toFormatter); } private  IndentStep(); static FormatterStep create(Type type, int numSpacesPerTab); static int defaultNumSpacesPerTab();  }
@Test public void tabToTab() throws Throwable { FormatterStep indent = IndentStep.Type.TAB.create(4); assertOnResources(indent, "indent/IndentedWithTab.test", "indent/IndentedWithTab.test"); }
@Test public void spaceToSpace() throws Throwable { FormatterStep indent = IndentStep.Type.SPACE.create(4); assertOnResources(indent, "indent/IndentedWithSpace.test", "indent/IndentedWithSpace.test"); }
@Test public void spaceToTab() throws Throwable { FormatterStep indent = IndentStep.Type.TAB.create(4); assertOnResources(indent, "indent/IndentedWithSpace.test", "indent/IndentedWithTab.test"); }
@Test public void tabToSpace() throws Throwable { FormatterStep indent = IndentStep.Type.SPACE.create(4); assertOnResources(indent, "indent/IndentedWithTab.test", "indent/IndentedWithSpace.test"); }
@Test public void doesntClipNewlines() throws Throwable { FormatterStep indent = IndentStep.Type.SPACE.create(4); String blankNewlines = "\n\n\n\n"; Assert.assertEquals(blankNewlines, indent.format(blankNewlines, new File(""))); }
@Test public void equality() { new SerializableEqualityTester() { IndentStep.Type type = IndentStep.Type.SPACE; int numSpacesPerTab = 2; @Override protected void setupTest(API api) { api.areDifferentThan(); numSpacesPerTab = 4; api.areDifferentThan(); type = IndentStep.Type.TAB; api.areDifferentThan(); numSpacesPerTab = 2; api.areDifferentThan(); } @Override protected FormatterStep create() { return type.create(numSpacesPerTab); } }.testEquals(); }