// Path: environment.monitor.core/src/main/java/org/yagel/monitor/Resource.java
// public interface Resource {
// 
//   String getId();
// 
//   String getName();
// 
// }
// 
// Path: environment.monitor.core/src/main/java/org/yagel/monitor/ResourceStatus.java
// public interface ResourceStatus {
// 
//   Resource getResource();
// 
//   void setResource(Resource resource);
// 
//   Status getStatus();
// 
//   void setStatus(Status status);
// 
//   Date getUpdated();
// 
//   void setUpdated(Date updated);
// }
// 
// Path: environment.monitor.core/src/main/java/org/yagel/monitor/resource/ResourceImpl.java
// public class ResourceImpl implements Resource {
// 
//   private String id;
//   private String name;
// 
// 
//   public ResourceImpl(String id, String name) {
//     this.id = id;
//     this.name = name;
//   }
// 
//   @Override
//   public String getId() {
//     return this.id;
//   }
// 
// 
//   @Override
//   public String getName() {
//     return name;
//   }
// 
//   public void setName(String name) {
//     this.name = name;
//   }
// 
//   @Override
//   public int hashCode() {
//     return Objects.hash(getId(), getName());
//   }
// 
//   @Override
//   public boolean equals(Object o) {
//     if (this == o) return true;
//     if (!(o instanceof ResourceImpl)) return false;
//     ResourceImpl resource = (ResourceImpl) o;
//     return Objects.equals(getId(), resource.getId()) &&
//         Objects.equals(getName(), resource.getName());
//   }
// 
//   @Override
//   public String toString() {
//     return new ToStringBuilder(this)
//         .append("id", id)
//         .append("name", name)
//         .toString();
//   }
// }
// 
// Path: environment.monitor.core/src/main/java/org/yagel/monitor/resource/ResourceStatusImpl.java
// public class ResourceStatusImpl implements ResourceStatus {
// 
//   private Resource resource;
//   private Status status;
//   private Date updated = new Date();
// 
// 
//   public ResourceStatusImpl(Resource resource, Status status) {
//     this.resource = resource;
//     this.status = status;
//   }
// 
//   public ResourceStatusImpl(Resource resource, Status status, Date updated) {
//     this(resource, status);
//     this.updated = updated;
//   }
// 
// 
//   @Override
//   public Resource getResource() {
//     return resource;
//   }
// 
//   @Override
//   public void setResource(Resource resource) {
//     this.resource = resource;
//   }
// 
//   @Override
//   public Status getStatus() {
//     return status;
//   }
// 
//   @Override
//   public void setStatus(Status status) {
//     this.status = status;
//   }
// 
//   @Override
//   public Date getUpdated() {
//     return updated;
//   }
// 
//   @Override
//   public void setUpdated(Date updated) {
//     this.updated = updated;
//   }
// 
//   @Override
//   public int hashCode() {
//     return Objects.hash(getResource(), getStatus(), getUpdated());
//   }
// 
//   @Override
//   public boolean equals(Object o) {
//     if (this == o) return true;
//     if (!(o instanceof ResourceStatusImpl)) return false;
//     ResourceStatusImpl that = (ResourceStatusImpl) o;
//     return Objects.equals(getResource(), that.getResource()) &&
//         getStatus() == that.getStatus() &&
//         Objects.equals(getUpdated(), that.getUpdated());
//   }
// 
//   @Override
//   public String toString() {
//     return new ToStringBuilder(this)
//         .append("resource", resource)
//         .append("status", status)
//         .append("updated", updated)
//         .toString();
//   }
// }
// 
// Path: environment.monitor.core/src/main/java/org/yagel/monitor/resource/Status.java
// public enum Status {
// 
//   @XmlEnumValue("Online")
//   Online(0), // s0
//   @XmlEnumValue("BorderLine")
//   BorderLine(1), // s1
//   @XmlEnumValue("Unavailable")
//   Unavailable(2), // s2
//   @XmlEnumValue("Unknown")
//   Unknown(3); // s3
// 
//   int seriaNumber;
// 
//   Status(int seriaNumber) {
//     this.seriaNumber = seriaNumber;
//   }
// 
//   public static int seriaNumbers() {
//     return 3;
//   }
// 
//   public static Status fromSerialNumber(int serialNumber) {
//     return Stream.of(Status.values())
//         .filter(status -> status.getSeriaNumber() == serialNumber)
//         .findFirst()
//         .orElseThrow(() -> new IllegalArgumentException("illegal resource status"));
//   }
// 
//   public int getSeriaNumber() {
//     return seriaNumber;
//   }
// 
// 
// }


import org.apache.commons.lang3.RandomUtils;
import org.yagel.monitor.Resource;
import org.yagel.monitor.ResourceStatus;
import org.yagel.monitor.resource.ResourceImpl;
import org.yagel.monitor.resource.ResourceStatusImpl;
import org.yagel.monitor.resource.Status;
import java.util.Date;
import java.util.List;
import java.util.UUID;
import java.util.function.Supplier;
import java.util.stream.Collectors;
import java.util.stream.Stream;
package org.yagel.monitor.runner.test.intergation.dao;



public class AbstractDAOTest {

  protected String mockResoureId = "Mock_resource";
  protected String mockResoureName = "Mock_resource_Name";


  protected Resource rndResource() {
    return new ResourceImpl(mockResoureId + UUID.randomUUID(), mockResoureName + UUID.randomUUID());
  }

  protected ResourceStatus rndResStatus() {
    return this.rndResStatus(rndResource());
  }

