use of au.gov.asd.tac.constellation.views.dataaccess.components.DataAccessTabPane in project constellation by constellation-app.
the class DataAccessUtilitiesNGTest method loadDataAccessState.
@Test
public void loadDataAccessState() {
// Create current data access view state and set some parameters
// The code currenly only looks at the first tab so parameter2
// value will be ignored
final DataAccessState currentState = new DataAccessState();
currentState.newTab();
currentState.add("parameter1", "parameter1_new_value");
currentState.newTab();
currentState.add("parameter2", "parameter2_new_value");
// mock graph
final Graph graph = mock(Graph.class);
final ReadableGraph rGraph = mock(ReadableGraph.class);
when(graph.getReadableGraph()).thenReturn(rGraph);
// mock data access state attribute in graph
when(rGraph.getAttribute(GraphElementType.META, "dataaccess_state")).thenReturn(2);
when(rGraph.getObjectValue(2, 0)).thenReturn(currentState);
// mock tab pane
final DataAccessPane dataAccessPane = mock(DataAccessPane.class);
final DataAccessTabPane dataAccessTabPane = mock(DataAccessTabPane.class);
final TabPane tabPane = mock(TabPane.class);
final Tab currentTab = mock(Tab.class);
when(dataAccessPane.getDataAccessTabPane()).thenReturn(dataAccessTabPane);
when(dataAccessTabPane.getCurrentTab()).thenReturn(currentTab);
when(dataAccessTabPane.getTabPane()).thenReturn(tabPane);
when(tabPane.getTabs()).thenReturn(FXCollections.observableArrayList(currentTab, mock(Tab.class)));
try (final MockedStatic<DataAccessTabPane> daTabPaneMockedStatic = Mockito.mockStatic(DataAccessTabPane.class)) {
final QueryPhasePane queryPhasePane = mock(QueryPhasePane.class);
daTabPaneMockedStatic.when(() -> DataAccessTabPane.getQueryPhasePane(currentTab)).thenReturn(queryPhasePane);
final GlobalParametersPane globalParametersPane = mock(GlobalParametersPane.class);
final PluginParameters globalPluginParameters = mock(PluginParameters.class);
final PluginParameter pluginParameter1 = mock(PluginParameter.class);
final PluginParameter pluginParameter2 = mock(PluginParameter.class);
when(queryPhasePane.getGlobalParametersPane()).thenReturn(globalParametersPane);
when(globalParametersPane.getParams()).thenReturn(globalPluginParameters);
when(globalPluginParameters.getParameters()).thenReturn(Map.of("parameter1", pluginParameter1, "parameter2", pluginParameter2));
DataAccessUtilities.loadDataAccessState(dataAccessPane, graph);
verify(pluginParameter1).setStringValue("parameter1_new_value");
verify(pluginParameter2, never()).setStringValue(anyString());
verify(rGraph).release();
}
}
use of au.gov.asd.tac.constellation.views.dataaccess.components.DataAccessTabPane in project constellation by constellation-app.
the class DataAccessUtilitiesNGTest method loadDataAccessState_empty_state.
@Test
public void loadDataAccessState_empty_state() {
// mock graph
final Graph graph = mock(Graph.class);
final ReadableGraph rGraph = mock(ReadableGraph.class);
when(graph.getReadableGraph()).thenReturn(rGraph);
// mock data access state attribute in graph
when(rGraph.getAttribute(GraphElementType.META, "dataaccess_state")).thenReturn(2);
when(rGraph.getObjectValue(2, 0)).thenReturn(new DataAccessState());
// mock tab pane
final DataAccessPane dataAccessPane = mock(DataAccessPane.class);
final DataAccessTabPane dataAccessTabPane = mock(DataAccessTabPane.class);
final Tab currentTab = mock(Tab.class);
when(dataAccessPane.getDataAccessTabPane()).thenReturn(dataAccessTabPane);
when(dataAccessTabPane.getCurrentTab()).thenReturn(currentTab);
try (final MockedStatic<DataAccessTabPane> daTabPaneMockedStatic = Mockito.mockStatic(DataAccessTabPane.class)) {
DataAccessUtilities.loadDataAccessState(dataAccessPane, graph);
daTabPaneMockedStatic.verifyNoInteractions();
verify(rGraph).release();
}
}
use of au.gov.asd.tac.constellation.views.dataaccess.components.DataAccessTabPane in project constellation by constellation-app.
the class DataAccessParametersIoProviderNGTest method loadParameters.
@Test
public void loadParameters() throws IOException {
final DataAccessPane dataAccessPane = mock(DataAccessPane.class);
final DataAccessTabPane dataAccessTabPane = mock(DataAccessTabPane.class);
when(dataAccessPane.getDataAccessTabPane()).thenReturn(dataAccessTabPane);
final QueryPhasePane tab1 = mock(QueryPhasePane.class);
final QueryPhasePane tab2 = mock(QueryPhasePane.class);
when(dataAccessTabPane.newTab(anyString())).thenReturn(tab1).thenReturn(tab2);
final GlobalParametersPane globalParametersPane1 = mock(GlobalParametersPane.class);
final GlobalParametersPane globalParametersPane2 = mock(GlobalParametersPane.class);
when(tab1.getGlobalParametersPane()).thenReturn(globalParametersPane1);
when(tab2.getGlobalParametersPane()).thenReturn(globalParametersPane2);
// By adding the settings bit here, it forces mockito to generate two different
// classes. Otherwise they would be two different objects but have the same class name
final Plugin plugin1 = mock(Plugin.class, withSettings().extraInterfaces(Comparable.class));
final Plugin plugin2 = mock(Plugin.class, withSettings().extraInterfaces(Serializable.class));
final DataSourceTitledPane dataSourceTitledPane1 = mock(DataSourceTitledPane.class);
when(dataSourceTitledPane1.getPlugin()).thenReturn(plugin1);
final DataSourceTitledPane dataSourceTitledPane2 = mock(DataSourceTitledPane.class);
when(dataSourceTitledPane2.getPlugin()).thenReturn(plugin2);
when(tab1.getDataAccessPanes()).thenReturn(List.of(dataSourceTitledPane1, dataSourceTitledPane2));
when(tab2.getDataAccessPanes()).thenReturn(List.of());
final PluginParameter pluginParameter1 = mock(PluginParameter.class);
when(pluginParameter1.getId()).thenReturn("param1");
final PluginParameter pluginParameter2 = mock(PluginParameter.class);
when(pluginParameter2.getId()).thenReturn("param2");
final PluginParameter pluginParameter3 = mock(PluginParameter.class);
when(pluginParameter3.getId()).thenReturn("param3");
final PluginParameter pluginParameter4 = mock(PluginParameter.class);
when(pluginParameter4.getId()).thenReturn("param4");
final PluginParameters globalPluginParameters1 = new PluginParameters();
globalPluginParameters1.addParameter(pluginParameter1);
globalPluginParameters1.addParameter(pluginParameter2);
globalPluginParameters1.addParameter(pluginParameter3);
final PluginParameters globalPluginParameters2 = new PluginParameters();
globalPluginParameters2.addParameter(pluginParameter3);
globalPluginParameters2.addParameter(pluginParameter4);
when(globalParametersPane1.getParams()).thenReturn(globalPluginParameters1);
when(globalParametersPane2.getParams()).thenReturn(globalPluginParameters2);
try (final MockedStatic<JsonIO> jsonIOStaticMock = Mockito.mockStatic(JsonIO.class)) {
final ObjectMapper objectMapper = new ObjectMapper();
final String json = IOUtils.toString(new FileInputStream(getClass().getResource("resources/preferences.json").getPath()), StandardCharsets.UTF_8);
// We do not know the mockito plugin names ahead of time so substitute them in now
final StringSubstitutor substitutor = new StringSubstitutor(Map.of("INSERT_PLUGIN1_NAME", plugin1.getClass().getSimpleName(), "INSERT_PLUGIN2_NAME", plugin2.getClass().getSimpleName()));
final List<DataAccessUserPreferences> preferences = objectMapper.readValue(substitutor.replace(json), new TypeReference<List<DataAccessUserPreferences>>() {
});
jsonIOStaticMock.when(() -> JsonIO.loadJsonPreferences(eq(Optional.of("DataAccessView")), any(TypeReference.class))).thenReturn(preferences);
DataAccessParametersIoProvider.loadParameters(dataAccessPane);
}
verify(dataAccessTabPane, times(2)).newTab(anyString());
// tab1 global parameters
verify(pluginParameter1).setStringValue("tab1_param1_value");
verify(pluginParameter3).setStringValue(null);
// tab1 plugin parameters - only plugin1 because plugin2 is disabled
verify(dataSourceTitledPane1).setParameterValues(Map.of(plugin1.getClass().getSimpleName() + "." + "__is_enabled__", "true", plugin1.getClass().getSimpleName() + "." + "param1", "plugin1_param1_value"));
// tab2 global parameters
verify(pluginParameter4).setStringValue("tab2_param4_value");
// tab2 plugin parameters
verify(dataSourceTitledPane2, times(0)).setParameterValues(anyMap());
}
use of au.gov.asd.tac.constellation.views.dataaccess.components.DataAccessTabPane in project constellation by constellation-app.
the class DataAccessPaneNGTest method update_with_graph_no_tab.
@Test
public void update_with_graph_no_tab() {
final DataAccessTabPane dataAccessTabPane = mock(DataAccessTabPane.class);
final Graph graph = mock(Graph.class);
when(dataAccessPane.getDataAccessTabPane()).thenReturn(dataAccessTabPane);
when(dataAccessTabPane.getCurrentTab()).thenReturn(null);
when(graph.getId()).thenReturn("graphId");
dataAccessPane.update(graph);
verify(dataAccessPane, never()).update(anyString());
}
use of au.gov.asd.tac.constellation.views.dataaccess.components.DataAccessTabPane in project constellation by constellation-app.
the class DataAccessPaneNGTest method update_pass_null_graph.
@Test
public void update_pass_null_graph() {
final DataAccessTabPane dataAccessTabPane = mock(DataAccessTabPane.class);
final Tab currentTab = mock(Tab.class);
final QueryPhasePane currentQueryPhasePane = mock(QueryPhasePane.class);
final DataSourceTitledPane dataSourceTitledPane = mock(DataSourceTitledPane.class);
final Plugin plugin = mock(Plugin.class);
final PluginParameters pluginParameters = mock(PluginParameters.class);
when(dataAccessPane.getDataAccessTabPane()).thenReturn(dataAccessTabPane);
when(dataAccessTabPane.getCurrentTab()).thenReturn(currentTab);
when(dataAccessTabPane.getQueryPhasePaneOfCurrentTab()).thenReturn(currentQueryPhasePane);
when(currentQueryPhasePane.getDataAccessPanes()).thenReturn(List.of(dataSourceTitledPane));
when(dataSourceTitledPane.getPlugin()).thenReturn(plugin);
when(dataSourceTitledPane.getParameters()).thenReturn(pluginParameters);
dataAccessPane.update((Graph) null);
verify(plugin).updateParameters(null, pluginParameters);
verify(dataAccessPane).update((String) null);
}
Aggregations