package org.ovirt.engine.ui.uicommonweb.validation;
import static org.hamcrest.core.Is.is;
import static org.hamcrest.core.IsEqual.equalTo;
import static org.junit.Assert.assertThat;
import static org.mockito.Mockito.spy;
import org.junit.Test;
public class PoolNameLengthValidationTest {
@Test
public void validate_nameItselfTooLong() {
assertValidationWorks(200, 1, false);
}
@Test
public void validate_farNotOk() {
assertValidationWorks(63, 500, false);
}
@Test
public void validate_farOk() {
assertValidationWorks(5, 2, true);
}
@Test
public void validate_okCorner() {
assertValidationWorks(12, 10, true);
}
@Test
public void validate_notOkCorner() {
assertValidationWorks(62, 10, false);
}
private void assertValidationWorks(int nameLength, int numOfVms, boolean expected) {
// enough to test for windows, the logic is the same
PoolNameLengthValidation object = new PoolNameLengthValidation(nameOfLength(nameLength), numOfVms, 3);
PoolNameLengthValidation spy = spy(object);
assertThat(spy.validate(null).getSuccess(), is(equalTo(expected)));
}
private String nameOfLength(int nameLength) {
StringBuilder sb = new StringBuilder();
for (int i = 0; i < nameLength; i++) {
sb.append("x"); //$NON-NLS-1$
}
return sb.toString();
}
}