// Path: src/main/java/io/github/sskorol/data/YamlReader.java
// @AllArgsConstructor
// public class YamlReader<T> implements DataReader<T> {
// 
//     @Getter
//     private final Class<T> entityClass;
//     @Getter
//     private final String path;
// 
//     public YamlReader(final Class<T> entityClass) {
//         this(entityClass, "");
//     }
// 
//     public StreamEx<T> read() {
//         try {
//             var yamlFactory = new YAMLFactory();
//             return StreamEx.of(new ObjectMapper(yamlFactory)
//                 .configure(FAIL_ON_UNKNOWN_PROPERTIES, false)
//                 .readValues(yamlFactory.createParser(getUrl()), entityClass)
//                 .readAll());
//         } catch (Exception ex) {
//             throw new IllegalArgumentException(format("Unable to read YAML data to %s.", entityClass), ex);
//         }
//     }
// }
// 
// Path: src/test/java/io/github/sskorol/entities/DockerConfiguration.java
// @Source(path = "docker-compose.yml")
// @Data
// @NoArgsConstructor
// public class DockerConfiguration {
// 
//     private String version;
//     private Map<String, ServiceConfiguration> services;
// }
// 
// Path: src/test/java/io/github/sskorol/entities/MissingClient.java
// @Source(path = "unknown")
// @Data
// public class MissingClient {
// 
//     private final String firstName;
//     private final String lastName;
// }
// 
// Path: src/test/java/io/github/sskorol/entities/TravisConfiguration.java
// @Source(path = "https://raw.githubusercontent.com/sskorol/test-data-supplier/master/.travis.yml")
// @Data
// @NoArgsConstructor
// public class TravisConfiguration {
// 
//     private String language;
//     private boolean sudo;
//     private boolean install;
//     private Map<String, Addon> addons;
//     private List<String> jdk;
//     private List<String> script;
//     private Map<String, List<String>> cache;
//     private Map<String, Email> notifications;
// }
// 
// Path: src/test/java/io/github/sskorol/entities/YamlUser.java
// @Source(path = "users.yml")
// @Data
// @NoArgsConstructor
// public class YamlUser {
// 
//     @JsonProperty("username")
//     private String name;
//     private String password;
// }
// 
// Path: src/main/java/io/github/sskorol/data/TestDataReader.java
// public static <T extends DataReader<?>> TestDataReader<T> use(final Class<T> dataReaderClass) {
//     return new TestDataReader<>(dataReaderClass);
// }


import io.github.sskorol.core.DataSupplier;
import io.github.sskorol.data.YamlReader;
import io.github.sskorol.entities.DockerConfiguration;
import io.github.sskorol.entities.MissingClient;
import io.github.sskorol.entities.TravisConfiguration;
import io.github.sskorol.entities.YamlUser;
import one.util.streamex.StreamEx;
import org.testng.annotations.Test;
import static io.github.sskorol.data.TestDataReader.use;
package io.github.sskorol.testcases;



public class YamlDataSupplierTests {

    @DataSupplier
    public StreamEx<DockerConfiguration> getDockerConfiguration() {
        return use(YamlReader.class).withTarget(DockerConfiguration.class).read();
    }

    @DataSupplier
// Path: src/main/java/io/github/sskorol/data/YamlReader.java
// @AllArgsConstructor
// public class YamlReader<T> implements DataReader<T> {
// 
//     @Getter
//     private final Class<T> entityClass;
//     @Getter
//     private final String path;
// 
//     public YamlReader(final Class<T> entityClass) {
//         this(entityClass, "");
//     }
// 
//     public StreamEx<T> read() {
//         try {
//             var yamlFactory = new YAMLFactory();
//             return StreamEx.of(new ObjectMapper(yamlFactory)
//                 .configure(FAIL_ON_UNKNOWN_PROPERTIES, false)
//                 .readValues(yamlFactory.createParser(getUrl()), entityClass)
//                 .readAll());
//         } catch (Exception ex) {
//             throw new IllegalArgumentException(format("Unable to read YAML data to %s.", entityClass), ex);
//         }
//     }
// }
// 
// Path: src/test/java/io/github/sskorol/entities/DockerConfiguration.java
// @Source(path = "docker-compose.yml")
// @Data
// @NoArgsConstructor
// public class DockerConfiguration {
// 
//     private String version;
//     private Map<String, ServiceConfiguration> services;
// }
// 
// Path: src/test/java/io/github/sskorol/entities/MissingClient.java
// @Source(path = "unknown")
// @Data
// public class MissingClient {
// 
//     private final String firstName;
//     private final String lastName;
// }
// 
// Path: src/test/java/io/github/sskorol/entities/TravisConfiguration.java
// @Source(path = "https://raw.githubusercontent.com/sskorol/test-data-supplier/master/.travis.yml")
// @Data
// @NoArgsConstructor
// public class TravisConfiguration {
// 
//     private String language;
//     private boolean sudo;
//     private boolean install;
//     private Map<String, Addon> addons;
//     private List<String> jdk;
//     private List<String> script;
//     private Map<String, List<String>> cache;
//     private Map<String, Email> notifications;
// }
// 
// Path: src/test/java/io/github/sskorol/entities/YamlUser.java
// @Source(path = "users.yml")
// @Data
// @NoArgsConstructor
// public class YamlUser {
// 
//     @JsonProperty("username")
//     private String name;
//     private String password;
// }
// 
// Path: src/main/java/io/github/sskorol/data/TestDataReader.java
// public static <T extends DataReader<?>> TestDataReader<T> use(final Class<T> dataReaderClass) {
//     return new TestDataReader<>(dataReaderClass);
// }


// Path: src/test/java/io/github/sskorol/testcases/YamlDataSupplierTests.java
import io.github.sskorol.core.DataSupplier;
import io.github.sskorol.data.YamlReader;
import io.github.sskorol.entities.DockerConfiguration;
import io.github.sskorol.entities.MissingClient;
import io.github.sskorol.entities.TravisConfiguration;
import io.github.sskorol.entities.YamlUser;
import one.util.streamex.StreamEx;
import org.testng.annotations.Test;
import static io.github.sskorol.data.TestDataReader.use;

package io.github.sskorol.testcases;



public class YamlDataSupplierTests {

    @DataSupplier
    public StreamEx<DockerConfiguration> getDockerConfiguration() {
        return use(YamlReader.class).withTarget(DockerConfiguration.class).read();
    }

    @DataSupplier
    public StreamEx<YamlUser> getUsers() {