/components/blitz/test/ome/services/blitz/test/utests/ModelTest.java

https://github.com/will-moore/openmicroscopy · Java · 254 lines · 194 code · 46 blank · 14 comment · 0 complexity · 6262e112b9ebfc9b9962136ea665dc75 MD5 · raw file

  1. /*
  2. * Copyright 2007-2014 Glencoe Software, Inc. All rights reserved.
  3. * Use is subject to license terms supplied in LICENSE.txt
  4. */
  5. package ome.services.blitz.test.utests;
  6. import static omero.rtypes.rdouble;
  7. import static omero.rtypes.rstring;
  8. import static ome.formats.model.UnitsFactory.makePower;
  9. import java.util.HashMap;
  10. import java.util.Map;
  11. import junit.framework.TestCase;
  12. import ome.model.containers.Dataset;
  13. import ome.model.containers.Project;
  14. import ome.model.core.Image;
  15. import ome.model.core.Pixels;
  16. import ome.model.meta.Experimenter;
  17. import ome.model.meta.ExperimenterGroup;
  18. import ome.units.UNITS;
  19. import omero.model.ArcI;
  20. import omero.model.ChannelI;
  21. import omero.model.DatasetI;
  22. import omero.model.DatasetImageLink;
  23. import omero.model.EventI;
  24. import omero.model.ExperimenterGroupI;
  25. import omero.model.ExperimenterI;
  26. import omero.model.ImageI;
  27. import omero.model.PixelsI;
  28. import omero.model.ProjectI;
  29. import omero.util.IceMapper;
  30. import org.testng.annotations.Test;
  31. public class ModelTest extends TestCase {
  32. @Test(groups = "ticket:636")
  33. public void testInheritanceInConcreteClasses() throws Exception {
  34. ArcI arcI = new ArcI();
  35. // arcI.unload();
  36. arcI.setPower(makePower(1.0f, UNITS.WATT));
  37. }
  38. @Test
  39. public void testMapper() throws Exception {
  40. Experimenter e = new Experimenter();
  41. e.setOmeName("hi");
  42. e.setLdap(false);
  43. e.linkExperimenterGroup(new ExperimenterGroup("foo", false));
  44. IceMapper mapper = new IceMapper();
  45. ExperimenterI ei = (ExperimenterI) mapper.map(e);
  46. assertEquals(new Integer(1), new Integer(ei
  47. .sizeOfGroupExperimenterMap()));
  48. }
  49. @Test
  50. public void testCopyObject() throws Exception {
  51. Experimenter e = new Experimenter();
  52. e.setOmeName("hi");
  53. e.setLdap(false);
  54. e.linkExperimenterGroup(new ExperimenterGroup("foo", false));
  55. ExperimenterI ei = new ExperimenterI();
  56. ei.copyObject(e, new IceMapper());
  57. // This may not hold without being called from the top level mapper
  58. // method
  59. // assertEquals(new Integer(1), new
  60. // Integer(ei.sizeOfGroupExperimenterMap()));
  61. Pixels p = new Pixels();
  62. Image i = new Image();
  63. p.setImage(i);
  64. p.getDetails().setOwner(e);
  65. new PixelsI().copyObject(p, new IceMapper());
  66. }
  67. @Test
  68. public void testFillObject() throws Exception {
  69. ExperimenterI ei = new ExperimenterI();
  70. ei.setOmeName(rstring("name"));
  71. ei.linkExperimenterGroup(new ExperimenterGroupI());
  72. Experimenter e = (Experimenter) ei.fillObject(new IceMapper());
  73. assertEquals(new Integer(1),
  74. new Integer(e.sizeOfGroupExperimenterMap()));
  75. PixelsI p = new PixelsI();
  76. ImageI i = new ImageI();
  77. p.setImage(i);
  78. p.getDetails().setOwner(ei);
  79. p.fillObject(new IceMapper());
  80. }
  81. @Test
  82. public void testCounts() throws Exception {
  83. Map<Long, Long> counts = new HashMap<Long, Long>();
  84. counts.put(1L, 1L);
  85. class CExperimenter extends Experimenter {
  86. CExperimenter(Map<Long, Long> counts) {
  87. setAnnotationLinksCountPerOwner(counts);
  88. }
  89. }
  90. Experimenter e = new CExperimenter(counts);
  91. ExperimenterI ei = new ExperimenterI();
  92. ei.copyObject(e, new IceMapper());
  93. Map<Long, Long> countsi = ei.getAnnotationLinksCountPerOwner();
  94. assertEquals(new Long(1L), countsi.get(1L));
  95. }
  96. @Test
  97. public void testLoadedness1() throws Exception {
  98. ExperimenterGroup g = new ExperimenterGroup();
  99. Experimenter e = new Experimenter();
  100. Project p = new Project();
  101. p.getDetails().setOwner(e);
  102. e.linkExperimenterGroup(g);
  103. assertEquals(1, e.sizeOfGroupExperimenterMap());
  104. IceMapper mapper = new IceMapper();
  105. ProjectI pi = (ProjectI) mapper.handleOutput(Project.class, p);
  106. ExperimenterI ei = (ExperimenterI) pi.getDetails().getOwner();
  107. assertEquals(1, e.sizeOfGroupExperimenterMap());
  108. }
  109. @Test
  110. public void testLoadedness2() throws Exception {
  111. ExperimenterGroup g = new ExperimenterGroup();
  112. Experimenter e = new Experimenter();
  113. e.linkExperimenterGroup(g);
  114. Project p = new Project();
  115. p.getDetails().setOwner(e);
  116. p.getDetails().setGroup(g);
  117. Dataset d = new Dataset();
  118. d.getDetails().setOwner(e);
  119. d.getDetails().setGroup(g);
  120. p.linkDataset(d); // Adding an extra object
  121. assertEquals(1, e.sizeOfGroupExperimenterMap());
  122. IceMapper mapper = new IceMapper();
  123. ProjectI pi = (ProjectI) mapper.handleOutput(Project.class, p);
  124. ExperimenterI ei = (ExperimenterI) pi.getDetails().getOwner();
  125. ExperimenterGroupI gi = (ExperimenterGroupI) pi.getDetails().getGroup();
  126. assertEquals(1, ei.sizeOfGroupExperimenterMap());
  127. assertEquals(1, gi.sizeOfGroupExperimenterMap());
  128. }
  129. @Test
  130. public void testLoadedness3() throws Exception {
  131. Experimenter e = new Experimenter();
  132. e.putAt(Experimenter.GROUPEXPERIMENTERMAP, null);
  133. Project p = new Project();
  134. p.getDetails().setOwner(e);
  135. assertEquals(-1, e.sizeOfGroupExperimenterMap());
  136. IceMapper mapper = new IceMapper();
  137. ProjectI pi = (ProjectI) mapper.handleOutput(Project.class, p);
  138. ExperimenterI ei = (ExperimenterI) pi.getDetails().getOwner();
  139. assertEquals(-1, ei.sizeOfGroupExperimenterMap());
  140. }
  141. @Test
  142. public void testRemoval() throws Exception {
  143. omero.model.Image i = new ImageI();
  144. assertEquals(0, i.sizeOfDatasetLinks());
  145. DatasetImageLink link = i.linkDataset(new DatasetI());
  146. assertEquals(1, i.sizeOfDatasetLinks());
  147. i.removeDatasetImageLink(link);
  148. assertEquals(0, i.sizeOfDatasetLinks());
  149. link = i.linkDataset(new DatasetI());
  150. assertEquals(1, i.sizeOfDatasetLinks());
  151. i.removeDatasetImageLinkFromBoth(link, true);
  152. assertEquals(0, i.sizeOfDatasetLinks());
  153. omero.model.Dataset d = new DatasetI();
  154. i.linkDataset(d);
  155. assertEquals(1, i.sizeOfDatasetLinks());
  156. i.unlinkDataset(d);
  157. assertEquals(0, i.sizeOfDatasetLinks());
  158. }
  159. @Test
  160. public void testReloading() throws Exception {
  161. // This is our "real" graph
  162. omero.model.Image i = new ImageI(1L, true);
  163. i.getDetails().setUpdateEvent(new EventI(1L, false));
  164. omero.model.Dataset d = new DatasetI(1L, true);
  165. d.getDetails().setUpdateEvent(new EventI(1L, false));
  166. i.linkDataset(d);
  167. assertEquals(1, i.sizeOfDatasetLinks());
  168. i.unloadDatasetLinks();
  169. assertEquals(-1, i.sizeOfDatasetLinks());
  170. // We shouldn't be able to reload from just any image
  171. omero.model.Image badId = new ImageI(666L, true);
  172. badId.getDetails().setUpdateEvent(new EventI(1L, false));
  173. omero.model.Image badUp = new ImageI(1L, true);
  174. badUp.getDetails().setUpdateEvent(new EventI(0L, false));
  175. try {
  176. i.reloadDatasetLinks(badId);
  177. fail();
  178. } catch (omero.ClientError ce) {
  179. // good
  180. }
  181. try {
  182. i.reloadDatasetLinks(badUp);
  183. fail();
  184. } catch (omero.ClientError ce) {
  185. // good
  186. }
  187. // From this we want to reload
  188. omero.model.Image i2 = new ImageI(1L, true);
  189. i2.getDetails().setUpdateEvent(new EventI(1L, false));
  190. omero.model.Dataset d2 = new DatasetI(1L, true);
  191. i2.linkDataset(d2);
  192. assertEquals(1, i2.sizeOfDatasetLinks());
  193. i.reloadDatasetLinks(i2);
  194. assertEquals(1, i.sizeOfDatasetLinks());
  195. assertEquals(-1, i2.sizeOfDatasetLinks());
  196. }
  197. @Test(groups = "ticket:2547")
  198. public void testOrderedCollectionsTicket2547() {
  199. PixelsI pixels = new PixelsI();
  200. ChannelI channel0 = new ChannelI();
  201. ChannelI channel1 = new ChannelI();
  202. pixels.addChannel(channel0);
  203. assertEquals(1, pixels.sizeOfChannels());
  204. ChannelI old = (ChannelI) pixels.setChannel(0, channel1);
  205. assertEquals(old, channel0);
  206. assertEquals(1, pixels.sizeOfChannels());
  207. }
  208. }