/src/test/java/com/google/ie/business/dao/impl/ShardedCounterDaoImplTest.java

http://thoughtsite.googlecode.com/ · Java · 108 lines · 83 code · 20 blank · 5 comment · 6 complexity · b2d22a1dcd114a4a7ddc9cc2343bc3bf MD5 · raw file

  1. package com.google.ie.business.dao.impl;
  2. import static org.junit.Assert.assertEquals;
  3. import com.google.appengine.api.datastore.DatastoreServiceFactory;
  4. import com.google.appengine.api.datastore.Query;
  5. import com.google.ie.business.domain.Idea;
  6. import com.google.ie.business.domain.ShardedCounter;
  7. import com.google.ie.business.domain.User;
  8. import com.google.ie.test.DatastoreTest;
  9. import org.junit.Before;
  10. import org.junit.Test;
  11. import java.util.List;
  12. /**
  13. * Test cases for IdeaDaoImpl class
  14. *
  15. * @author gmaurya
  16. */
  17. public class ShardedCounterDaoImplTest extends DatastoreTest {
  18. private ShardedCounterDaoImpl shardedCounterDao;
  19. private UserDaoImpl userDao;
  20. private IdeaDaoImpl ideaDao;
  21. private Idea idea;
  22. private User user;
  23. private ShardedCounter counter;
  24. private static final int shardNumber = 2;
  25. @Before
  26. public void setUp() {
  27. super.setUp();
  28. if (shardedCounterDao == null) {
  29. shardedCounterDao = new ShardedCounterDaoImpl();
  30. shardedCounterDao.setPersistenceManagerFactory(pmf);
  31. }
  32. if (userDao == null) {
  33. userDao = new UserDaoImpl();
  34. userDao.setPersistenceManagerFactory(pmf);
  35. }
  36. if (ideaDao == null) {
  37. ideaDao = new IdeaDaoImpl();
  38. ideaDao.setPersistenceManagerFactory(pmf);
  39. }
  40. user = new User();
  41. user.setDisplayName("test user");
  42. user = userDao.saveUser(user);
  43. idea = new Idea();
  44. idea.setTitle("Title");
  45. idea.setCreatorKey(user.getUserKey());
  46. idea.setDescription("Idea Description");
  47. idea = ideaDao.saveIdea(idea);
  48. }
  49. @Test
  50. public void createOrUpdateShardedCounter() {
  51. counter = new ShardedCounter(idea.getKey());
  52. counter.setPositivePoint(0);
  53. counter.setTotalPoint(15);
  54. counter.setShardNumber(shardNumber);
  55. counter = shardedCounterDao.createOrUpdateShardedCounter(counter);
  56. Query query = new Query(ShardedCounter.class.getSimpleName());
  57. assertEquals(1,
  58. DatastoreServiceFactory.getDatastoreService().prepare(query)
  59. .countEntities());
  60. counter.setPositivePoint(12);
  61. counter.setTotalPoint(30);
  62. counter = shardedCounterDao.createOrUpdateShardedCounter(counter);
  63. counter = shardedCounterDao.findEntityByPrimaryKey(ShardedCounter.class, counter.getKey());
  64. assertEquals(12, counter.getPositivePoint());
  65. }
  66. @Test
  67. public void getShardByParentKey() {
  68. counter = new ShardedCounter(idea.getKey());
  69. counter.setPositivePoint(0);
  70. counter.setTotalPoint(15);
  71. counter.setShardNumber(shardNumber);
  72. counter = shardedCounterDao.createOrUpdateShardedCounter(counter);
  73. List<ShardedCounter> shards = shardedCounterDao.getShardsByParentKey(idea.getKey());
  74. assertEquals(1, shards.size());
  75. }
  76. @Test
  77. public void getShardByParentKeyAndShardNumber() {
  78. counter = new ShardedCounter(idea.getKey());
  79. counter.setPositivePoint(0);
  80. counter.setTotalPoint(15);
  81. counter.setShardNumber(shardNumber);
  82. counter = shardedCounterDao.createOrUpdateShardedCounter(counter);
  83. List<ShardedCounter> shards =
  84. shardedCounterDao.getShardsByParentKeyAndShardNum(idea
  85. .getKey(), shardNumber);
  86. assertEquals(1, shards.size());
  87. }
  88. }