Package de.panikco.pmdb.web.validation

Source Code of de.panikco.pmdb.web.validation.MediaValidatorTest

package de.panikco.pmdb.web.validation;

import org.apache.commons.lang.StringUtils;
import org.junit.Before;
import org.junit.Test;
import org.springframework.validation.BindException;
import org.springframework.validation.Errors;

import de.panikco.pmdb.model.Media;
import static org.hamcrest.CoreMatchers.is;

import static org.junit.Assert.assertThat;
import static org.junit.Assert.assertTrue;

public class MediaValidatorTest {
 
  private MediaValidator validator;
  private Media media;
  private Errors errors;

  @Before
  public void setup() {
    validator = new MediaValidator();
    media = new Media();
    media.setTitle("A valid title");
    media.setComment("A valid comment.");
   
    errors = new BindException(media, "media");
  }

  @Test
  public void shouldSupportMediaClass() {
    assertTrue(validator.supports(Media.class));
  }

  @Test
  public void shouldFailOnEmptyTitle() {
   
    media.setTitle(StringUtils.EMPTY);
   
    validator.validate(media, errors);
   
    assertThat(errors.getErrorCount(), is(1));
    assertThat(errors.hasFieldErrors(MediaValidator.FIELD_TITLE), is(true));
    assertThat((errors.getFieldError(MediaValidator.FIELD_TITLE)).getCode(), is(MediaValidator.ERROR_EMPTY));
   
  }

  @Test
  public void shouldFailOnNullTitle() {
   
    media.setTitle(null);
   
    validator.validate(media, errors);
   
    assertThat(errors.getErrorCount(), is(1));
    assertThat(errors.hasFieldErrors(MediaValidator.FIELD_TITLE), is(true));
    assertThat((errors.getFieldError(MediaValidator.FIELD_TITLE)).getCode(), is(MediaValidator.ERROR_EMPTY));
   
  }

  @Test
  public void shouldFailOnTitleTooLong() {
   
    media.setTitle(StringUtils.repeat("x", MediaValidator.TITLE_MAX_LENGTH + 1));
   
    validator.validate(media, errors);
   
    assertThat(errors.getErrorCount(), is(1));
    assertThat(errors.hasFieldErrors(MediaValidator.FIELD_TITLE), is(true));
    assertThat((errors.getFieldError(MediaValidator.FIELD_TITLE)).getCode(), is(MediaValidator.ERROR_TOO_LONG));
   
  }

  @Test
  public void shouldFailOnAllWhitespaceTitle() {
   
    media.setTitle(StringUtils.repeat(StringUtils.EMPTY, MediaValidator.TITLE_MAX_LENGTH));
   
    validator.validate(media, errors);
   
    assertThat(errors.getErrorCount(), is(1));
    assertThat(errors.hasFieldErrors(MediaValidator.FIELD_TITLE), is(true));
    assertThat((errors.getFieldError(MediaValidator.FIELD_TITLE)).getCode(), is(MediaValidator.ERROR_EMPTY));
  }

  @Test
  public void shouldNotFailOnValidTitle() {
   
    validator.validate(media, errors);
   
    assertThat(errors.getErrorCount(), is(0));
  }

}
TOP

Related Classes of de.panikco.pmdb.web.validation.MediaValidatorTest

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.