// Path: src/test/java/com/github/havarunner/example/suite/WebApplicationSuiteTest.java
// @RunWith(HavaRunner.class)
// public class WebApplicationSuiteTest implements HavaRunnerSuite<WebServer> {
// 
//     final WebServer webServer;
// 
//     public WebApplicationSuiteTest() {
//         this.webServer = new WebServer();
//     }
// 
//     @Override
//     public WebServer suiteObject() {
//         return webServer;
//     }
// 
//     @Override
//     public void afterSuite() { // JVM calls this method in the shutdown hook
//         webServer.shutDown();
//     }
// }
// 
// Path: src/test/java/com/github/havarunner/example/suite/WebServer.java
// public class WebServer {
//     boolean running;
// 
//     public WebServer() {
//         running = true;
//     }
// 
//     public void shutDown() {
//         running = false;
//     }
// 
//     public int httpStatus(String url) {
//         return 200;
//     }
// 
//     public String htmlDocument(String url) {
//         return "<html><body><title>hello HawaRunner</title></body></html>";
//     }
// 
//     public String htmlDocument(String url, String user) {
//         return "<html><body><title>hello "+user+"</title></body></html>";
//     }
// }


import com.github.havarunner.HavaRunner;
import com.github.havarunner.annotation.PartOf;
import com.github.havarunner.example.suite.WebApplicationSuiteTest;
import com.github.havarunner.example.suite.WebServer;
import org.junit.Test;
import org.junit.runner.RunWith;
import static org.junit.Assert.assertEquals;
package com.github.havarunner.example.suite.rest;



@RunWith(HavaRunner.class)
@PartOf(WebApplicationSuiteTest.class)
public class RestTest {

    private final WebServer webServer;

// Path: src/test/java/com/github/havarunner/example/suite/WebApplicationSuiteTest.java
// @RunWith(HavaRunner.class)
// public class WebApplicationSuiteTest implements HavaRunnerSuite<WebServer> {
// 
//     final WebServer webServer;
// 
//     public WebApplicationSuiteTest() {
//         this.webServer = new WebServer();
//     }
// 
//     @Override
//     public WebServer suiteObject() {
//         return webServer;
//     }
// 
//     @Override
//     public void afterSuite() { // JVM calls this method in the shutdown hook
//         webServer.shutDown();
//     }
// }
// 
// Path: src/test/java/com/github/havarunner/example/suite/WebServer.java
// public class WebServer {
//     boolean running;
// 
//     public WebServer() {
//         running = true;
//     }
// 
//     public void shutDown() {
//         running = false;
//     }
// 
//     public int httpStatus(String url) {
//         return 200;
//     }
// 
//     public String htmlDocument(String url) {
//         return "<html><body><title>hello HawaRunner</title></body></html>";
//     }
// 
//     public String htmlDocument(String url, String user) {
//         return "<html><body><title>hello "+user+"</title></body></html>";
//     }
// }


// Path: src/test/java/com/github/havarunner/example/suite/rest/RestTest.java
import com.github.havarunner.HavaRunner;
import com.github.havarunner.annotation.PartOf;
import com.github.havarunner.example.suite.WebApplicationSuiteTest;
import com.github.havarunner.example.suite.WebServer;
import org.junit.Test;
import org.junit.runner.RunWith;
import static org.junit.Assert.assertEquals;

package com.github.havarunner.example.suite.rest;



@RunWith(HavaRunner.class)
@PartOf(WebApplicationSuiteTest.class)
public class RestTest {

    private final WebServer webServer;

    RestTest(WebServer webServer) { // HavaRunner will pass the suite object to the constructor