Search in sources :

Example 1 with DirectoryEntry

use of org.mockftpserver.fake.filesystem.DirectoryEntry in project irida by phac-nml.

the class ExportUploadServiceTest method testGetResultsSubmitted.

@SuppressWarnings("unchecked")
@Test
public void testGetResultsSubmitted() throws IOException, UploadException {
    NcbiExportSubmissionService exportSubmissionService = mock(NcbiExportSubmissionService.class);
    NcbiBioSampleFiles sample2 = new NcbiBioSampleFiles();
    sample2.setId("NMLTEST2");
    NcbiBioSampleFiles sample3 = new NcbiBioSampleFiles();
    sample3.setId("NMLTEST3");
    NcbiExportSubmission submission = new NcbiExportSubmission();
    submission.setBioSampleFiles(Lists.newArrayList(sample2, sample3));
    submission.setDirectoryPath("submit/Test/example");
    when(exportSubmissionService.getSubmissionsWithState(any(Set.class))).thenReturn(Lists.newArrayList(submission));
    String report = "<?xml version='1.0' encoding='utf-8'?>\n" + "<SubmissionStatus submission_id=\"SUB189884\" status=\"processing\">\n" + "  <Action action_id=\"SUB189884-nmltest2\" target_db=\"SRA\" status=\"processing\">\n" + "    <Response status=\"processing\"/>\n" + "  </Action>\n" + "  <Action action_id=\"SUB189884-nmltest3\" target_db=\"SRA\" status=\"submitted\"/>\n" + "</SubmissionStatus>\n";
    String ftpHost = "localhost";
    String ftpUser = "test";
    String ftpPassword = "password";
    String baseDirectory = "/home/test/submit/Test";
    String submissionDirectory = baseDirectory + "/example";
    String reportFile = submissionDirectory + "/report.2.xml";
    FakeFtpServer server = new FakeFtpServer();
    server.addUserAccount(new UserAccount(ftpUser, ftpPassword, "/home/test"));
    FileSystem fileSystem = new UnixFakeFileSystem();
    fileSystem.add(new DirectoryEntry(submissionDirectory));
    fileSystem.add(new FileEntry(reportFile, report));
    server.setFileSystem(fileSystem);
    // finds an open port
    server.setServerControlPort(0);
    ExportUploadService exportUploadService = new ExportUploadService(exportSubmissionService, null, new TestEmailController());
    try {
        server.start();
        int ftpPort = server.getServerControlPort();
        exportUploadService.setConnectionDetails(ftpHost, ftpPort, ftpUser, ftpPassword, baseDirectory);
        exportUploadService.updateRunningUploads();
    } finally {
        server.stop();
    }
    assertEquals("sample2 should have processing state", ExportUploadState.PROCESSING, sample2.getSubmissionStatus());
    assertEquals("sample3 should have processing state", ExportUploadState.SUBMITTED, sample3.getSubmissionStatus());
}
Also used : NcbiExportSubmission(ca.corefacility.bioinformatics.irida.model.NcbiExportSubmission) Set(java.util.Set) FakeFtpServer(org.mockftpserver.fake.FakeFtpServer) DirectoryEntry(org.mockftpserver.fake.filesystem.DirectoryEntry) NcbiBioSampleFiles(ca.corefacility.bioinformatics.irida.model.export.NcbiBioSampleFiles) UnixFakeFileSystem(org.mockftpserver.fake.filesystem.UnixFakeFileSystem) FileSystem(org.mockftpserver.fake.filesystem.FileSystem) UnixFakeFileSystem(org.mockftpserver.fake.filesystem.UnixFakeFileSystem) FileEntry(org.mockftpserver.fake.filesystem.FileEntry) TestEmailController(ca.corefacility.bioinformatics.irida.service.impl.TestEmailController) UserAccount(org.mockftpserver.fake.UserAccount) Test(org.junit.Test)

Example 2 with DirectoryEntry

use of org.mockftpserver.fake.filesystem.DirectoryEntry in project irida by phac-nml.

the class ExportUploadServiceTest method testGetResultsWithAccession.

