use of ca.corefacility.bioinformatics.irida.model.joins.impl.ProjectSampleJoin in project irida by phac-nml.
the class ProjectServiceImplIT method testShareLockedSamplesWithoutOwner.
@Test
@WithMockUser(username = "user1", roles = "USER")
public void testShareLockedSamplesWithoutOwner() {
Project source = projectService.read(2L);
Project destination = projectService.read(10L);
List<Join<Project, Sample>> samplesForProject = sampleService.getSamplesForProject(source);
Set<Sample> samples = samplesForProject.stream().map(j -> j.getObject()).collect(Collectors.toSet());
List<ProjectSampleJoin> copiedSamples = projectService.shareSamples(source, destination, samples, false);
assertEquals(samples.size(), copiedSamples.size());
copiedSamples.forEach(j -> {
assertFalse("Project shouldn't be owner for sample", j.isOwner());
});
assertEquals("Samples should still exist in source project", Sets.newHashSet(1L, 2L), projectSampleJoinRepository.getSamplesForProject(source).stream().map(j -> j.getObject().getId()).collect(Collectors.toSet()));
assertEquals("Samples should exist in destination project", Sets.newHashSet(1L, 2L), projectSampleJoinRepository.getSamplesForProject(destination).stream().map(j -> j.getObject().getId()).collect(Collectors.toSet()));
}
use of ca.corefacility.bioinformatics.irida.model.joins.impl.ProjectSampleJoin in project irida by phac-nml.
the class ProjectServiceImplTest method testRemoveSampleWithOtherLinksFromProject.
@Test
public void testRemoveSampleWithOtherLinksFromProject() {
Sample s = new Sample("s1");
Project p1 = new Project("p1");
final ProjectSampleJoin j = new ProjectSampleJoin(p1, s, true);
when(psjRepository.getProjectForSample(s)).thenReturn(ImmutableList.of(j));
when(psjRepository.readSampleForProject(p1, s)).thenReturn(j);
projectService.removeSampleFromProject(p1, s);
verify(psjRepository).delete(j);
verifyZeroInteractions(sampleRepository);
}
use of ca.corefacility.bioinformatics.irida.model.joins.impl.ProjectSampleJoin in project irida by phac-nml.
the class ProjectServiceImplTest method testAddSampleToProject.
@Test
public void testAddSampleToProject() {
Sample s = new Sample();
s.setSampleName("sample");
s.setId(new Long(2222));
Project p = project();
ProjectSampleJoin join = new ProjectSampleJoin(p, s, true);
when(psjRepository.save(join)).thenReturn(join);
Join<Project, Sample> rel = projectService.addSampleToProject(p, s, true);
verify(psjRepository).save(join);
verify(sampleRepository).getSampleBySampleName(p, s.getSampleName());
assertNotNull(rel);
assertEquals(rel.getSubject(), p);
assertEquals(rel.getObject(), s);
}
use of ca.corefacility.bioinformatics.irida.model.joins.impl.ProjectSampleJoin in project irida by phac-nml.
the class SampleServiceImplTest method testGetSampleForProject.
@Test
public void testGetSampleForProject() {
Project p = new Project();
p.setId(1111L);
Sample s = new Sample();
s.setId(2222L);
ProjectSampleJoin join = new ProjectSampleJoin(p, s, true);
when(sampleRepository.findOne(s.getId())).thenReturn(s);
when(psjRepository.readSampleForProject(p, s)).thenReturn(join);
sampleService.getSampleForProject(p, s.getId());
verify(psjRepository).readSampleForProject(p, s);
}
use of ca.corefacility.bioinformatics.irida.model.joins.impl.ProjectSampleJoin in project irida by phac-nml.
the class SampleServiceImplTest method testRejectSampleMergeDifferentProjects.
@Test
public void testRejectSampleMergeDifferentProjects() {
Sample s1 = new Sample();
s1.setId(1L);
Sample s2 = new Sample();
s2.setId(2L);
Project p1 = new Project();
p1.setId(1L);
p1.setName("project 1");
Project p2 = new Project();
p2.setId(2L);
p2.setName("project 2");
List<Join<Project, Sample>> p1_s1 = new ArrayList<>();
p1_s1.add(new ProjectSampleJoin(p1, s1, true));
List<Join<Project, Sample>> p2_s2 = new ArrayList<>();
p2_s2.add(new ProjectSampleJoin(p2, s2, true));
when(psjRepository.getProjectForSample(s1)).thenReturn(p1_s1);
when(psjRepository.getProjectForSample(s2)).thenReturn(p2_s2);
try {
sampleService.mergeSamples(p1, s1, Lists.newArrayList(s2));
fail("Samples from different projects were allowed to be merged.");
} catch (IllegalArgumentException e) {
} catch (Exception e) {
e.printStackTrace();
fail("Failed for an unknown reason; stack trace preceded.");
}
verify(psjRepository).getProjectForSample(s1);
verify(psjRepository).getProjectForSample(s2);
}
Aggregations