package edu.asu.spring.quadriga.validator; import java.util.UUID; import org.junit.Before; import org.junit.Test; import org.mockito.InjectMocks; import org.mockito.Mock; import org.mockito.Mockito; 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.enums.ETextAccessibility; import edu.asu.spring.quadriga.domain.impl.workspace.TextFile; import edu.asu.spring.quadriga.domain.workspace.ITextFile; import edu.asu.spring.quadriga.service.textfile.ITextFileManager; import edu.asu.spring.quadriga.service.textfile.impl.TextFileManager; import edu.asu.spring.quadriga.validator.AddTextValidator; import junit.framework.Assert; /** * @author Nischal Samji * * Unit Test for Validator for storing text file objects. * */ public class TextFileValidatorTest { @InjectMocks private AddTextValidator txtValidator; private ITextFile properTxtFile; private ITextFile improperTxtFile; private ITextFile emptyTxtFile; @Before public void init() { MockitoAnnotations.initMocks(this); properTxtFile = new TextFile(); properTxtFile.setFileContent("Dummy File Content. This is Dummy"); properTxtFile.setFileName("testfile.txt"); properTxtFile.setProjectId(UUID.randomUUID().toString()); properTxtFile.setRefId(UUID.randomUUID().toString()); properTxtFile.setWorkspaceId(UUID.randomUUID().toString()); properTxtFile.setAccessibility(ETextAccessibility.PUBLIC); improperTxtFile = new TextFile(); improperTxtFile.setFileContent(""); improperTxtFile.setFileName(".testtext"); improperTxtFile.setProjectId(UUID.randomUUID().toString()); improperTxtFile.setRefId(""); improperTxtFile.setWorkspaceId(UUID.randomUUID().toString()); emptyTxtFile = new TextFile(); emptyTxtFile.setFileContent(""); emptyTxtFile.setFileName(""); emptyTxtFile.setWorkspaceId(""); emptyTxtFile.setProjectId(""); emptyTxtFile.setRefId(""); } @Test public void testProperTextFile() { Errors errors = new BindException(properTxtFile, "pTxtFile"); ValidationUtils.invokeValidator(txtValidator, properTxtFile, errors); Assert.assertFalse(errors.hasErrors()); } @Test public void testImproperTextFile() { Errors errors = new BindException(improperTxtFile, "ipTxtFile"); ValidationUtils.invokeValidator(txtValidator, improperTxtFile, errors); Assert.assertTrue(errors.hasErrors()); Assert.assertEquals(errors.getFieldError("fileName").getCode(), "filename.proper"); Assert.assertEquals(errors.getFieldError("fileContent").getCode(), "filecontent.required"); Assert.assertEquals(errors.getFieldError("refId").getCode(), "reference.required"); } @Test public void testEmptyTextFile() { Errors errors = new BindException(emptyTxtFile, "eTxtFile"); ValidationUtils.invokeValidator(txtValidator, emptyTxtFile, errors); Assert.assertTrue(errors.hasErrors()); Assert.assertEquals(errors.getFieldError("fileName").getCode(), "filename.required"); Assert.assertEquals(errors.getFieldError("fileContent").getCode(), "filecontent.required"); Assert.assertEquals(errors.getFieldError("refId").getCode(), "reference.required"); } }