From a05ac5bb8cc423b18a2f8a792b56f5bc3714b78b Mon Sep 17 00:00:00 2001 From: Scott Wierschem Date: Thu, 2 Jun 2022 16:18:15 -0500 Subject: [PATCH] F!! Added custom markdown to MarkdownStoryBoard and fixed test --- ...ersTest.listAllVerifyFunctions.approved.md | 47 ++--- .../OptionsTest.testTheVerifyApi.approved.txt | 2 + ...BoardTest.gameOfLifeInMarkdown.approved.md | 68 ++++++++ .../org/approvaltests/MarkdownStoryBoard.java | 164 +++++++++--------- 4 files changed, 178 insertions(+), 103 deletions(-) diff --git a/approvaltests-tests/src/test/java/org/approvaltests/DocumentHelpersTest.listAllVerifyFunctions.approved.md b/approvaltests-tests/src/test/java/org/approvaltests/DocumentHelpersTest.listAllVerifyFunctions.approved.md index a725d4ed..9197bd02 100644 --- a/approvaltests-tests/src/test/java/org/approvaltests/DocumentHelpersTest.listAllVerifyFunctions.approved.md +++ b/approvaltests-tests/src/test/java/org/approvaltests/DocumentHelpersTest.listAllVerifyFunctions.approved.md @@ -1,26 +1,27 @@ - * Approvals. [verify ](https://github.com/approvals/ApprovalTests.Java/blob/master/approvaltests/src/main/java/org/approvaltests/Approvals.java#L191-L194) (ApprovalApprover) - * Approvals. [verify ](https://github.com/approvals/ApprovalTests.Java/blob/master/approvaltests/src/main/java/org/approvaltests/Approvals.java#L174-L177) (ApprovalWriter) - * Approvals. [verify ](https://github.com/approvals/ApprovalTests.Java/blob/master/approvaltests/src/main/java/org/approvaltests/Approvals.java#L166-L169) (ApprovalWriter,ApprovalNamer) - * Approvals. [verify ](https://github.com/approvals/ApprovalTests.Java/blob/master/approvaltests/src/main/java/org/approvaltests/Approvals.java#L220-L223) (ExecutableCommand) - * Approvals. [verify ](https://github.com/approvals/ApprovalTests.Java/blob/master/approvaltests/src/main/java/org/approvaltests/Approvals.java#L150-L153) (File) - * Approvals. [verify ](https://github.com/approvals/ApprovalTests.Java/blob/master/approvaltests/src/main/java/org/approvaltests/Approvals.java#L228-L231) (Map) - * Approvals. [verify ](https://github.com/approvals/ApprovalTests.Java/blob/master/approvaltests/src/main/java/org/approvaltests/Approvals.java#L58-L61) (Object) - * Approvals. [verify ](https://github.com/approvals/ApprovalTests.Java/blob/master/approvaltests/src/main/java/org/approvaltests/Approvals.java#L236-L239) (ResultSet) - * Approvals. [verify ](https://github.com/approvals/ApprovalTests.Java/blob/master/approvaltests/src/main/java/org/approvaltests/Approvals.java#L244-L247) (SqlLoader) - * Approvals. [verify ](https://github.com/approvals/ApprovalTests.Java/blob/master/approvaltests/src/main/java/org/approvaltests/Approvals.java#L50-L53) (String) - * Approvals. [verifyAll ](https://github.com/approvals/ApprovalTests.Java/blob/master/approvaltests/src/main/java/org/approvaltests/Approvals.java#L95-L98) (Object[],Function1) - * Approvals. [verifyAll ](https://github.com/approvals/ApprovalTests.Java/blob/master/approvaltests/src/main/java/org/approvaltests/Approvals.java#L125-L128) (String,Iterable) - * Approvals. [verifyAll ](https://github.com/approvals/ApprovalTests.Java/blob/master/approvaltests/src/main/java/org/approvaltests/Approvals.java#L112-L115) (String,Iterable,Function1) - * Approvals. [verifyAll ](https://github.com/approvals/ApprovalTests.Java/blob/master/approvaltests/src/main/java/org/approvaltests/Approvals.java#L78-L81) (String,Object[]) - * Approvals. [verifyAll ](https://github.com/approvals/ApprovalTests.Java/blob/master/approvaltests/src/main/java/org/approvaltests/Approvals.java#L86-L89) (String,Object[],Function1) - * Approvals. [verifyAll ](https://github.com/approvals/ApprovalTests.Java/blob/master/approvaltests/src/main/java/org/approvaltests/Approvals.java#L133-L136) (String,String,Iterable) - * Approvals. [verifyAll ](https://github.com/approvals/ApprovalTests.Java/blob/master/approvaltests/src/main/java/org/approvaltests/Approvals.java#L86-L89) (String,String,Object[]) - * Approvals. [verifyEachFileInDirectory ](https://github.com/approvals/ApprovalTests.Java/blob/master/approvaltests/src/main/java/org/approvaltests/Approvals.java#L256-L259) (File) - * Approvals. [verifyEachFileInDirectory ](https://github.com/approvals/ApprovalTests.Java/blob/master/approvaltests/src/main/java/org/approvaltests/Approvals.java#L264-L267) (File,FileFilter) - * Approvals. [verifyEachFileInDirectory ](https://github.com/approvals/ApprovalTests.Java/blob/master/approvaltests/src/main/java/org/approvaltests/Approvals.java#L272-L275) (File,FilenameFilter) - * Approvals. [verifyException ](https://github.com/approvals/ApprovalTests.Java/blob/master/approvaltests/src/main/java/org/approvaltests/Approvals.java#L377-L380) (Action0) - * Approvals. [verifyHtml ](https://github.com/approvals/ApprovalTests.Java/blob/master/approvaltests/src/main/java/org/approvaltests/Approvals.java#L142-L145) (String) - * Approvals. [verifyXml ](https://github.com/approvals/ApprovalTests.Java/blob/master/approvaltests/src/main/java/org/approvaltests/Approvals.java#L182-L185) (String) + * Approvals. [verify ](https://github.com/approvals/ApprovalTests.Java/blob/master/approvaltests/src/main/java/org/approvaltests/Approvals.java#L197-L200) (ApprovalApprover) + * Approvals. [verify ](https://github.com/approvals/ApprovalTests.Java/blob/master/approvaltests/src/main/java/org/approvaltests/Approvals.java#L180-L183) (ApprovalWriter) + * Approvals. [verify ](https://github.com/approvals/ApprovalTests.Java/blob/master/approvaltests/src/main/java/org/approvaltests/Approvals.java#L172-L175) (ApprovalWriter,ApprovalNamer) + * Approvals. [verify ](https://github.com/approvals/ApprovalTests.Java/blob/master/approvaltests/src/main/java/org/approvaltests/Approvals.java#L226-L229) (ExecutableCommand) + * Approvals. [verify ](https://github.com/approvals/ApprovalTests.Java/blob/master/approvaltests/src/main/java/org/approvaltests/Approvals.java#L156-L159) (File) + * Approvals. [verify ](https://github.com/approvals/ApprovalTests.Java/blob/master/approvaltests/src/main/java/org/approvaltests/Approvals.java#L234-L237) (Map) + * Approvals. [verify ](https://github.com/approvals/ApprovalTests.Java/blob/master/approvaltests/src/main/java/org/approvaltests/Approvals.java#L55-L58) (Object) + * Approvals. [verify ](https://github.com/approvals/ApprovalTests.Java/blob/master/approvaltests/src/main/java/org/approvaltests/Approvals.java#L242-L245) (ResultSet) + * Approvals. [verify ](https://github.com/approvals/ApprovalTests.Java/blob/master/approvaltests/src/main/java/org/approvaltests/Approvals.java#L250-L253) (SqlLoader) + * Approvals. [verify ](https://github.com/approvals/ApprovalTests.Java/blob/master/approvaltests/src/main/java/org/approvaltests/Approvals.java#L47-L50) (String) + * Approvals. [verify ](https://github.com/approvals/ApprovalTests.Java/blob/master/approvaltests/src/main/java/org/approvaltests/Approvals.java#L64-L67) (Verifiable) + * Approvals. [verifyAll ](https://github.com/approvals/ApprovalTests.Java/blob/master/approvaltests/src/main/java/org/approvaltests/Approvals.java#L101-L104) (Object[],Function1) + * Approvals. [verifyAll ](https://github.com/approvals/ApprovalTests.Java/blob/master/approvaltests/src/main/java/org/approvaltests/Approvals.java#L131-L134) (String,Iterable) + * Approvals. [verifyAll ](https://github.com/approvals/ApprovalTests.Java/blob/master/approvaltests/src/main/java/org/approvaltests/Approvals.java#L118-L121) (String,Iterable,Function1) + * Approvals. [verifyAll ](https://github.com/approvals/ApprovalTests.Java/blob/master/approvaltests/src/main/java/org/approvaltests/Approvals.java#L84-L87) (String,Object[]) + * Approvals. [verifyAll ](https://github.com/approvals/ApprovalTests.Java/blob/master/approvaltests/src/main/java/org/approvaltests/Approvals.java#L92-L95) (String,Object[],Function1) + * Approvals. [verifyAll ](https://github.com/approvals/ApprovalTests.Java/blob/master/approvaltests/src/main/java/org/approvaltests/Approvals.java#L139-L142) (String,String,Iterable) + * Approvals. [verifyAll ](https://github.com/approvals/ApprovalTests.Java/blob/master/approvaltests/src/main/java/org/approvaltests/Approvals.java#L92-L95) (String,String,Object[]) + * Approvals. [verifyEachFileInDirectory ](https://github.com/approvals/ApprovalTests.Java/blob/master/approvaltests/src/main/java/org/approvaltests/Approvals.java#L262-L265) (File) + * Approvals. [verifyEachFileInDirectory ](https://github.com/approvals/ApprovalTests.Java/blob/master/approvaltests/src/main/java/org/approvaltests/Approvals.java#L270-L273) (File,FileFilter) + * Approvals. [verifyEachFileInDirectory ](https://github.com/approvals/ApprovalTests.Java/blob/master/approvaltests/src/main/java/org/approvaltests/Approvals.java#L278-L281) (File,FilenameFilter) + * Approvals. [verifyException ](https://github.com/approvals/ApprovalTests.Java/blob/master/approvaltests/src/main/java/org/approvaltests/Approvals.java#L383-L386) (Action0) + * Approvals. [verifyHtml ](https://github.com/approvals/ApprovalTests.Java/blob/master/approvaltests/src/main/java/org/approvaltests/Approvals.java#L148-L151) (String) + * Approvals. [verifyXml ](https://github.com/approvals/ApprovalTests.Java/blob/master/approvaltests/src/main/java/org/approvaltests/Approvals.java#L188-L191) (String) * AwtApprovals. [verify ](https://github.com/approvals/ApprovalTests.Java/blob/master/approvaltests/src/main/java/org/approvaltests/awt/AwtApprovals.java#L54-L57) (BufferedImage) * AwtApprovals. [verify ](https://github.com/approvals/ApprovalTests.Java/blob/master/approvaltests/src/main/java/org/approvaltests/awt/AwtApprovals.java#L62-L65) (Component) * AwtApprovals. [verify ](https://github.com/approvals/ApprovalTests.Java/blob/master/approvaltests/src/main/java/org/approvaltests/awt/AwtApprovals.java#L46-L49) (Image) diff --git a/approvaltests-tests/src/test/java/org/approvaltests/OptionsTest.testTheVerifyApi.approved.txt b/approvaltests-tests/src/test/java/org/approvaltests/OptionsTest.testTheVerifyApi.approved.txt index 1a6afca3..fe2df5db 100644 --- a/approvaltests-tests/src/test/java/org/approvaltests/OptionsTest.testTheVerifyApi.approved.txt +++ b/approvaltests-tests/src/test/java/org/approvaltests/OptionsTest.testTheVerifyApi.approved.txt @@ -26,6 +26,8 @@ public static void org.approvaltests.Approvals.verify(org.approvaltests.core.App public static void org.approvaltests.Approvals.verify(org.approvaltests.core.ApprovalWriter,org.approvaltests.namer.ApprovalNamer) public static void org.approvaltests.Approvals.verify(org.approvaltests.core.ApprovalWriter,org.approvaltests.namer.ApprovalNamer,org.approvaltests.core.ApprovalFailureReporter) public static void org.approvaltests.Approvals.verify(org.approvaltests.core.ApprovalWriter,org.approvaltests.namer.ApprovalNamer,org.approvaltests.core.Options) +public static void org.approvaltests.Approvals.verify(org.approvaltests.core.Verifiable) +public static void org.approvaltests.Approvals.verify(org.approvaltests.core.Verifiable,org.approvaltests.core.Options) public static void org.approvaltests.Approvals.verifyAll(java.lang.Object[],org.lambda.functions.Function1) public static void org.approvaltests.Approvals.verifyAll(java.lang.Object[],org.lambda.functions.Function1,org.approvaltests.core.Options) public static void org.approvaltests.Approvals.verifyAll(java.lang.String,java.lang.Iterable) diff --git a/approvaltests-tests/src/test/java/org/approvaltests/StoryBoardTest.gameOfLifeInMarkdown.approved.md b/approvaltests-tests/src/test/java/org/approvaltests/StoryBoardTest.gameOfLifeInMarkdown.approved.md index e69de29b..789f8e5b 100644 --- a/approvaltests-tests/src/test/java/org/approvaltests/StoryBoardTest.gameOfLifeInMarkdown.approved.md +++ b/approvaltests-tests/src/test/java/org/approvaltests/StoryBoardTest.gameOfLifeInMarkdown.approved.md @@ -0,0 +1,68 @@ +# Game of Life + + +### Initial: +| | 0 | 1 | 2 | 3 | 4 | +|-----|---|---|---|---|---| +|**0**| . | . | . | . | . | +|**1**| . | . | . | . | . | +|**2**| . | x | x | x | . | +|**3**| . | . | . | . | . | +|**4**| . | . | . | . | . | + + +### Start Game: +| | 0 | 1 | 2 | 3 | 4 | +|-----|---|---|---|---|---| +|**0**| . | . | . | . | . | +|**1**| . | . | x | . | . | +|**2**| . | . | x | . | . | +|**3**| . | . | x | . | . | +|**4**| . | . | . | . | . | + + +### Frame #2: +| | 0 | 1 | 2 | 3 | 4 | +|-----|---|---|---|---|---| +|**0**| . | . | . | . | . | +|**1**| . | . | . | . | . | +|**2**| . | x | x | x | . | +|**3**| . | . | . | . | . | +|**4**| . | . | . | . | . | + + +`setting alive: *` +`setting dead: _` + + +### Frame #3: +| | 0 | 1 | 2 | 3 | 4 | +|-----|---|---|---|---|---| +|**0**| _ | _ | _ | _ | _ | +|**1**| _ | _ | * | _ | _ | +|**2**| _ | _ | * | _ | _ | +|**3**| _ | _ | * | _ | _ | +|**4**| _ | _ | _ | _ | _ | + + +### Frame #4: +| | 0 | 1 | 2 | 3 | 4 | +|-----|---|---|---|---|---| +|**0**| _ | _ | _ | _ | _ | +|**1**| _ | _ | _ | _ | _ | +|**2**| _ | * | * | * | _ | +|**3**| _ | _ | _ | _ | _ | +|**4**| _ | _ | _ | _ | _ | + + +`setting dead: ` + + +### Frame #5: +| | 0 | 1 | 2 | 3 | 4 | +|-----|---|---|---|---|---| +|**0**| | | | | | +|**1**| | | * | | | +|**2**| | | * | | | +|**3**| | | * | | | +|**4**| | | | | | diff --git a/approvaltests/src/main/java/org/approvaltests/MarkdownStoryBoard.java b/approvaltests/src/main/java/org/approvaltests/MarkdownStoryBoard.java index 0af9dc7d..675c0a21 100644 --- a/approvaltests/src/main/java/org/approvaltests/MarkdownStoryBoard.java +++ b/approvaltests/src/main/java/org/approvaltests/MarkdownStoryBoard.java @@ -6,90 +6,94 @@ import org.approvaltests.strings.MarkdownCompatible; import org.lambda.functions.Function0; -public class MarkdownStoryBoard implements Verifiable -{ - @Override - public VerifyParameters getVerifyParameters(Options options) - { - return new VerifyParameters(options.forFile().withExtension(".md")); - } - enum Types { - None, Description, Frame - } - private StringBuffer stringBuffer = new StringBuffer(); - int index = 0; - private Types last = Types.None; - public static MarkdownStoryBoard createSequence(T initial, int additionalFrames, Function0 getNextFrame) - { - return new MarkdownStoryBoard().add(initial).addFrames(additionalFrames, getNextFrame); - } - public MarkdownStoryBoard add(T object) - { - String title = index == 0 ? "Initial" : "Frame #" + index; - return addFrame(title, object); - } - public MarkdownStoryBoard addFrame(String title, T frame) - { - addNewLines(Types.Frame); - String frameTitle = title; - String frameData = frame instanceof MarkdownCompatible - ? (((MarkdownCompatible) frame).toMarkdown()) - : frame.toString(); - stringBuffer.append(String.format("### %s:\n%s", frameTitle, frameData)); - index++; - return this; - } - private void addNewLines(Types type) - { - switch (last) +public class MarkdownStoryBoard implements Verifiable { + @Override + public VerifyParameters getVerifyParameters(Options options) { + return new VerifyParameters(options.forFile().withExtension(".md")); + } + + enum Types { + None, Description, Frame, Custom + } + private StringBuffer stringBuffer = new StringBuffer(); + int index = 0; + private Types last = Types.None; + public static MarkdownStoryBoard createSequence(T initial, int additionalFrames, Function0 getNextFrame) + { + return new MarkdownStoryBoard().add(initial).addFrames(additionalFrames, getNextFrame); + } + public MarkdownStoryBoard add(T object) + { + String title = index == 0 ? "Initial" : "Frame #" + index; + return addFrame(title, object); + } + public MarkdownStoryBoard addFrame(String title, T frame) + { + addNewLines(Types.Frame); + String frameTitle = title; + String frameData = frame instanceof MarkdownCompatible ? (((MarkdownCompatible)frame).toMarkdown()) : frame.toString(); + stringBuffer.append(String.format("### %s:\n%s", frameTitle, frameData)); + index++; + return this; + } + private void addNewLines(Types type) { - case None : - break; - case Description : - if (type == Types.Frame) + switch (last) { - stringBuffer.append("\n\n"); + case None : + break; + case Description : + if (type != Types.Description) + { + stringBuffer.append("\n\n"); + } + break; + case Frame : + stringBuffer.append("\n\n"); + break; } - break; - case Frame : - stringBuffer.append("\n\n"); - break; + last = type; } - last = type; - } - public MarkdownStoryBoard addFrames(int howMany, Function0 getNextFrame) - { - for (int i = 0; i < howMany; i++) + public MarkdownStoryBoard addFrames(int howMany, Function0 getNextFrame) { - add(getNextFrame.call()); + for (int i = 0; i < howMany; i++) + { + add(getNextFrame.call()); + } + return this; + } + @Override + public String toString() + { + return stringBuffer.toString(); + } + + public MarkdownStoryBoard addTitle(String title) + { + addNewLines(Types.Description); + stringBuffer.append("# " + title + "\n"); + return this; + } + public MarkdownStoryBoard addDescription(String description) + { + addNewLines(Types.Description); + stringBuffer.append("`" + description + "` \n"); + return this; + } + public MarkdownStoryBoard addFrame(T frame) + { + return add(frame); + } + public MarkdownStoryBoard addDescriptionWithData(String description, String data) + { + addNewLines(Types.Description); + stringBuffer.append("`" + description + ": " + data + "` \n"); + return this; + } + + public MarkdownStoryBoard addCustomMarkdown(String markdown) { + addNewLines(Types.Description); + stringBuffer.append(markdown); + return this; } - return this; - } - @Override - public String toString() - { - return stringBuffer.toString(); - } - public MarkdownStoryBoard addTitle(String title) - { - addNewLines(Types.Description); - stringBuffer.append("# " + title + "\n"); - return this; - } - public MarkdownStoryBoard addDescription(String description) - { - addNewLines(Types.Description); - stringBuffer.append("`" + description + "` \n"); - return this; - } - public MarkdownStoryBoard addFrame(T frame) - { - return add(frame); - } - public MarkdownStoryBoard addDescriptionWithData(String description, String data) - { - addNewLines(Types.Description); - stringBuffer.append("`" + description + ": " + data + "` \n"); - return this; - } }