Skip to content

Commit

Permalink
F!! Added custom markdown to MarkdownStoryBoard and fixed test
Browse files Browse the repository at this point in the history
  • Loading branch information
ScottBob committed Jun 2, 2022
1 parent f01a6bf commit a05ac5b
Show file tree
Hide file tree
Showing 4 changed files with 178 additions and 103 deletions.
Original file line number Diff line number Diff line change
@@ -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)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down
Original file line number Diff line number Diff line change
@@ -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**| | | | | |
164 changes: 84 additions & 80 deletions approvaltests/src/main/java/org/approvaltests/MarkdownStoryBoard.java
Original file line number Diff line number Diff line change
Expand Up @@ -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 <T> MarkdownStoryBoard createSequence(T initial, int additionalFrames, Function0<T> getNextFrame)
{
return new MarkdownStoryBoard().add(initial).addFrames(additionalFrames, getNextFrame);
}
public <T> MarkdownStoryBoard add(T object)
{
String title = index == 0 ? "Initial" : "Frame #" + index;
return addFrame(title, object);
}
public <T> 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 <T> MarkdownStoryBoard createSequence(T initial, int additionalFrames, Function0<T> getNextFrame)
{
return new MarkdownStoryBoard().add(initial).addFrames(additionalFrames, getNextFrame);
}
public <T> MarkdownStoryBoard add(T object)
{
String title = index == 0 ? "Initial" : "Frame #" + index;
return addFrame(title, object);
}
public <T> 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 <T> MarkdownStoryBoard addFrames(int howMany, Function0<T> getNextFrame)
{
for (int i = 0; i < howMany; i++)
public <T> MarkdownStoryBoard addFrames(int howMany, Function0<T> 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 <T> MarkdownStoryBoard addFrame(T frame)
{
return add(frame);
}
public <T> 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 <T> MarkdownStoryBoard addFrame(T frame)
{
return add(frame);
}
public <T> MarkdownStoryBoard addDescriptionWithData(String description, String data)
{
addNewLines(Types.Description);
stringBuffer.append("`" + description + ": " + data + "` \n");
return this;
}
}

0 comments on commit a05ac5b

Please sign in to comment.