001    package com.khubla.pragmatach.dbtestsuite;
002    
003    import java.util.List;
004    
005    import org.testng.Assert;
006    
007    import com.khubla.pragmatach.dbtestsuite.pojo.ExamplePOJO;
008    import com.khubla.pragmatach.framework.dao.DAO;
009    
010    /**
011     * @author tome
012     */
013    public class BasicTests {
014       public static void testBasicFunctionality(DAO<ExamplePOJO, Long> dao) {
015          try {
016             /*
017              * empty table
018              */
019             Assert.assertTrue(dao.count() == 0);
020             /*
021              * create and save an object
022              */
023             final ExamplePOJO examplePOJO1 = new ExamplePOJO();
024             examplePOJO1.setName("abc123");
025             examplePOJO1.setDoubleNumber(12.2);
026             examplePOJO1.setIntNumber(34);
027             dao.save(examplePOJO1);
028             /*
029              * 1 row
030              */
031             Assert.assertTrue(dao.count() == 1);
032             /*
033              * check that the id was generated
034              */
035             Assert.assertNotNull(examplePOJO1.getId());
036             /*
037              * get the created object
038              */
039             ExamplePOJO retrievedPojo = dao.findById(examplePOJO1.getId());
040             Assert.assertNotNull(retrievedPojo);
041             Assert.assertNotNull(retrievedPojo.getId());
042             Assert.assertTrue(retrievedPojo.getId().longValue() == examplePOJO1.getId().longValue());
043             Assert.assertTrue(retrievedPojo.getName().compareTo(examplePOJO1.getName()) == 0);
044             Assert.assertTrue(retrievedPojo.getDoubleNumber() == examplePOJO1.getDoubleNumber());
045             Assert.assertTrue(retrievedPojo.getIntNumber() == examplePOJO1.getIntNumber());
046             /*
047              * there is 1 object in the DB table
048              */
049             List<ExamplePOJO> allObjects = dao.getAll();
050             Assert.assertNotNull(allObjects);
051             Assert.assertTrue(allObjects.size() == 1, "found '" + allObjects.size() + "' objects.");
052             /*
053              * cant fetch object with wrong id
054              */
055             final ExamplePOJO noPojo = dao.findById(new Long(909090));
056             Assert.assertNull(noPojo);
057             /*
058              * delete it
059              */
060             dao.delete(examplePOJO1);
061             /*
062              * make sure it's gone
063              */
064             retrievedPojo = dao.findById(examplePOJO1.getId());
065             Assert.assertNull(retrievedPojo);
066             /*
067              * count is zero
068              */
069             Assert.assertTrue(dao.count() == 0);
070             /*
071              * no objects
072              */
073             allObjects = dao.getAll();
074             Assert.assertNotNull(allObjects);
075             Assert.assertTrue(allObjects.size() == 0);
076          } catch (final Exception e) {
077             e.printStackTrace();
078             Assert.fail();
079          }
080       }
081    }