package validators; import models.ProductModel; import org.junit.Test; import util.InMemoryDbTest; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; public class ProductValidatorTest extends InMemoryDbTest { @Test public void testNormal(){ ProductValidator validator = new ProductValidator(); ProductModel product = new ProductModel(); product.id = 0L; product.name = "ABC"; product.price = 1000; ValidationResult result = validator.validateModel(product); assertTrue(result.ok); assertEquals("validationErrors.size",0,result.validationErrors.size()); } @Test public void testNoName (){ ProductValidator validator = new ProductValidator(); ProductModel model = new ProductModel(); model.id = 0L; model.price = 100; model.name = ""; ValidationResult result = validator.validateModel(model); assertTrue(result.ok==false); assertEquals("validationErrors.size",1,result.validationErrors.size()); assertEquals("validationErrors.name", ValidationErrorType.PRODUCT_NAME_MISSING,result.validationErrors.get(0).errorType); } public void testNoSKU (){ ProductValidator validator = new ProductValidator(); ProductModel model = new ProductModel(); model.id = 0L; model.price = 100; model.name = ""; ValidationResult result = validator.validateModel(model); assertTrue(result.ok==false); assertEquals("validationErrors.size",1,result.validationErrors.size()); assertEquals("validationErrors.sku", ValidationErrorType.PRODUCT_SKU_MISSING,result.validationErrors.get(0).errorType); } @Test public void testNoPrice (){ ProductValidator validator = new ProductValidator(); ProductModel model = new ProductModel(); model.id = 0L; model.price = null; model.name = "X"; ValidationResult result = validator.validateModel(model); assertTrue(result.ok==false); assertEquals("validationErrors.size",1,result.validationErrors.size()); assertEquals("validationErrors.price", ValidationErrorType.PRODUCT_PRICE_MISSING,result.validationErrors.get(0).errorType); } @Test public void testNegativePrice (){ ProductValidator validator = new ProductValidator(); ProductModel model = new ProductModel(); model.id = 0L; model.price = -100; model.name = "X"; ValidationResult result = validator.validateModel(model); assertTrue(result.ok==false); assertEquals("validationErrors.size",1,result.validationErrors.size()); assertEquals("validationErrors.price", ValidationErrorType.PRODUCT_PRICE_NEGATIVE,result.validationErrors.get(0).errorType); } }