/*
* JBoss, Home of Professional Open Source.
*
* See the LEGAL.txt file distributed with this work for information regarding copyright ownership and licensing.
*
* See the AUTHORS.txt file distributed with this work for a full listing of individual contributors.
*/
package org.teiid.designer.extension.definition;
import static org.junit.Assert.assertThat;
import static org.hamcrest.core.Is.is;
import org.junit.Test;
/**
* A test class for {@link MultiValidationStatus}.
*/
@SuppressWarnings( {"javadoc", "nls"} )
public class MultiValidationStatusTest {
private static final MedStatus ERROR = ValidationStatus.createErrorMessage("error");
private static final MedStatus INFO = ValidationStatus.createInfoMessage("info");
private static final MedStatus OK = ValidationStatus.createOkMessage("ok");
private static final MedStatus WARNING = ValidationStatus.createWarningMessage("warning");
@Test
public void shouldAddMultiStatus() {
final MultiValidationStatus multi = MultiValidationStatus.create(ERROR);
multi.add(WARNING);
final MultiValidationStatus status = MultiValidationStatus.create(WARNING);
status.add(INFO);
status.add(multi);
assertThat(status.isError(), is(true));
assertThat(status.getChildren().size(), is(4));
assertThat(status.getMessage(), is(ERROR.getMessage()));
}
@Test
public void shouldCreatErrorStatus() {
final MultiValidationStatus status = MultiValidationStatus.create(ERROR);
assertThat(status.isError(), is(true));
assertThat(status.getChildren().size(), is(1));
assertThat(status.isMulti(), is(true));
}
@Test
public void shouldCreatInfoStatus() {
final MultiValidationStatus status = MultiValidationStatus.create(INFO);
assertThat(status.isInfo(), is(true));
assertThat(status.getChildren().size(), is(1));
assertThat(status.isMulti(), is(true));
}
@Test
public void shouldCreatOkStatus() {
final MultiValidationStatus status = MultiValidationStatus.create(OK);
assertThat(status.isOk(), is(true));
assertThat(status.getChildren().isEmpty(), is(true));
assertThat(status.isMulti(), is(true));
}
@Test
public void shouldCreatWarningStatus() {
final MultiValidationStatus status = MultiValidationStatus.create(WARNING);
assertThat(status.isWarning(), is(true));
assertThat(status.getChildren().size(), is(1));
assertThat(status.isMulti(), is(true));
}
@Test( expected = IllegalArgumentException.class )
public void shouldNotAllowNullAtConstruction() {
MultiValidationStatus.create(null);
}
@Test
public void shouldNotUpdateStatusFromErrorToInfo() {
final MultiValidationStatus status = MultiValidationStatus.create(ERROR);
status.add(INFO);
assertThat(status.isError(), is(true));
assertThat(status.getChildren().size(), is(2));
assertThat(status.getMessage(), is(ERROR.getMessage()));
}
@Test
public void shouldNotUpdateStatusFromErrorToOk() {
final MultiValidationStatus status = MultiValidationStatus.create(ERROR);
status.add(OK);
assertThat(status.isError(), is(true));
assertThat(status.getChildren().size(), is(1));
assertThat(status.getMessage(), is(ERROR.getMessage()));
}
@Test
public void shouldNotUpdateStatusFromInfoToOk() {
final MultiValidationStatus status = MultiValidationStatus.create(INFO);
status.add(OK);
assertThat(status.isInfo(), is(true));
assertThat(status.getChildren().size(), is(1));
assertThat(status.getMessage(), is(INFO.getMessage()));
}
@Test
public void shouldNotUpdateStatusFromWarningToInfo() {
final MultiValidationStatus status = MultiValidationStatus.create(WARNING);
status.add(INFO);
assertThat(status.isWarning(), is(true));
assertThat(status.getChildren().size(), is(2));
assertThat(status.getMessage(), is(WARNING.getMessage()));
}
@Test
public void shouldNotUpdateStatusFromWarningToOk() {
final MultiValidationStatus status = MultiValidationStatus.create(WARNING);
status.add(OK);
assertThat(status.isWarning(), is(true));
assertThat(status.getChildren().size(), is(1));
assertThat(status.getMessage(), is(WARNING.getMessage()));
}
@Test
public void shouldUpdateStatusFromErrorToWarning() {
final MultiValidationStatus status = MultiValidationStatus.create(ERROR);
status.add(WARNING);
assertThat(status.isError(), is(true));
assertThat(status.getChildren().size(), is(2));
assertThat(status.getMessage(), is(ERROR.getMessage()));
}
@Test
public void shouldUpdateStatusFromInfoToError() {
final MultiValidationStatus status = MultiValidationStatus.create(INFO);
status.add(ERROR);
assertThat(status.isError(), is(true));
assertThat(status.getChildren().size(), is(2));
assertThat(status.getMessage(), is(ERROR.getMessage()));
}
@Test
public void shouldUpdateStatusFromInfoToWarning() {
final MultiValidationStatus status = MultiValidationStatus.create(INFO);
status.add(WARNING);
assertThat(status.isWarning(), is(true));
assertThat(status.getChildren().size(), is(2));
assertThat(status.getMessage(), is(WARNING.getMessage()));
}
@Test
public void shouldUpdateStatusFromOkToError() {
final MultiValidationStatus status = MultiValidationStatus.create(OK);
status.add(ERROR);
assertThat(status.isError(), is(true));
assertThat(status.getChildren().size(), is(1));
assertThat(status.getMessage(), is(ERROR.getMessage()));
}
@Test
public void shouldUpdateStatusFromOkToInfo() {
final MultiValidationStatus status = MultiValidationStatus.create(OK);
status.add(INFO);
assertThat(status.isInfo(), is(true));
assertThat(status.getChildren().size(), is(1));
assertThat(status.getMessage(), is(INFO.getMessage()));
}
@Test
public void shouldUpdateStatusFromOkToWarning() {
final MultiValidationStatus status = MultiValidationStatus.create(OK);
status.add(WARNING);
assertThat(status.isWarning(), is(true));
assertThat(status.getChildren().size(), is(1));
assertThat(status.getMessage(), is(WARNING.getMessage()));
}
@Test
public void shouldUpdateStatusFromWarningToError() {
final MultiValidationStatus status = MultiValidationStatus.create(WARNING);
status.add(ERROR);
assertThat(status.isError(), is(true));
assertThat(status.getChildren().size(), is(2));
assertThat(status.getMessage(), is(ERROR.getMessage()));
}
}