package de.ks.idnadrev.category;
import de.ks.LauncherRunner;
import de.ks.activity.ActivityCfg;
import de.ks.idnadrev.ActivityTest;
import de.ks.idnadrev.entity.Category;
import de.ks.persistence.PersistentWork;
import de.ks.util.FXPlatform;
import org.junit.Test;
import org.junit.runner.RunWith;
import javax.persistence.EntityManager;
import static org.junit.Assert.*;
@RunWith(LauncherRunner.class)
public class CategoryBrowserTest extends ActivityTest {
@Override
protected Class<? extends ActivityCfg> getActivityClass() {
return CategoryBrowseTestActivity.class;
}
@Override
protected void createTestData(EntityManager em) {
em.persist(new Category("hello"));
em.persist(new Category("world"));
}
@Test
public void testFlowPaneFilling() throws Exception {
activityController.waitForTasks();
FXPlatform.waitForFX();
CategoryBrowser browser = activityController.getControllerInstance(CategoryBrowser.class);
assertEquals(2, browser.categoryPane.getChildren().size());
PersistentWork.deleteAllOf(Category.class);
PersistentWork.persist(new Category("hello"));
browser.onResume();
Thread.sleep(150);
activityController.waitForTasks();
FXPlatform.waitForFX();
assertEquals(1, browser.categoryPane.getChildren().size());
PersistentWork.persist(new Category("sauerland"));
browser.onResume();
activityController.waitForTasks();
Thread.sleep(150);
FXPlatform.waitForFX();
assertEquals(2, browser.categoryPane.getChildren().size());
}
@Test
public void testCategoryItem() throws Exception {
activityController.waitForTasks();
FXPlatform.waitForFX();
CategoryBrowser controllerInstance = activityController.getControllerInstance(CategoryBrowser.class);
CategoryItemController first = controllerInstance.itemControllers.get(0);
CategoryItemController second = controllerInstance.itemControllers.get(1);
assertEquals("hello", first.title.getText());
assertEquals("world", second.title.getText());
assertNull(controllerInstance.selectedCategory.get());
FXPlatform.invokeLater(() -> first.title.getOnAction().handle(null));
assertNotNull(controllerInstance.selectedCategory.get());
assertEquals("hello", controllerInstance.selectedCategory.get().getName());
}
}