package edu.asu.spring.quadriga.validator; import org.junit.Before; import org.junit.Test; import org.mockito.InjectMocks; import org.mockito.MockitoAnnotations; import org.springframework.validation.BindException; import org.springframework.validation.Errors; import org.springframework.validation.ValidationUtils; import edu.asu.spring.quadriga.domain.settings.IAboutText; import edu.asu.spring.quadriga.domain.settings.impl.AboutText; import junit.framework.Assert; /** * @author Nischal Samji * * Unit Test for Validator for storing About Text Objects. * */ public class AboutTextValidatorTest { @InjectMocks private AboutTextValidator abtTxtValidator; private IAboutText properabtText; private IAboutText improperabtText; private IAboutText emptyabtText; @Before public void init() { MockitoAnnotations.initMocks(this); properabtText = new AboutText(); properabtText.setId("TESTID"); properabtText.setProjectId("PROJtest"); properabtText.setDescription("<p>hello</p>"); properabtText.setTitle("TestTitle"); improperabtText = new AboutText(); improperabtText.setId("TESTID"); improperabtText.setProjectId("PROJtest"); improperabtText.setDescription("<script>hello</script>"); improperabtText.setTitle("<script>hello</script>"); emptyabtText = new AboutText(); emptyabtText.setId("TESTID"); emptyabtText.setProjectId("PROJtest"); emptyabtText.setDescription(""); emptyabtText.setTitle(""); } @Test public void test_validate_properAboutText() { Errors errors = new BindException(properabtText, "properabtText"); ValidationUtils.invokeValidator(abtTxtValidator, properabtText, errors); Assert.assertFalse(errors.hasErrors()); } @Test public void test_validate_improperAboutText() { Errors errors = new BindException(improperabtText, "improperabtText"); ValidationUtils.invokeValidator(abtTxtValidator, improperabtText, errors); Assert.assertTrue(errors.hasErrors()); Assert.assertEquals(errors.getFieldError("description").getCode(), "about_description.proper"); Assert.assertEquals(errors.getFieldError("title").getCode(), "about_title.proper"); } @Test public void test_validate_emptyAboutText() { Errors errors = new BindException(emptyabtText, "emptyabtText"); ValidationUtils.invokeValidator(abtTxtValidator, emptyabtText, errors); Assert.assertTrue(errors.hasErrors()); Assert.assertEquals(errors.getFieldError("title").getCode(), "about_title.required"); Assert.assertEquals(errors.getFieldError("description").getCode(), "about_description.required"); } }