/*******************************************************************************
* Copyright (c) 2015 Red Hat.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Red Hat - Initial Contribution
*******************************************************************************/
package org.eclipse.linuxtools.internal.docker.ui.testutils.swt;
import static org.hamcrest.Matchers.notNullValue;
import org.assertj.core.api.Assertions;
import org.eclipse.swt.graphics.Image;
import org.eclipse.swtbot.swt.finder.widgets.SWTBotTreeItem;
/**
*
*/
public class SWTBotTreeItemAssertions extends AbstractSWTBotAssertions<SWTBotTreeItemAssertions, SWTBotTreeItem> {
protected SWTBotTreeItemAssertions(final SWTBotTreeItem actual) {
super(actual, SWTBotTreeItemAssertions.class);
}
public static SWTBotTreeItemAssertions assertThat(final SWTBotTreeItem containerPortsTreeItem) {
return new SWTBotTreeItemAssertions(containerPortsTreeItem);
}
public SWTBotTreeItemAssertions isExpanded() {
notNullValue();
if(!actual.isExpanded()) {
failWithMessage("Expected tree item %s to be expanded but it was not.", actual.getText());
}
return this;
}
/**
* Checks the number of items and also verifies that each item has an images and a text
* @param expectedCount
* @return
*/
public SWTBotTreeItemAssertions hasChildItems(final int expectedCount) {
notNullValue();
if(actual.getItems().length != expectedCount) {
failWithMessage("Expected tree item %s to be have %s items but it had %s.", actual.getText(), expectedCount, actual.getItems().length);
}
for (SWTBotTreeItem swtBotTreeItem : actual.getItems()) {
final String treeItemText = SWTUtils.syncExec(() -> swtBotTreeItem.getText());
final Image treeItemWidgetImage = SWTUtils.syncExec(() -> swtBotTreeItem.widget.getImage());
Assertions.assertThat(treeItemText).isNotNull();
Assertions.assertThat(treeItemWidgetImage).isNotNull();
}
return this;
}
public SWTBotTreeItemAssertions hasText(final String expectedText) {
notNullValue();
if(!actual.getText().equals(expectedText)) {
failWithMessage("Expected node to have text %s but it was %s", expectedText, actual.getText());
}
return this;
}
}