/activeobjects-plugin/src/test/java/com/atlassian/activeobjects/osgi/DelegatingActiveObjectsTest.java

https://bitbucket.org/activeobjects/ao-plugin · Java · 223 lines · 179 code · 40 blank · 4 comment · 0 complexity · 2780075d51b79dc78ebeaf81493fa3be MD5 · raw file

  1. package com.atlassian.activeobjects.osgi;
  2. import com.atlassian.activeobjects.external.ActiveObjects;
  3. import com.atlassian.sal.api.transaction.TransactionCallback;
  4. import com.google.common.base.Suppliers;
  5. import net.java.ao.DBParam;
  6. import net.java.ao.EntityManager;
  7. import net.java.ao.Query;
  8. import net.java.ao.RawEntity;
  9. import org.junit.Before;
  10. import org.junit.Test;
  11. import org.junit.runner.RunWith;
  12. import org.mockito.Mock;
  13. import org.mockito.runners.MockitoJUnitRunner;
  14. import java.beans.PropertyChangeListener;
  15. import java.util.HashMap;
  16. import static org.mockito.Mockito.*;
  17. /**
  18. * The main reason for this tests is to ensure that we use the supplier.
  19. */
  20. @RunWith(MockitoJUnitRunner.class)
  21. public class DelegatingActiveObjectsTest
  22. {
  23. private ActiveObjects activeObjects;
  24. @Mock
  25. private ActiveObjects delegateActiveObjects;
  26. @Before
  27. public void setUp() throws Exception
  28. {
  29. activeObjects = new DelegatingActiveObjects(Suppliers.ofInstance(delegateActiveObjects));
  30. }
  31. @Test
  32. @SuppressWarnings("unchecked")
  33. public void testMigrate() throws Exception
  34. {
  35. activeObjects.migrate(AnEntity.class);
  36. verify(delegateActiveObjects).migrate(AnEntity.class);
  37. }
  38. @Test
  39. public void testFlushAll() throws Exception
  40. {
  41. activeObjects.flushAll();
  42. verify(delegateActiveObjects).flushAll();
  43. }
  44. @Test
  45. public void testFlush() throws Exception
  46. {
  47. activeObjects.flush();
  48. verify(delegateActiveObjects).flush();
  49. }
  50. @Test
  51. public void testGetEntityKey() throws Exception
  52. {
  53. final Integer key = 1;
  54. activeObjects.get(AnEntity.class, key);
  55. verify(delegateActiveObjects).get(AnEntity.class, key);
  56. }
  57. @Test
  58. public void testGetEntityKeys() throws Exception
  59. {
  60. final Integer key1 = 1;
  61. final Integer key2 = 2;
  62. activeObjects.get(AnEntity.class, key1, key2);
  63. verify(delegateActiveObjects).get(AnEntity.class, key1, key2);
  64. }
  65. @Test
  66. public void testCreateEntityMap() throws Exception
  67. {
  68. final HashMap<String, Object> aMap = new HashMap<String, Object>();
  69. activeObjects.create(AnEntity.class, aMap);
  70. verify(delegateActiveObjects).create(AnEntity.class, aMap);
  71. }
  72. @Test
  73. public void testCreateEntityDBParams() throws Exception
  74. {
  75. final DBParam dbParam = new DBParam("field", "value");
  76. activeObjects.create(AnEntity.class, dbParam);
  77. verify(delegateActiveObjects).create(AnEntity.class, dbParam);
  78. }
  79. @Test
  80. public void testDelete() throws Exception
  81. {
  82. final AnEntity entity = new AnEntity();
  83. activeObjects.delete(entity);
  84. verify(delegateActiveObjects).delete(entity);
  85. }
  86. @Test
  87. public void testFindClass() throws Exception
  88. {
  89. activeObjects.find(AnEntity.class);
  90. verify(delegateActiveObjects).find(AnEntity.class);
  91. }
  92. @Test
  93. public void testFindClassCriteriaObjects() throws Exception
  94. {
  95. final Class<AnEntity> type = AnEntity.class;
  96. final String criteria = "criteria";
  97. final Object param = new Object();
  98. activeObjects.find(type, criteria, param);
  99. verify(delegateActiveObjects).find(type, criteria, param);
  100. }
  101. @Test
  102. public void testFindClassQuery() throws Exception
  103. {
  104. final Class<AnEntity> type = AnEntity.class;
  105. final Query query = Query.select();
  106. activeObjects.find(type, query);
  107. verify(delegateActiveObjects).find(type, query);
  108. }
  109. @Test
  110. public void testFindClassStringQuery() throws Exception
  111. {
  112. final Class<AnEntity> type = AnEntity.class;
  113. final String field = "field";
  114. final Query query = Query.select();
  115. activeObjects.find(type, field, query);
  116. verify(delegateActiveObjects).find(type, field, query);
  117. }
  118. @Test
  119. public void testFindWithSQL() throws Exception
  120. {
  121. final Class<AnEntity> type = AnEntity.class;
  122. final String keyField = "field";
  123. final String sql = "sql";
  124. final Object param = new Object();
  125. activeObjects.findWithSQL(type, keyField, sql, param);
  126. verify(delegateActiveObjects).findWithSQL(type, keyField, sql, param);
  127. }
  128. @Test
  129. public void testCountClass() throws Exception
  130. {
  131. final Class<AnEntity> type = AnEntity.class;
  132. activeObjects.count(type);
  133. verify(delegateActiveObjects).count(type);
  134. }
  135. @Test
  136. public void testCountClassStringObjects() throws Exception
  137. {
  138. final Class<AnEntity> type = AnEntity.class;
  139. final String criteria = "criteria";
  140. final Object param = new Object();
  141. activeObjects.count(type, criteria, param);
  142. verify(delegateActiveObjects).count(type, criteria, param);
  143. }
  144. @Test
  145. public void testCountClassQuery() throws Exception
  146. {
  147. final Class<AnEntity> type = AnEntity.class;
  148. final Query query = Query.select();
  149. activeObjects.count(type, query);
  150. verify(delegateActiveObjects).count(type, query);
  151. }
  152. @Test
  153. public void testExecuteInTransaction() throws Exception
  154. {
  155. @SuppressWarnings({"unchecked"}) final TransactionCallback<Object> callback = mock(TransactionCallback.class);
  156. activeObjects.executeInTransaction(callback);
  157. verify(delegateActiveObjects).executeInTransaction(callback);
  158. }
  159. ///CLOVER:OFF
  160. private static class AnEntity implements RawEntity<Integer>
  161. {
  162. public void init()
  163. {
  164. }
  165. public void save()
  166. {
  167. }
  168. public EntityManager getEntityManager()
  169. {
  170. return null;
  171. }
  172. public void addPropertyChangeListener(PropertyChangeListener listener)
  173. {
  174. }
  175. public void removePropertyChangeListener(PropertyChangeListener listener)
  176. {
  177. }
  178. public <X extends RawEntity<Integer>> Class<X> getEntityType()
  179. {
  180. return null;
  181. }
  182. }
  183. }