@Test public void testCompareTo() throws BiobankCheckException, Exception { parentSpc.setInventoryId("defgh"); parentSpc.persist(); SpecimenWrapper sample2 = SpecimenHelper.newSpecimen( parentSpc, childSpc.getSpecimenType(), ActivityStatus.ACTIVE, childSpc.getProcessingEvent(), childSpc.getParentContainer(), 2, 3); sample2.setInventoryId("awert"); sample2.persist(); Assert.assertTrue(parentSpc.compareTo(sample2) > 0); sample2.setInventoryId("qwerty"); sample2.persist(); Assert.assertTrue(parentSpc.compareTo(sample2) < 0); SpecimenBaseWrapper sb = new SpecimenBaseWrapper(appService); Assert.assertEquals(0, parentSpc.compareTo(sb)); // test with a position because compare with position in this case: // childSpc is in topD4B1 // sample2 is in topD4C4 Assert.assertTrue(childSpc.compareTo(sample2) < 0); }
@Test public void testPersistCheckInventoryIdUniqueCaseSensitive() throws BiobankCheckException, Exception { int i = r.nextInt(); parentSpc.setInventoryId("toto" + i); parentSpc.persist(); SpecimenWrapper duplicate = SpecimenHelper.newSpecimen( parentSpc, childSpc.getSpecimenType(), ActivityStatus.ACTIVE, childSpc.getProcessingEvent(), childSpc.getParentContainer(), 2, 2); duplicate.setInventoryId("toto" + i); try { duplicate.persist(); Assert.fail("same inventory id !"); } catch (DuplicatePropertySetException dee) { Assert.assertTrue(true); } duplicate.setInventoryId("TOTO" + r.nextInt()); duplicate.persist(); }
@Test public void testPersistCheckInventoryIdUnique() throws BiobankCheckException, Exception { SpecimenWrapper duplicate = SpecimenHelper.newSpecimen( parentSpc, childSpc.getSpecimenType(), ActivityStatus.ACTIVE, childSpc.getProcessingEvent(), childSpc.getParentContainer(), 2, 2); duplicate.setInventoryId(parentSpc.getInventoryId()); try { duplicate.persist(); Assert.fail("same inventory id !"); } catch (DuplicatePropertySetException e) { Assert.assertTrue(true); } duplicate.setInventoryId("qqqq" + r.nextInt()); duplicate.persist(); duplicate.setInventoryId(parentSpc.getInventoryId()); try { duplicate.persist(); Assert.fail( "still can't save it with the same inventoryId after a first add with anotehr inventoryId!"); } catch (DuplicatePropertySetException e) { Assert.assertTrue(true); } }
@Test public void testResetNew() throws Exception { SpecimenWrapper newSpec = SpecimenHelper.newSpecimen(parentSpc.getSpecimenType()); newSpec.setInventoryId("toto"); newSpec.reset(); Assert.assertEquals(null, newSpec.getInventoryId()); }
@Test public void testPersistPositionAlreadyUsed() throws BiobankCheckException, Exception { parentSpc.persist(); RowColPos pos = childSpc.getPosition(); SpecimenWrapper duplicate = SpecimenHelper.newSpecimen( parentSpc, childSpc.getSpecimenType(), ActivityStatus.ACTIVE, childSpc.getProcessingEvent(), childSpc.getParentContainer(), pos.getRow(), pos.getCol()); try { duplicate.persist(); Assert.fail("should not be allowed to add an specimen in a position that is not empty"); } catch (BiobankSessionException bce) { Assert.assertTrue(true); } duplicate.setParent(duplicate.getParentContainer(), new RowColPos(2, 3)); duplicate.persist(); duplicate.setInventoryId(Utils.getRandomString(5)); duplicate.persist(); }
@Test public void testResetAlreadyInDatabase() throws Exception { parentSpc.persist(); String old = parentSpc.getInventoryId(); parentSpc.setInventoryId("toto"); parentSpc.reset(); Assert.assertEquals(old, parentSpc.getInventoryId()); }
@Test public void testGetSpecimensInSiteWithPositionLabel() throws Exception { ContainerWrapper container = childSpc.getParentContainer(); ContainerTypeWrapper containerType = container.getContainerType(); SpecimenTypeWrapper sampleType = containerType.getSpecimenTypeCollection(false).get(0); Assert.assertNotNull(sampleType); childSpc.setInventoryId(Utils.getRandomString(5)); childSpc.persist(); SpecimenHelper.newSpecimen( childSpc, childSpc.getSpecimenType(), ActivityStatus.ACTIVE, childSpc.getProcessingEvent(), childSpc.getParentContainer(), 0, 1); SpecimenHelper.newSpecimen( childSpc, childSpc.getSpecimenType(), ActivityStatus.ACTIVE, childSpc.getProcessingEvent(), childSpc.getParentContainer(), 1, 0); childSpc = SpecimenHelper.newSpecimen( childSpc, childSpc.getSpecimenType(), ActivityStatus.ACTIVE, childSpc.getProcessingEvent(), childSpc.getParentContainer(), 0, 2); childSpc.setInventoryId(Utils.getRandomString(5)); childSpc.persist(); List<SpecimenWrapper> specimens = SpecimenWrapper.getSpecimensInSiteWithPositionLabel( appService, site, childSpc.getPositionString(true, false)); Assert.assertEquals(1, specimens.size()); Assert.assertEquals(specimens.get(0), childSpc); }
@Test public void testCheckInventoryIdUnique() throws BiobankCheckException, Exception { SpecimenWrapper duplicate = SpecimenHelper.newSpecimen( parentSpc, childSpc.getSpecimenType(), ActivityStatus.ACTIVE, childSpc.getProcessingEvent(), childSpc.getParentContainer(), 2, 2); duplicate.setInventoryId(parentSpc.getInventoryId()); try { duplicate.checkInventoryIdUnique(); Assert.fail("The check should detect that this is the same"); } catch (DuplicateEntryException e) { Assert.assertTrue(true); } }
@Test public void testDebugRandomMethods() throws Exception { System.out.println(parentSpc.getProcessingEvent()); System.out.println(childSpc.getProcessingEvent()); ContainerWrapper container = childSpc.getParentContainer(); ContainerTypeWrapper containerType = container.getContainerType(); SpecimenTypeWrapper spcType = containerType.getSpecimenTypeCollection(false).get(0); Assert.assertNotNull(spcType); System.out.println(parentSpc.getProcessingEvent()); System.out.println(childSpc.getProcessingEvent()); ProcessingEventWrapper pevent = ProcessingEventHelper.addProcessingEvent( childSpc.getCurrentCenter(), Utils.getRandomDate()); // add aliquoted specimen SpecimenWrapper specimen = SpecimenHelper.newSpecimen( parentSpc, childSpc.getSpecimenType(), ActivityStatus.ACTIVE, childSpc.getProcessingEvent(), childSpc.getParentContainer(), 2, 3); specimen.setInventoryId(Utils.getRandomString(5)); specimen.persist(); pevent.addToSpecimenCollection(Arrays.asList(parentSpc)); pevent.persist(); SpecimenWrapper s2 = SpecimenHelper.newSpecimen( childSpc, childSpc.getSpecimenType(), ActivityStatus.ACTIVE, childSpc.getProcessingEvent(), childSpc.getParentContainer(), 2, 4); s2.setParent(null, null); s2.setParentSpecimen(null); s2.persist(); try { // should find at least one specimen with a parent that is inside a // processing event Assert.assertTrue( DebugUtil.getRandomLinkedAliquotedSpecimens(appService, site.getId()).size() > 0); Assert.assertTrue(DebugUtil.getRandomAssignedSpecimens(appService, site.getId()).size() > 0); List<SpecimenWrapper> randomNonAssociatedNonDispatchedSpecimens = DebugUtil.getRandomNonAssignedNonDispatchedSpecimens(appService, site.getId(), 10); Assert.assertTrue(randomNonAssociatedNonDispatchedSpecimens.size() > 0); } catch (Exception e) { Assert.fail(e.getCause().getMessage()); } try { s2.delete(); } catch (Exception e) { e.printStackTrace(); } }