  protected ResourceStatus rndResStatus(Resource resource) {
    return new ResourceStatusImpl(resource, rndStatus(), new Date());
  }

// Path: environment.monitor.core/src/main/java/org/yagel/monitor/Resource.java
// public interface Resource {
// 
//   String getId();
// 
//   String getName();
// 
// }
// 
// Path: environment.monitor.core/src/main/java/org/yagel/monitor/ResourceStatus.java
// public interface ResourceStatus {
// 
//   Resource getResource();
// 
//   void setResource(Resource resource);
// 
//   Status getStatus();
// 
//   void setStatus(Status status);
// 
//   Date getUpdated();
// 
//   void setUpdated(Date updated);
// }
// 
// Path: environment.monitor.core/src/main/java/org/yagel/monitor/resource/ResourceImpl.java
// public class ResourceImpl implements Resource {
// 
//   private String id;
//   private String name;
// 
// 
//   public ResourceImpl(String id, String name) {
//     this.id = id;
//     this.name = name;
//   }
// 
//   @Override
//   public String getId() {
//     return this.id;
//   }
// 
// 
//   @Override
//   public String getName() {
//     return name;
//   }
// 
//   public void setName(String name) {
//     this.name = name;
//   }
// 
//   @Override
//   public int hashCode() {
//     return Objects.hash(getId(), getName());
//   }
// 
//   @Override
//   public boolean equals(Object o) {
//     if (this == o) return true;
//     if (!(o instanceof ResourceImpl)) return false;
//     ResourceImpl resource = (ResourceImpl) o;
//     return Objects.equals(getId(), resource.getId()) &&
//         Objects.equals(getName(), resource.getName());
//   }
// 
//   @Override
//   public String toString() {
//     return new ToStringBuilder(this)
//         .append("id", id)
//         .append("name", name)
//         .toString();
//   }
// }
// 
// Path: environment.monitor.core/src/main/java/org/yagel/monitor/resource/ResourceStatusImpl.java
// public class ResourceStatusImpl implements ResourceStatus {
// 
//   private Resource resource;
//   private Status status;
//   private Date updated = new Date();
// 
// 
//   public ResourceStatusImpl(Resource resource, Status status) {
//     this.resource = resource;
//     this.status = status;
//   }
// 
//   public ResourceStatusImpl(Resource resource, Status status, Date updated) {
//     this(resource, status);
//     this.updated = updated;
//   }
// 
// 
//   @Override
//   public Resource getResource() {
//     return resource;
//   }
// 
//   @Override
//   public void setResource(Resource resource) {
//     this.resource = resource;
//   }
// 
//   @Override
//   public Status getStatus() {
//     return status;
//   }
// 
//   @Override
//   public void setStatus(Status status) {
//     this.status = status;
//   }
// 
//   @Override
//   public Date getUpdated() {
//     return updated;
//   }
// 
//   @Override
//   public void setUpdated(Date updated) {
//     this.updated = updated;
//   }
// 
//   @Override
//   public int hashCode() {
//     return Objects.hash(getResource(), getStatus(), getUpdated());
//   }
// 
//   @Override
//   public boolean equals(Object o) {
//     if (this == o) return true;
//     if (!(o instanceof ResourceStatusImpl)) return false;
//     ResourceStatusImpl that = (ResourceStatusImpl) o;
//     return Objects.equals(getResource(), that.getResource()) &&
//         getStatus() == that.getStatus() &&
//         Objects.equals(getUpdated(), that.getUpdated());
//   }
// 
//   @Override
//   public String toString() {
//     return new ToStringBuilder(this)
//         .append("resource", resource)
//         .append("status", status)
//         .append("updated", updated)
//         .toString();
//   }
// }
// 
// Path: environment.monitor.core/src/main/java/org/yagel/monitor/resource/Status.java
// public enum Status {
// 
//   @XmlEnumValue("Online")
//   Online(0), // s0
//   @XmlEnumValue("BorderLine")
//   BorderLine(1), // s1
//   @XmlEnumValue("Unavailable")
//   Unavailable(2), // s2
//   @XmlEnumValue("Unknown")
//   Unknown(3); // s3
// 
//   int seriaNumber;
// 
//   Status(int seriaNumber) {
//     this.seriaNumber = seriaNumber;
//   }
// 
//   public static int seriaNumbers() {
//     return 3;
//   }
// 
//   public static Status fromSerialNumber(int serialNumber) {
//     return Stream.of(Status.values())
//         .filter(status -> status.getSeriaNumber() == serialNumber)
//         .findFirst()
//         .orElseThrow(() -> new IllegalArgumentException("illegal resource status"));
//   }
// 
//   public int getSeriaNumber() {
//     return seriaNumber;
//   }
// 
// 
// }


// Path: environment.monitor.runner/src/test/java/org/yagel/monitor/runner/test/intergation/dao/AbstractDAOTest.java
import org.apache.commons.lang3.RandomUtils;
import org.yagel.monitor.Resource;
import org.yagel.monitor.ResourceStatus;
import org.yagel.monitor.resource.ResourceImpl;
import org.yagel.monitor.resource.ResourceStatusImpl;
import org.yagel.monitor.resource.Status;
import java.util.Date;
import java.util.List;
import java.util.UUID;
import java.util.function.Supplier;
import java.util.stream.Collectors;
import java.util.stream.Stream;

package org.yagel.monitor.runner.test.intergation.dao;



public class AbstractDAOTest {

  protected String mockResoureId = "Mock_resource";
  protected String mockResoureName = "Mock_resource_Name";


  protected Resource rndResource() {
    return new ResourceImpl(mockResoureId + UUID.randomUUID(), mockResoureName + UUID.randomUUID());
  }

  protected ResourceStatus rndResStatus() {
    return this.rndResStatus(rndResource());
  }

  protected ResourceStatus rndResStatus(Resource resource) {
    return new ResourceStatusImpl(resource, rndStatus(), new Date());
  }

  protected ResourceStatus rndResStatus(Resource resource, Status status, Date updated) {