@SuppressWarnings("unchecked")
@Test
public void testGetResultsWithAccession() throws IOException, UploadException {
    NcbiExportSubmissionService exportSubmissionService = mock(NcbiExportSubmissionService.class);
    NcbiBioSampleFiles sample2 = new NcbiBioSampleFiles();
    sample2.setId("NMLTEST2");
    NcbiExportSubmission submission = new NcbiExportSubmission();
    submission.setBioSampleFiles(Lists.newArrayList(sample2));
    submission.setDirectoryPath("submit/Test/example");
    String newAccession = "SRR12345";
    when(exportSubmissionService.getSubmissionsWithState(any(Set.class))).thenReturn(Lists.newArrayList(submission));
    String report = "<?xml version='1.0' encoding='utf-8'?>\n" + "<SubmissionStatus submission_id=\"SUB11245\" status=\"processed-ok\">\n" + "  <Action action_id=\"SUB11245-nmltest2\" target_db=\"SRA\" status=\"processed-ok\" notify_submitter=\"true\">\n" + "    <Response status=\"processed-ok\">\n" + "      <Object target_db=\"SRA\" object_id=\"RUN:3119494\" spuid_namespace=\"NML\" spuid=\"nmltest2\" accession=\"" + newAccession + "\" status=\"updated\">\n" + "        <Meta>\n" + "          <SRAStudy>SRP12345</SRAStudy>\n" + "        </Meta>\n" + "      </Object>\n" + "    </Response>\n" + "  </Action>\n" + "</SubmissionStatus>";
    String ftpHost = "localhost";
    String ftpUser = "test";
    String ftpPassword = "password";
    String baseDirectory = "/home/test/submit/Test";
    String submissionDirectory = baseDirectory + "/example";
    String reportFile = submissionDirectory + "/report.2.xml";
    FakeFtpServer server = new FakeFtpServer();
    server.addUserAccount(new UserAccount(ftpUser, ftpPassword, "/home/test"));
    FileSystem fileSystem = new UnixFakeFileSystem();
    fileSystem.add(new DirectoryEntry(submissionDirectory));
    fileSystem.add(new FileEntry(reportFile, report));
    server.setFileSystem(fileSystem);
    // finds an open port
    server.setServerControlPort(0);
    ExportUploadService exportUploadService = new ExportUploadService(exportSubmissionService, null, new TestEmailController());
    try {
        server.start();
        int ftpPort = server.getServerControlPort();
        exportUploadService.setConnectionDetails(ftpHost, ftpPort, ftpUser, ftpPassword, baseDirectory);
        exportUploadService.updateRunningUploads();
    } finally {
        server.stop();
    }
    assertEquals("sample2 should have processing state", ExportUploadState.PROCESSED_OK, sample2.getSubmissionStatus());
    assertEquals("sample2 should have an accession", newAccession, sample2.getAccession());
}
Also used : NcbiExportSubmission(ca.corefacility.bioinformatics.irida.model.NcbiExportSubmission) Set(java.util.Set) FakeFtpServer(org.mockftpserver.fake.FakeFtpServer) DirectoryEntry(org.mockftpserver.fake.filesystem.DirectoryEntry) NcbiBioSampleFiles(ca.corefacility.bioinformatics.irida.model.export.NcbiBioSampleFiles) UnixFakeFileSystem(org.mockftpserver.fake.filesystem.UnixFakeFileSystem) FileSystem(org.mockftpserver.fake.filesystem.FileSystem) UnixFakeFileSystem(org.mockftpserver.fake.filesystem.UnixFakeFileSystem) FileEntry(org.mockftpserver.fake.filesystem.FileEntry) TestEmailController(ca.corefacility.bioinformatics.irida.service.impl.TestEmailController) UserAccount(org.mockftpserver.fake.UserAccount) Test(org.junit.Test)

Example 3 with DirectoryEntry

use of org.mockftpserver.fake.filesystem.DirectoryEntry in project irida by phac-nml.

the class ExportUploadServiceTest method testUploadSubmission.

@Test
public void testUploadSubmission() throws UploadException, IOException {
    NcbiExportSubmission submission = createFakeSubmission();
    String ftpHost = "localhost";
    String ftpUser = "test";
    String ftpPassword = "password";
    String baseDirectory = "/home/test/submit/Test";
    FakeFtpServer server = new FakeFtpServer();
    server.addUserAccount(new UserAccount(ftpUser, ftpPassword, "/home/test"));
    FileSystem fileSystem = new UnixFakeFileSystem();
    fileSystem.add(new DirectoryEntry(baseDirectory));
    server.setFileSystem(fileSystem);
    // finds an open port
    server.setServerControlPort(0);
    ExportUploadService exportUploadService = new ExportUploadService(null, null, new TestEmailController());
    try {
        server.start();
        int ftpPort = server.getServerControlPort();
        exportUploadService.setConnectionDetails(ftpHost, ftpPort, ftpUser, ftpPassword, baseDirectory);
        String xml = "<xml></xml>";
        exportUploadService.uploadSubmission(submission, xml);
    } finally {
        server.stop();
    }
    @SuppressWarnings("unchecked") List<String> listNames = fileSystem.listNames(baseDirectory);
    assertEquals("submission directory exists", 1, listNames.size());
    String createdDirectory = baseDirectory + "/" + listNames.iterator().next();
    assertTrue("submission.xml created", fileSystem.exists(createdDirectory + "/submission.xml"));
    assertTrue("submit.ready created", fileSystem.exists(createdDirectory + "/submit.ready"));
    SequenceFile createdFile = submission.getBioSampleFiles().iterator().next().getFiles().iterator().next().getSequenceFile();
    assertTrue("seqfile created", fileSystem.exists(createdDirectory + "/" + createdFile.getId() + ".fastq"));
}
Also used : NcbiExportSubmission(ca.corefacility.bioinformatics.irida.model.NcbiExportSubmission) FakeFtpServer(org.mockftpserver.fake.FakeFtpServer) DirectoryEntry(org.mockftpserver.fake.filesystem.DirectoryEntry) UnixFakeFileSystem(org.mockftpserver.fake.filesystem.UnixFakeFileSystem) SequenceFile(ca.corefacility.bioinformatics.irida.model.sequenceFile.SequenceFile) SingleEndSequenceFile(ca.corefacility.bioinformatics.irida.model.sequenceFile.SingleEndSequenceFile) FileSystem(org.mockftpserver.fake.filesystem.FileSystem) UnixFakeFileSystem(org.mockftpserver.fake.filesystem.UnixFakeFileSystem) TestEmailController(ca.corefacility.bioinformatics.irida.service.impl.TestEmailController) UserAccount(org.mockftpserver.fake.UserAccount) Test(org.junit.Test)

