package io.haskins.java.cloudtrailviewer.controller.widget; import io.haskins.java.cloudtrailviewer.BaseTest; import io.haskins.java.cloudtrailviewer.CloudTrailViewer; import io.haskins.java.cloudtrailviewer.model.DashboardWidget; import io.haskins.java.cloudtrailviewer.service.DatabaseService; import io.haskins.java.cloudtrailviewer.service.EventTableService; import javafx.application.Application; import javafx.scene.chart.PieChart; import org.junit.Before; import org.junit.BeforeClass; import org.junit.Test; import java.lang.reflect.Field; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; /** * Created by markhaskins on 24/01/2017. */ public class PieChartWidgetControllerTests extends BaseTest { private AbstractBaseController pieChartController; @BeforeClass public static void setupClass() throws InterruptedException { Thread t = new Thread("JavaFX Init Thread") { public void run() { Application.launch(CloudTrailViewer.class); } }; t.setDaemon(true); t.start(); Thread.sleep(500); } @Before public void init() { pieChartController = new ChartPieWidgetController(); pieChartController.loadFXML(); } @Test public void configureTest() { DashboardWidget widget = getTestWidget(); EventTableService eventTableService = new EventTableService(); DatabaseService databaseService = new DatabaseService(); pieChartController.configure(widget, eventTableService, databaseService); Class<?> testClass = pieChartController.getClass(); try { Field f = getField(testClass, "pieChart"); f.setAccessible(true); f.get(pieChartController); PieChart pieChart = (PieChart)getValueOfField(pieChartController, f); assertEquals(640, pieChart.getPrefWidth(), 0); assertEquals(320, pieChart.getPrefHeight(), 0); assertEquals(widget, pieChartController.getWidget()); } catch (NoSuchFieldException | IllegalAccessException e) { e.printStackTrace(); } assertTrue(true); } }