package org.tests.draftable;
import io.ebean.Ebean;
import io.ebean.EbeanServer;
import io.ebean.PagedList;
import io.ebean.Query;
import org.tests.model.draftable.Link;
import org.junit.Test;
import java.util.ArrayList;
import java.util.List;
import static org.assertj.core.api.Assertions.assertThat;
public class LinkQueryPublishTest {
@Test
public void testPublishViaQuery() {
Link link1 = new Link("L1");
link1.save();
Link link2 = new Link("L2");
link2.save();
Link link3 = new Link("L3");
link3.save();
EbeanServer server = Ebean.getDefaultServer();
List<Object> ids = new ArrayList<>();
ids.add(link1.getId());
ids.add(link2.getId());
ids.add(link3.getId());
PagedList<Link> pagedList =
server.find(Link.class).asDraft()
.where().idIn(ids)
.setMaxRows(10)
.findPagedList();
assertThat(pagedList.getTotalCount()).isEqualTo(3);
assertThat(pagedList.getList()).hasSize(3);
Query<Link> pubQuery = server.find(Link.class)
.where().idIn(ids)
.order().asc("id");
List<Link> pubList = server.publish(pubQuery);
assertThat(pubList).hasSize(3);
assertThat(pubList).extracting("id").contains(link1.getId(), link2.getId(), link3.getId());
}
}