/* * Copyright 2016 Red Hat, Inc. and/or its affiliates. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.uberfire.ext.widgets.table.client; import com.google.gwt.cell.client.CheckboxCell; import com.google.gwt.cell.client.TextCell; import com.google.gwt.user.cellview.client.Column; import com.google.gwt.user.cellview.client.Header; import com.google.gwt.user.cellview.client.TextHeader; import com.google.gwt.user.client.ui.VerticalPanel; import com.google.gwtmockito.GwtMock; import com.google.gwtmockito.GwtMockitoTestRunner; import org.gwtbootstrap3.client.ui.gwt.Widget; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.InjectMocks; import org.mockito.Mock; import static org.junit.Assert.*; import static org.mockito.Mockito.*; @RunWith(GwtMockitoTestRunner.class) public class UberfireColumnPickerTest { @Mock protected org.gwtbootstrap3.client.ui.gwt.DataGrid dataGrid; @GwtMock VerticalPanel popupContent; @InjectMocks private UberfireColumnPicker<String> uberfireColumnPicker; private ColumnMeta columnMetaTextCell1; private ColumnMeta columnMetaTextCell2; private ColumnMeta columnMetaCheckBoxCell; @Before public void setup() { columnMetaTextCell1 = createColumnTextCell("val1", "col1"); columnMetaTextCell2 = createColumnTextCell("val2", "col2"); columnMetaCheckBoxCell = createColumnCheckboxCell("columnMetaCheckBoxCell"); uberfireColumnPicker.addColumn(columnMetaCheckBoxCell); uberfireColumnPicker.addColumn(columnMetaTextCell1); uberfireColumnPicker.addColumn(columnMetaTextCell2); } @Test public void testAddThisColumnToPopup() { assertTrue(uberfireColumnPicker.addThisColumnToPopup(columnMetaTextCell1)); assertFalse(uberfireColumnPicker.addThisColumnToPopup(columnMetaCheckBoxCell)); } @Test public void testOnlyAddHeaderStringColumnPickerPopup() { uberfireColumnPicker.showColumnPickerPopup(0, 0); verify(popupContent, times(2)).add(any(Widget.class)); } private ColumnMeta createColumnTextCell(final String value, String dataStoreName) { Column<String, String> testColumn = new Column<String, String>(new TextCell()) { @Override public String getValue(String object) { return value; } }; testColumn.setSortable(true); testColumn.setDataStoreName(dataStoreName); final Header<String> header = new TextHeader(value); ColumnMeta<String> columnMeta = new ColumnMeta(testColumn, dataStoreName); columnMeta.setHeader(header); return columnMeta; } private ColumnMeta createColumnCheckboxCell(String dataStoreName) { CheckboxCell checkboxCell = new CheckboxCell(true, false); Column<String, Boolean> checkColumn = new Column<String, Boolean>(checkboxCell) { @Override public Boolean getValue(String object) { return true; } }; Header<Boolean> selectPageHeader = new Header<Boolean>(checkboxCell) { @Override public Boolean getValue() { return true; } }; checkColumn.setSortable(false); checkColumn.setDataStoreName(dataStoreName); ColumnMeta<String> checkColMeta = new ColumnMeta<String>(checkColumn, ""); checkColMeta.setHeader(selectPageHeader); return checkColMeta; } }