// Path: src/integrationTest/java/com/kasirgalabs/etumulator/JavaFXThread.java
// public class JavaFXThread implements TestRule {
//     /**
//      * Flag for setting up the JavaFX, we only need to do this once for all tests.
//      */
//     private static boolean setupStatus;
// 
//     @Override
//     public Statement apply(Statement statement, Description description) {
//         return new JavaFXSatement(statement);
//     }
// 
//     private static class JavaFXSatement extends Statement {
//         private Throwable rethrownException;
//         private final Statement statement;
// 
//         private JavaFXSatement(Statement aStatement) {
//             statement = aStatement;
//         }
// 
//         @Override
//         public void evaluate() throws Throwable {
//             if(!setupStatus) {
//                 setupJavaFX();
//                 setupStatus = true;
//             }
//             final CountDownLatch countDownLatch = new CountDownLatch(1);
//             Platform.runLater(() -> {
//                 try {
//                     statement.evaluate();
//                 } catch(Throwable e) {
//                     rethrownException = e;
//                 }
//                 countDownLatch.countDown();
//             });
//             countDownLatch.await();
//             // If an exception was thrown by the statement during evaluation,
//             // then re-throw it to fail the test.
//             if(rethrownException != null) {
//                 throw rethrownException;
//             }
//         }
// 
//         private void setupJavaFX() throws InterruptedException {
//             final CountDownLatch latch = new CountDownLatch(1);
//             SwingUtilities.invokeLater(() -> {
//                 // Initializes JavaFX environment.
//                 new JFXPanel();
//                 latch.countDown();
//             });
//             latch.await();
//         }
//     }
// }


import static org.junit.Assert.assertEquals;
import com.kasirgalabs.etumulator.JavaFXThread;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.io.PrintWriter;
import javafx.application.Platform;
import javafx.fxml.FXMLLoader;
import org.junit.After;
import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
package com.kasirgalabs.etumulator.document;



public class BaseDocumentTest {
    @Rule
// Path: src/integrationTest/java/com/kasirgalabs/etumulator/JavaFXThread.java
// public class JavaFXThread implements TestRule {
//     /**
//      * Flag for setting up the JavaFX, we only need to do this once for all tests.
//      */
//     private static boolean setupStatus;
// 
//     @Override
//     public Statement apply(Statement statement, Description description) {
//         return new JavaFXSatement(statement);
//     }
// 
//     private static class JavaFXSatement extends Statement {
//         private Throwable rethrownException;
//         private final Statement statement;
// 
//         private JavaFXSatement(Statement aStatement) {
//             statement = aStatement;
//         }
// 
//         @Override
//         public void evaluate() throws Throwable {
//             if(!setupStatus) {
//                 setupJavaFX();
//                 setupStatus = true;
//             }
//             final CountDownLatch countDownLatch = new CountDownLatch(1);
//             Platform.runLater(() -> {
//                 try {
//                     statement.evaluate();
//                 } catch(Throwable e) {
//                     rethrownException = e;
//                 }
//                 countDownLatch.countDown();
//             });
//             countDownLatch.await();
//             // If an exception was thrown by the statement during evaluation,
//             // then re-throw it to fail the test.
//             if(rethrownException != null) {
//                 throw rethrownException;
//             }
//         }
// 
//         private void setupJavaFX() throws InterruptedException {
//             final CountDownLatch latch = new CountDownLatch(1);
//             SwingUtilities.invokeLater(() -> {
//                 // Initializes JavaFX environment.
//                 new JFXPanel();
//                 latch.countDown();
//             });
//             latch.await();
//         }
//     }
// }


// Path: src/integrationTest/java/com/kasirgalabs/etumulator/document/BaseDocumentTest.java
import static org.junit.Assert.assertEquals;
import com.kasirgalabs.etumulator.JavaFXThread;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.io.PrintWriter;
import javafx.application.Platform;
import javafx.fxml.FXMLLoader;
import org.junit.After;
import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;

package com.kasirgalabs.etumulator.document;



public class BaseDocumentTest {
    @Rule
    public final JavaFXThread javaFXThread = new JavaFXThread();