// Path: src/main/java/com/github/drapostolos/rdp4j/spi/FileElement.java
// public interface FileElement {
// 
//     /**
//      * Returns the time when this {@link FileElement} was last modified
//      * (according to the remote file-system).
//      * <p>
//      * Returning a {@code 0L} value will be treated the same as if an {@link IOException} was
//      * thrown.
//      * 
//      * @return A long value representing the time this {@link FileElement} was last modified.
//      * @throws IOException if not possible to fetch the last modified time, due
//      *         to I/O error. Throwing {@link IOException} will fire a {@link IoErrorRaisedEvent}
//      *         event in {@link IoErrorListener#ioErrorRaised(IoErrorRaisedEvent)}.
//      * @throws DirectoryPollerException For errors you don't want firing {@link IoErrorRaisedEvent}
//      *         events for. This will cause the Directory-Poller
//      *         to silently skip this poll-cycle and wait for next poll-cycle. In Other
//      *         words use this exception when you think it is possible to recover within
//      *         next coming poll-cycles (Keep a MaxRetries counter or similar in your
//      *         implementation).
//      * @throws RuntimeException if any unexpected crashes occurs. This will cause
//      *         the Directory-Poller to log an error message (along with the causing
//      *         {@link RuntimeException}) and stop the {@link DirectoryPoller}.
//      */
//     long lastModified() throws IOException;
// 
//     /**
//      * This method returns true, if this {@link FileElement} represents
//      * a directory, otherwise false.
//      * <p>
//      * This method is optional to implement.
//      * 
//      * @return true if this {@link FileElement} instance represents a
//      *         directory, otherwise false.
//      */
//     boolean isDirectory();
// 
//     /**
//      * Returns the name of this {@link FileElement}.
//      * <p>
//      * NOTE! <br>
//      * All files within a directory are expected to have unique names.
//      * 
//      * @return name of {@link FileElement}.
//      * @throws DirectoryPollerException For errors you don't want firing {@link IoErrorRaisedEvent}
//      *         events for. This will cause the Directory-Poller
//      *         to silently skip this poll-cycle and wait for next poll-cycle. In Other
//      *         words use this exception when you think it is possible to recover within
//      *         next coming poll-cycles (Keep a MaxRetries counter or similar in your
//      *         implementation).
//      * @throws RuntimeException if any unexpected crashes occurs. This will cause
//      *         the Directory-Poller to log an error message (along with the causing
//      *         {@link RuntimeException}) and stop the {@link DirectoryPoller}.
//      */
//     String getName();
// }
// 
// Path: src/main/java/com/github/drapostolos/rdp4j/spi/PolledDirectory.java
// public interface PolledDirectory {
// 
//     /**
//      * Returns a snapshot of the current content in this directory, i.e.
//      * listing all {@link FileElement}s in this directory.
//      * <p>
//      * Returning a {@code null} value will be treated the same as if an {@link IOException} was
//      * thrown.
//      * <p>
//      * NOTE! <br>
//      * All files within a directory are expected to have unique names (i.e. method
//      * {@link FileElement#getName()} is expected to return a name unique among all files within this
//      * directory).
//      * 
//      * @return a list of {@link FileElement}s in this directory
//      * @throws IOException if not possible to list files in this directory, due
//      *         to I/O error. Throwing {@link IOException} will fire a {@link IoErrorRaisedEvent}
//      *         event in {@link IoErrorListener#ioErrorRaised(IoErrorRaisedEvent)}.
//      * @throws DirectoryPollerException For errors you don't want firing {@link IoErrorRaisedEvent}
//      *         events for. This will cause the Directory-Poller
//      *         to silently skip this poll-cycle and wait for next poll-cycle. In Other
//      *         words use this exception when you think it is possible to recover within
//      *         next coming poll-cycles (Keep a MaxRetries counter or similar in your
//      *         implementation).
//      * @throws RuntimeException if any unexpected crashes occurs. This will
//      *         cause the Directory-Poller to log an error message (along with the causing
//      *         {@link RuntimeException}) and stop the {@link DirectoryPoller}.
//      */
//     Set<FileElement> listFiles() throws IOException;
// 
//     /**
//      * It is recommended to implement this method if clients wants to remove this
//      * {@link PolledDirectory} from the {@link DirectoryPoller}.
//      * 
//      * @param obj Object to compare.
//      */
//     @Override
//     public boolean equals(Object obj);
// 
//     /**
//      * It is recommended to implement this method if clients wants to remove this
//      * {@link PolledDirectory} using {@link DirectoryPoller#removePolledDirectory(PolledDirectory)}
//      * .
//      */
//     @Override
//     public int hashCode();
// }


import java.util.LinkedHashSet;
import java.util.Set;
import org.mockito.InOrder;
import org.mockito.Mockito;
import com.github.drapostolos.rdp4j.spi.FileElement;
import com.github.drapostolos.rdp4j.spi.PolledDirectory;
package com.github.drapostolos.rdp4j;




class EventVerifier {

