package org.openstack.atlas.api.mgmt.validation.validators;
import org.openstack.atlas.docs.loadbalancers.api.management.v1.Cluster;
import org.openstack.atlas.docs.loadbalancers.api.management.v1.ClusterStatus;
import org.openstack.atlas.docs.loadbalancers.api.management.v1.Clusters;
import org.openstack.atlas.docs.loadbalancers.api.management.v1.DataCenter;
import org.openstack.atlas.api.mgmt.validation.validators.ClusterValidator;
import org.openstack.atlas.api.mgmt.validation.validators.ClustersValidator;
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 ClustersValidatorTest {
public static class WhenValidatingClusters {
private ClustersValidator clustersValidator;
private ClusterValidator clusterValidator;
private Clusters clusters;
private Cluster cluster;
@Before
public void setUpValidVipsObject() {
clustersValidator = new ClustersValidator();
clusters = new Clusters();
cluster = new Cluster();
cluster.setDataCenter(DataCenter.DFW);
cluster.setDescription("aDesc");
cluster.setName("aName");
cluster.setUsername("username");
cluster.setPassword("password");
cluster.setStatus(ClusterStatus.ACTIVE);
clusters.getClusters().add(cluster);
}
@Test
public void shouldAcceptValidClustersObject() {
ValidatorResult result = clustersValidator.validate(clusters, HttpRequestType.POST);
assertTrue(resultMessage(result, HttpRequestType.POST), result.passedValidation());
}
@Test
public void shouldRejectNullClustersObject() {
ValidatorResult result = clustersValidator.validate(null, HttpRequestType.POST);
assertFalse(resultMessage(result, HttpRequestType.POST), result.passedValidation());
}
@Test
public void shouldRejectClustersObjectWithNoCluster() {
ValidatorResult result = clustersValidator.validate(new Clusters(), HttpRequestType.POST);
assertFalse(resultMessage(result, HttpRequestType.POST), result.passedValidation());
}
}
}