package org.tests.model.survey;
import io.ebean.BaseTestCase;
import io.ebean.Ebean;
import org.jetbrains.annotations.NotNull;
import org.junit.Test;
import java.util.ArrayList;
import java.util.List;
import static org.junit.Assert.assertEquals;
public class TestOrderByFetch extends BaseTestCase {
@Test
public void test() {
Survey survey = new Survey("s1");
List<Category> categories = new ArrayList<>();
Category category = new Category("c1");
category.setSequenceNumber(1);
categories.add(category);
survey.setCategories(categories);
List<Group> groups = new ArrayList<>();
Group group1 = group(1);
Group group2 = group(2);
groups.add(group1);
groups.add(group2);
category.setGroups(groups);
List<Question> questionListGroup1 = new ArrayList<>();
questionListGroup1.add(question(1));
questionListGroup1.add(question(2));
questionListGroup1.add(question(3));
group1.setQuestions(questionListGroup1);
List<Question> questionListGroup2 = new ArrayList<>();
questionListGroup2.add(question(1));
questionListGroup2.add(question(2));
group2.setQuestions(questionListGroup2);
Ebean.save(survey);
Survey foundSurvey = Ebean.find(Survey.class)
.setDisableLazyLoading(true)
.fetch("categories")
.fetch("categories.groups")
.fetch("categories.groups.questions")
.findUnique();
assertEquals(1, foundSurvey.getCategories().size());
Category category1 = foundSurvey.getCategories().get(0);
List<Group> groups2 = category1.getGroups();
assertEquals(2, groups2.size());
}
@NotNull
private Group group(int number) {
Group group1 = new Group("g" + number);
group1.setSequenceNumber(number);
return group1;
}
@NotNull
private Question question(int sequence) {
Question q2 = new Question("q" + sequence);
q2.setSequenceNumber(sequence);
return q2;
}
}