Skip to content

Instantly share code, notes, and snippets.

@vitalipe
Last active June 27, 2023 11:34
Show Gist options
  • Select an option

  • Save vitalipe/79906a05ad81277716ea8fb4dd530998 to your computer and use it in GitHub Desktop.

Select an option

Save vitalipe/79906a05ad81277716ea8fb4dd530998 to your computer and use it in GitHub Desktop.
"Clean Code" is dog shit.
// https://qntm.org/clean
package fitnesse.html;
import fitnesse.responders.run.SuiteResponder;
import fitnesse.wiki.*;
public class SetupTeardownIncluder {
public static String render(PageData pageData) throws Exception {
return render(pageData, false);
}
public static String render(PageData pageData, boolean isSuite) throws Exception {
WikiPage testPage = pageData.getWikiPage();
String setupPath = fetchPagePath(testPage, "-setup");
String teardownPath = fetchPagePath(testPage, "-teardown");
StringBuffer content = new StringBuffer();
if (!pageData.hasAttribute("Test"))
return pageData.getHTML();
if (setupPath) {
if (isSuite) {
content.append("\n!include ")
.append(SuiteResponder.SUITE_SETUP_NAME)
.append(" .")
.append(setupPath)
.append("\n");
}
content.append("\n!include ")
.append("SetUp")
.append(" .")
.append(setupPath)
.append("\n");
}
content.append(page_data.getContent());
if (teardownPath) {
content.append("\n!include ")
.append("TearDown")
.append(" .")
.append(teardownPath)
.append("\n");
if (isSuite) {
content.append("\n!include ")
.append(SuiteResponder.SUITE_TEARDOWN_NAME)
.append(" .")
.append(teardownPath)
.append("\n");
}
}
return pageData.setContent(content.toString()).getHTML();
}
private static String fetchPagePath(WikiPage testPage, String pageName) throws Exception {
PageCrawler crawler = testPage.getPageCrawler();
WikiPage inherited = PageCrawlerImpl.getInheritedPage(pageName, testPage);
if (!inherited)
return null;
return PathParser.render(crawler.getFullPath(inherited));
}
}
// https://qntm.org/clean
package fitnesse.html;
import fitnesse.responders.run.SuiteResponder;
import fitnesse.wiki.*;
public class SetupTeardownIncluder {
private PageData pageData;
private boolean isSuite;
private WikiPage testPage;
private StringBuffer newPageContent;
private PageCrawler pageCrawler;
public static String render(PageData pageData) throws Exception {
return render(pageData, false);
}
public static String render(PageData pageData, boolean isSuite)
throws Exception {
return new SetupTeardownIncluder(pageData).render(isSuite);
}
private SetupTeardownIncluder(PageData pageData) {
this.pageData = pageData;
testPage = pageData.getWikiPage();
pageCrawler = testPage.getPageCrawler();
newPageContent = new StringBuffer();
}
private String render(boolean isSuite) throws Exception {
this.isSuite = isSuite;
if (isTestPage())
includeSetupAndTeardownPages();
return pageData.getHtml();
}
private boolean isTestPage() throws Exception {
return pageData.hasAttribute("Test");
}
private void includeSetupAndTeardownPages() throws Exception {
includeSetupPages();
includePageContent();
includeTeardownPages();
updatePageContent();
}
private void includeSetupPages() throws Exception {
if (isSuite)
includeSuiteSetupPage();
includeSetupPage();
}
private void includeSuiteSetupPage() throws Exception {
include(SuiteResponder.SUITE_SETUP_NAME, "-setup");
}
private void includeSetupPage() throws Exception {
include("SetUp", "-setup");
}
private void includePageContent() throws Exception {
newPageContent.append(pageData.getContent());
}
private void includeTeardownPages() throws Exception {
includeTeardownPage();
if (isSuite)
includeSuiteTeardownPage();
}
private void includeTeardownPage() throws Exception {
include("TearDown", "-teardown");
}
private void includeSuiteTeardownPage() throws Exception {
include(SuiteResponder.SUITE_TEARDOWN_NAME, "-teardown");
}
private void updatePageContent() throws Exception {
pageData.setContent(newPageContent.toString());
}
private void include(String pageName, String arg) throws Exception {
WikiPage inheritedPage = findInheritedPage(pageName);
if (inheritedPage != null) {
String pagePathName = getPathNameForPage(inheritedPage);
buildIncludeDirective(pagePathName, arg);
}
}
private WikiPage findInheritedPage(String pageName) throws Exception {
return PageCrawlerImpl.getInheritedPage(pageName, testPage);
}
private String getPathNameForPage(WikiPage page) throws Exception {
WikiPagePath pagePath = pageCrawler.getFullPath(page);
return PathParser.render(pagePath);
}
private void buildIncludeDirective(String pagePathName, String arg) {
newPageContent
.append("\n!include ")
.append(arg)
.append(" .")
.append(pagePathName)
.append("\n");
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment