// Path: sft-core/src/test/java/sft/integration/fixtures/SftResources.java
// public class SftResources {
// 
//     private final Class callerClass;
//     private final JavaResource javaResource;
//     private final SftResource htmlResource;
// 
//     public SftResources(Class callerClass, Class functionalTestClass) {
//         this.callerClass = callerClass;
//         javaResource = new JavaResource(functionalTestClass);
//         htmlResource = new SftResource(functionalTestClass);
//     }
// 
//     @Override
//     public String toString() {
//         return "<div class='resources'>" + javaResource.getOpenResourceHtmlLink(callerClass, "java", "alert-info") +
//                 htmlResource.getOpenResourceHtmlLink(callerClass, "html", "alert-info") + "</div>";
//     }
// }
// 
// Path: sft-core/src/test/java/sft/integration/use/sut/decorators/subUseCase/SubUseCaseBreadcrumb.java
// @Decorate(decorator = Breadcrumb.class)
// public class SubUseCaseBreadcrumb {
//     @FixturesHelper
//     private SftFixturesHelper sftFixturesHelper = new SftFixturesHelper();
// 
//     public SubSubUseCaseBreadcrumb subSubUseCaseBreadcrumb= new SubSubUseCaseBreadcrumb();
// 
//     @Test
//     public void test(){
//         sftFixturesHelper.doStuff();
//     }
// }