Example 4 with DirectoryEntry

use of org.mockftpserver.fake.filesystem.DirectoryEntry in project nifi by apache.

the class TestFTP method setUp.

@Before
public void setUp() throws Exception {
    fakeFtpServer.setServerControlPort(0);
    fakeFtpServer.addUserAccount(new UserAccount(username, password, "c:\\data"));
    FileSystem fileSystem = new WindowsFakeFileSystem();
    fileSystem.add(new DirectoryEntry("c:\\data"));
    fakeFtpServer.setFileSystem(fileSystem);
    fakeFtpServer.start();
    ftpPort = fakeFtpServer.getServerControlPort();
}
Also used : WindowsFakeFileSystem(org.mockftpserver.fake.filesystem.WindowsFakeFileSystem) FileSystem(org.mockftpserver.fake.filesystem.FileSystem) WindowsFakeFileSystem(org.mockftpserver.fake.filesystem.WindowsFakeFileSystem) DirectoryEntry(org.mockftpserver.fake.filesystem.DirectoryEntry) UserAccount(org.mockftpserver.fake.UserAccount) Before(org.junit.Before)

Example 5 with DirectoryEntry

use of org.mockftpserver.fake.filesystem.DirectoryEntry in project irida by phac-nml.

the class ExportUploadServiceTest method testUploadSubmissionNoBaseDirectory.

@Test(expected = UploadException.class)
public void testUploadSubmissionNoBaseDirectory() throws UploadException, IOException {
    NcbiExportSubmission submission = createFakeSubmission();
    String ftpHost = "localhost";
    String ftpUser = "test";
    String ftpPassword = "password";
    String baseDirectory = "/home/test/submit/Test";
    FakeFtpServer server = new FakeFtpServer();
    server.addUserAccount(new UserAccount(ftpUser, ftpPassword, "/home/test"));
    FileSystem fileSystem = new UnixFakeFileSystem();
    fileSystem.add(new DirectoryEntry("/home/test"));
    server.setFileSystem(fileSystem);
    // finds an open port
    server.setServerControlPort(0);
    ExportUploadService exportUploadService = new ExportUploadService(null, null, new TestEmailController());
    try {
        server.start();
        int ftpPort = server.getServerControlPort();
        exportUploadService.setConnectionDetails(ftpHost, ftpPort, ftpUser, ftpPassword, baseDirectory);
        String xml = "<xml></xml>";
        exportUploadService.uploadSubmission(submission, xml);
    } finally {
        server.stop();
    }
}
Also used : NcbiExportSubmission(ca.corefacility.bioinformatics.irida.model.NcbiExportSubmission) FakeFtpServer(org.mockftpserver.fake.FakeFtpServer) UnixFakeFileSystem(org.mockftpserver.fake.filesystem.UnixFakeFileSystem) FileSystem(org.mockftpserver.fake.filesystem.FileSystem) UnixFakeFileSystem(org.mockftpserver.fake.filesystem.UnixFakeFileSystem) TestEmailController(ca.corefacility.bioinformatics.irida.service.impl.TestEmailController) DirectoryEntry(org.mockftpserver.fake.filesystem.DirectoryEntry) UserAccount(org.mockftpserver.fake.UserAccount) Test(org.junit.Test)

Aggregations

UserAccount (org.mockftpserver.fake.UserAccount)5 DirectoryEntry (org.mockftpserver.fake.filesystem.DirectoryEntry)5 FileSystem (org.mockftpserver.fake.filesystem.FileSystem)5 NcbiExportSubmission (ca.corefacility.bioinformatics.irida.model.NcbiExportSubmission)4 TestEmailController (ca.corefacility.bioinformatics.irida.service.impl.TestEmailController)4 Test (org.junit.Test)4 FakeFtpServer (org.mockftpserver.fake.FakeFtpServer)4 UnixFakeFileSystem (org.mockftpserver.fake.filesystem.UnixFakeFileSystem)4 NcbiBioSampleFiles (ca.corefacility.bioinformatics.irida.model.export.NcbiBioSampleFiles)2 Set (java.util.Set)2 FileEntry (org.mockftpserver.fake.filesystem.FileEntry)2 SequenceFile (ca.corefacility.bioinformatics.irida.model.sequenceFile.SequenceFile)1 SingleEndSequenceFile (ca.corefacility.bioinformatics.irida.model.sequenceFile.SingleEndSequenceFile)1 Before (org.junit.Before)1 WindowsFakeFileSystem (org.mockftpserver.fake.filesystem.WindowsFakeFileSystem)1