    protected ScheduledRunnable pollerTask;
    protected AbstractRdp4jListener listenerMock;
    protected InOrder inOrder;
// Path: src/main/java/com/github/drapostolos/rdp4j/spi/FileElement.java
// public interface FileElement {
// 
//     /**
//      * Returns the time when this {@link FileElement} was last modified
//      * (according to the remote file-system).
//      * <p>
//      * Returning a {@code 0L} value will be treated the same as if an {@link IOException} was
//      * thrown.
//      * 
//      * @return A long value representing the time this {@link FileElement} was last modified.
//      * @throws IOException if not possible to fetch the last modified time, due
//      *         to I/O error. Throwing {@link IOException} will fire a {@link IoErrorRaisedEvent}
//      *         event in {@link IoErrorListener#ioErrorRaised(IoErrorRaisedEvent)}.
//      * @throws DirectoryPollerException For errors you don't want firing {@link IoErrorRaisedEvent}
//      *         events for. This will cause the Directory-Poller
//      *         to silently skip this poll-cycle and wait for next poll-cycle. In Other
//      *         words use this exception when you think it is possible to recover within
//      *         next coming poll-cycles (Keep a MaxRetries counter or similar in your
//      *         implementation).
//      * @throws RuntimeException if any unexpected crashes occurs. This will cause
//      *         the Directory-Poller to log an error message (along with the causing
//      *         {@link RuntimeException}) and stop the {@link DirectoryPoller}.
//      */
//     long lastModified() throws IOException;
// 
//     /**
//      * This method returns true, if this {@link FileElement} represents
//      * a directory, otherwise false.
//      * <p>
//      * This method is optional to implement.
//      * 
//      * @return true if this {@link FileElement} instance represents a
//      *         directory, otherwise false.
//      */
//     boolean isDirectory();
// 
//     /**
//      * Returns the name of this {@link FileElement}.
//      * <p>
//      * NOTE! <br>
//      * All files within a directory are expected to have unique names.
//      * 
//      * @return name of {@link FileElement}.
//      * @throws DirectoryPollerException For errors you don't want firing {@link IoErrorRaisedEvent}
//      *         events for. This will cause the Directory-Poller
//      *         to silently skip this poll-cycle and wait for next poll-cycle. In Other
//      *         words use this exception when you think it is possible to recover within
//      *         next coming poll-cycles (Keep a MaxRetries counter or similar in your
//      *         implementation).
//      * @throws RuntimeException if any unexpected crashes occurs. This will cause
//      *         the Directory-Poller to log an error message (along with the causing
//      *         {@link RuntimeException}) and stop the {@link DirectoryPoller}.
//      */
//     String getName();
// }
// 
// Path: src/main/java/com/github/drapostolos/rdp4j/spi/PolledDirectory.java
// public interface PolledDirectory {
// 
//     /**
//      * Returns a snapshot of the current content in this directory, i.e.
//      * listing all {@link FileElement}s in this directory.
//      * <p>
//      * Returning a {@code null} value will be treated the same as if an {@link IOException} was
//      * thrown.
//      * <p>
//      * NOTE! <br>
//      * All files within a directory are expected to have unique names (i.e. method
//      * {@link FileElement#getName()} is expected to return a name unique among all files within this
//      * directory).
//      * 
//      * @return a list of {@link FileElement}s in this directory
//      * @throws IOException if not possible to list files in this directory, due
//      *         to I/O error. Throwing {@link IOException} will fire a {@link IoErrorRaisedEvent}
//      *         event in {@link IoErrorListener#ioErrorRaised(IoErrorRaisedEvent)}.
//      * @throws DirectoryPollerException For errors you don't want firing {@link IoErrorRaisedEvent}
//      *         events for. This will cause the Directory-Poller
//      *         to silently skip this poll-cycle and wait for next poll-cycle. In Other
//      *         words use this exception when you think it is possible to recover within
//      *         next coming poll-cycles (Keep a MaxRetries counter or similar in your
//      *         implementation).
//      * @throws RuntimeException if any unexpected crashes occurs. This will
//      *         cause the Directory-Poller to log an error message (along with the causing
//      *         {@link RuntimeException}) and stop the {@link DirectoryPoller}.
//      */
//     Set<FileElement> listFiles() throws IOException;
// 
//     /**
//      * It is recommended to implement this method if clients wants to remove this
//      * {@link PolledDirectory} from the {@link DirectoryPoller}.
//      * 
//      * @param obj Object to compare.
//      */
//     @Override
//     public boolean equals(Object obj);
// 
//     /**
//      * It is recommended to implement this method if clients wants to remove this
//      * {@link PolledDirectory} using {@link DirectoryPoller#removePolledDirectory(PolledDirectory)}
//      * .
//      */
//     @Override
//     public int hashCode();
// }


// Path: src/test/java/com/github/drapostolos/rdp4j/EventVerifier.java
import java.util.LinkedHashSet;
import java.util.Set;
import org.mockito.InOrder;
import org.mockito.Mockito;
import com.github.drapostolos.rdp4j.spi.FileElement;
import com.github.drapostolos.rdp4j.spi.PolledDirectory;

package com.github.drapostolos.rdp4j;




class EventVerifier {

    protected ScheduledRunnable pollerTask;
    protected AbstractRdp4jListener listenerMock;
    protected InOrder inOrder;
    protected Set<PolledDirectory> directories = new LinkedHashSet<PolledDirectory>();