import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
import org.junit.Assert;
import org.junit.Test;
import org.junit.runner.RunWith;
import sft.Decorate;
import sft.Displayable;
import sft.FixturesHelper;
import sft.SimpleFunctionalTest;
import sft.Text;
import sft.decorators.Breadcrumb;
import sft.integration.fixtures.JUnitHtmlHelper;
import sft.integration.fixtures.SftResources;
import sft.integration.use.sut.decorators.*;
import sft.integration.use.sut.decorators.subUseCase.SubSubUseCaseBreadcrumb;
import sft.integration.use.sut.decorators.subUseCase.SubUseCaseBreadcrumb;
import java.io.IOException;
import java.util.ArrayList;
    }

    private void ignoredScenariosAreNumberedAndDisplayedWithDirectAccess() {
        Elements digestTitles = jUnitHtmlHelper.html.select(".synthesis .digest.ignored .title");
        Assert.assertEquals("2 scenarios ignored",digestTitles.get(0).text());

        Assert.assertEquals("display: none;", jUnitHtmlHelper.html.select("#ignored_fold").get(0).attr("style"));
        Assert.assertFalse(jUnitHtmlHelper.html.select("#ignored_unfold").get(0).hasAttr("style"));

        Elements scenarios = jUnitHtmlHelper.html.select(".synthesis .digest.ignored .relatedUseCase");
        Assert.assertEquals("Sub use case toc 2 : Sub use case toc 2b : Scenario 2b 1",scenarios.get(0).text());
        Assert.assertEquals("Sub use case toc 3 : Scenario 32",scenarios.get(1).text());

    }

    private void failedScenariosAreNumberedAndDisplayedWithDirectAccess() {
        Elements digestTitles = jUnitHtmlHelper.html.select(".synthesis .digest.failed .title");
        Assert.assertEquals("2 scenarios failed",digestTitles.get(0).text());

        Assert.assertEquals("display: none;", jUnitHtmlHelper.html.select("#failed_fold").get(0).attr("style"));
        Assert.assertFalse(jUnitHtmlHelper.html.select("#failed_unfold").get(0).hasAttr("style"));

        Elements scenarios = jUnitHtmlHelper.html.select(".synthesis .digest.failed .relatedUseCase");
        Assert.assertEquals("Sub use case toc 2 : Sub use case toc 2c : Scenario 2c 1",scenarios.get(0).text());
        Assert.assertEquals("Sub use case toc 3 : Scenario 33",scenarios.get(1).text());
    }


    private class DisplayableResources {
        private ArrayList<String> labels = new ArrayList<String>();
// Path: sft-core/src/test/java/sft/integration/fixtures/SftResources.java
// public class SftResources {
// 
//     private final Class callerClass;
//     private final JavaResource javaResource;
//     private final SftResource htmlResource;
// 
//     public SftResources(Class callerClass, Class functionalTestClass) {
//         this.callerClass = callerClass;
//         javaResource = new JavaResource(functionalTestClass);
//         htmlResource = new SftResource(functionalTestClass);
//     }
// 
//     @Override
//     public String toString() {
//         return "<div class='resources'>" + javaResource.getOpenResourceHtmlLink(callerClass, "java", "alert-info") +
//                 htmlResource.getOpenResourceHtmlLink(callerClass, "html", "alert-info") + "</div>";
//     }
// }
// 
// Path: sft-core/src/test/java/sft/integration/use/sut/decorators/subUseCase/SubUseCaseBreadcrumb.java
// @Decorate(decorator = Breadcrumb.class)
// public class SubUseCaseBreadcrumb {
//     @FixturesHelper
//     private SftFixturesHelper sftFixturesHelper = new SftFixturesHelper();
// 
//     public SubSubUseCaseBreadcrumb subSubUseCaseBreadcrumb= new SubSubUseCaseBreadcrumb();
// 
//     @Test
//     public void test(){
//         sftFixturesHelper.doStuff();
//     }
// }


// Path: sft-core/src/test/java/sft/integration/use/UsingDecorator.java
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
import org.junit.Assert;
import org.junit.Test;
import org.junit.runner.RunWith;
import sft.Decorate;
import sft.Displayable;
import sft.FixturesHelper;
import sft.SimpleFunctionalTest;
import sft.Text;
import sft.decorators.Breadcrumb;
import sft.integration.fixtures.JUnitHtmlHelper;
import sft.integration.fixtures.SftResources;
import sft.integration.use.sut.decorators.*;
import sft.integration.use.sut.decorators.subUseCase.SubSubUseCaseBreadcrumb;
import sft.integration.use.sut.decorators.subUseCase.SubUseCaseBreadcrumb;
import java.io.IOException;
import java.util.ArrayList;

    }

    private void ignoredScenariosAreNumberedAndDisplayedWithDirectAccess() {
        Elements digestTitles = jUnitHtmlHelper.html.select(".synthesis .digest.ignored .title");
        Assert.assertEquals("2 scenarios ignored",digestTitles.get(0).text());

        Assert.assertEquals("display: none;", jUnitHtmlHelper.html.select("#ignored_fold").get(0).attr("style"));
        Assert.assertFalse(jUnitHtmlHelper.html.select("#ignored_unfold").get(0).hasAttr("style"));

        Elements scenarios = jUnitHtmlHelper.html.select(".synthesis .digest.ignored .relatedUseCase");
        Assert.assertEquals("Sub use case toc 2 : Sub use case toc 2b : Scenario 2b 1",scenarios.get(0).text());
        Assert.assertEquals("Sub use case toc 3 : Scenario 32",scenarios.get(1).text());

    }

    private void failedScenariosAreNumberedAndDisplayedWithDirectAccess() {
        Elements digestTitles = jUnitHtmlHelper.html.select(".synthesis .digest.failed .title");
        Assert.assertEquals("2 scenarios failed",digestTitles.get(0).text());

        Assert.assertEquals("display: none;", jUnitHtmlHelper.html.select("#failed_fold").get(0).attr("style"));
        Assert.assertFalse(jUnitHtmlHelper.html.select("#failed_unfold").get(0).hasAttr("style"));

        Elements scenarios = jUnitHtmlHelper.html.select(".synthesis .digest.failed .relatedUseCase");
        Assert.assertEquals("Sub use case toc 2 : Sub use case toc 2c : Scenario 2c 1",scenarios.get(0).text());
        Assert.assertEquals("Sub use case toc 3 : Scenario 33",scenarios.get(1).text());
    }


    private class DisplayableResources {
        private ArrayList<String> labels = new ArrayList<String>();
        private ArrayList<SftResources> resources = new ArrayList<SftResources>();