package org.openstack.atlas.api.mgmt.validation.validators;
import org.openstack.atlas.docs.loadbalancers.api.management.v1.Ticket;
import org.openstack.atlas.api.mgmt.validation.validators.TicketValidator;
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.openstack.atlas.api.validation.context.HttpRequestType.POST;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
@RunWith(Enclosed.class)
public class TicketValidatorTest {
public static class WhenValidatingPost {
private TicketValidator validator;
private Ticket ticket;
@Before
public void standUp() {
validator = new TicketValidator();
ticket = new Ticket();
ticket.setTicketId("1234");
ticket.setComment("My first ticket! Yuppee!");
}
@Test
public void shouldAcceptValidTicket() {
ValidatorResult result = validator.validate(ticket, POST);
assertTrue(resultMessage(result, POST), result.passedValidation());
}
@Test
public void shouldRejectWhenMissingTicketId() {
ticket.setTicketId(null);
ValidatorResult result = validator.validate(ticket, POST);
assertFalse(resultMessage(result, POST), result.passedValidation());
}
@Test
public void shouldRejectWhenTicketIdIsEmpty() {
ticket.setTicketId("");
ValidatorResult result = validator.validate(ticket, POST);
assertFalse(resultMessage(result, POST), result.passedValidation());
}
@Test
public void shouldRejectWhenMissingComment() {
ticket.setComment(null);
ValidatorResult result = validator.validate(ticket, POST);
assertFalse(resultMessage(result, POST), result.passedValidation());
}
@Test
public void shouldRejectWhenCommentIsEmpty() {
ticket.setComment("");
ValidatorResult result = validator.validate(ticket, POST);
assertFalse(resultMessage(result, POST), result.passedValidation());
}
@Test
public void shouldRejectWhenIdIsSet() {
ticket.setId(1234);
ValidatorResult result = validator.validate(ticket, POST);
assertFalse(resultMessage(result, POST), result.passedValidation());
}
}
}