package org.openstack.atlas.api.mgmt.validation.validators;
import org.openstack.atlas.docs.loadbalancers.api.management.v1.LoadBalancerLimitGroup;
import org.openstack.atlas.docs.loadbalancers.api.management.v1.LoadBalancerLimitGroups;
import org.openstack.atlas.api.mgmt.validation.validators.LoadBalancerLimitGroupValidator;
import org.openstack.atlas.api.mgmt.validation.validators.LoadBalancerLimitGroupsValidator;
import org.openstack.atlas.api.validation.context.HttpRequestType;
import org.openstack.atlas.api.validation.results.ValidatorResult;
import org.junit.Before;
import org.junit.Test;
import org.junit.experimental.runners.Enclosed;
import org.junit.runner.RunWith;
import static org.openstack.atlas.api.helpers.ResultMessage.resultMessage;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
@RunWith(Enclosed.class)
public class LoadBalancerGroupValidatorTest {
public static class WhenValidatingPost {
private LoadBalancerLimitGroupsValidator lbLimitGroupsValidator;
private LoadBalancerLimitGroupValidator lbLimitGroupValidator;
private LoadBalancerLimitGroups lbLimitGroups;
private LoadBalancerLimitGroup lbLimitGroup;
@Before
public void setUpValidVipsObject() {
lbLimitGroupsValidator = new LoadBalancerLimitGroupsValidator();
lbLimitGroupValidator = new LoadBalancerLimitGroupValidator();
lbLimitGroups = new LoadBalancerLimitGroups();
lbLimitGroup = new LoadBalancerLimitGroup();
lbLimitGroup.setLimit(100);
lbLimitGroup.setIsDefault(true);
lbLimitGroup.setName("aName");
lbLimitGroups.getLoadBalancerLimitGroups().add(lbLimitGroup);
}
@Test
public void shouldAcceptValidLbLimitObject() {
ValidatorResult result = lbLimitGroupsValidator.validate(lbLimitGroups, HttpRequestType.POST);
assertTrue(resultMessage(result, HttpRequestType.POST), result.passedValidation());
}
@Test
public void shouldRejectNullLbLimitObject() {
ValidatorResult result = lbLimitGroupsValidator.validate(null, HttpRequestType.POST);
assertFalse(resultMessage(result, HttpRequestType.POST), result.passedValidation());
}
@Test
public void shouldRejectNullLbLimitName() {
lbLimitGroup.setName(null);
ValidatorResult result = lbLimitGroupValidator.validate(lbLimitGroup, HttpRequestType.POST);
assertFalse(resultMessage(result, HttpRequestType.POST), result.passedValidation());
}
@Test
public void shouldRejectNullValidLbLimitDefault() {
lbLimitGroup.setIsDefault(null);
ValidatorResult result = lbLimitGroupValidator.validate(lbLimitGroup, HttpRequestType.POST);
assertFalse(resultMessage(result, HttpRequestType.POST), result.passedValidation());
}
@Test
public void shouldRejectNullValidLbLimitlimit() {
lbLimitGroup.setLimit(null);
ValidatorResult result = lbLimitGroupValidator.validate(lbLimitGroup, HttpRequestType.POST);
assertFalse(resultMessage(result, HttpRequestType.POST), result.passedValidation());
}
@Test
public void shouldRejectLbLimitlimitID() {
lbLimitGroup.setId(1);
ValidatorResult result = lbLimitGroupValidator.validate(lbLimitGroup, HttpRequestType.PUT);
assertFalse(resultMessage(result, HttpRequestType.PUT), result.passedValidation());
}
public static class WhenValidatingPut {
private LoadBalancerLimitGroupsValidator lbLimitGroupsValidator;
private LoadBalancerLimitGroupValidator lbLimitGroupValidator;
private LoadBalancerLimitGroups lbLimitGroups;
private LoadBalancerLimitGroup lbLimitGroup;
@Before
public void setUpValidVipsObject() {
lbLimitGroupsValidator = new LoadBalancerLimitGroupsValidator();
lbLimitGroupValidator = new LoadBalancerLimitGroupValidator();
lbLimitGroups = new LoadBalancerLimitGroups();
lbLimitGroup = new LoadBalancerLimitGroup();
lbLimitGroup.setLimit(100);
lbLimitGroup.setIsDefault(true);
lbLimitGroup.setName("aName");
lbLimitGroups.getLoadBalancerLimitGroups().add(lbLimitGroup);
}
@Test
public void shouldAcceptValidLbLimitObjectWhenFieldsAreMissing() {
LoadBalancerLimitGroup lblg = new LoadBalancerLimitGroup();
lblg.setName("aName");
ValidatorResult result = lbLimitGroupsValidator.validate(lbLimitGroups, HttpRequestType.PUT);
assertTrue(resultMessage(result, HttpRequestType.PUT), result.passedValidation());
}
@Test
public void shouldRejectNullLbLimitName() {
lbLimitGroup.setName(null);
ValidatorResult result = lbLimitGroupValidator.validate(lbLimitGroup, HttpRequestType.PUT);
assertFalse(resultMessage(result, HttpRequestType.PUT), result.passedValidation());
}
@Test
public void shouldRejectNullValidLbLimitDefault() {
lbLimitGroup.setIsDefault(null);
ValidatorResult result = lbLimitGroupValidator.validate(lbLimitGroup, HttpRequestType.PUT);
assertFalse(resultMessage(result, HttpRequestType.PUT), result.passedValidation());
}
@Test
public void shouldRejectLbLimitlimitID() {
lbLimitGroup.setId(1);
ValidatorResult result = lbLimitGroupValidator.validate(lbLimitGroup, HttpRequestType.PUT);
assertFalse(resultMessage(result, HttpRequestType.PUT), result.passedValidation());
}
}
}
}