|  | @@ -0,0 +1,87 @@
 | 
											
												
													
														|  | 
 |  | +<?php
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +namespace Tests;
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +use StatonLab\TripalTestSuite\DBTransaction;
 | 
											
												
													
														|  | 
 |  | +use StatonLab\TripalTestSuite\TripalTestCase;
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +class FASTAImporterTest extends TripalTestCase {
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +  // Uncomment to auto start and rollback db transactions per test method.
 | 
											
												
													
														|  | 
 |  | +  use DBTransaction;
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +  /**
 | 
											
												
													
														|  | 
 |  | +   * Basic test example.
 | 
											
												
													
														|  | 
 |  | +   * Tests must begin with the word "test".
 | 
											
												
													
														|  | 
 |  | +   * See https://phpunit.readthedocs.io/en/latest/ for more information.
 | 
											
												
													
														|  | 
 |  | +   */
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +  /**
 | 
											
												
													
														|  | 
 |  | +   * @group fasta
 | 
											
												
													
														|  | 
 |  | +   * @group chado
 | 
											
												
													
														|  | 
 |  | +   */
 | 
											
												
													
														|  | 
 |  | +  public function testImporterAssociatesParentWithoutRegexp() {
 | 
											
												
													
														|  | 
 |  | +    module_load_include('inc', 'tripal_chado', 'includes/TripalImporter/FASTAImporter');
 | 
											
												
													
														|  | 
 |  | +    $importer = new \FASTAImporter();
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +    //this test will first create an organism and mrna features with the same name as devseed proteins.
 | 
											
												
													
														|  | 
 |  | +    //It will then load the devseed protein fasta via the importer.
 | 
											
												
													
														|  | 
 |  | +    //Finally it will ensure feature_relationships exist with the test mrna.
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +    $organism = factory('chado.organism')->create();
 | 
											
												
													
														|  | 
 |  | +    $mrna_term = chado_get_cvterm(['id' => 'SO:0000234']);
 | 
											
												
													
														|  | 
 |  | +    $analysis = factory('chado.analysis')->create();
 | 
											
												
													
														|  | 
 |  | +    $mrna_1 = factory('chado.feature')->create([
 | 
											
												
													
														|  | 
 |  | +      'type_id' => $mrna_term->cvterm_id,
 | 
											
												
													
														|  | 
 |  | +      'organism_id' => $organism->organism_id,
 | 
											
												
													
														|  | 
 |  | +      'name' => 'FRAEX38873_v2_000000010.1',
 | 
											
												
													
														|  | 
 |  | +      'uniquename' => 'FRAEX38873_v2_000000010.1',
 | 
											
												
													
														|  | 
 |  | +    ]);
 | 
											
												
													
														|  | 
 |  | +    $mrna_2 = factory('chado.feature')->create([
 | 
											
												
													
														|  | 
 |  | +      'type_id' => $mrna_term->cvterm_id,
 | 
											
												
													
														|  | 
 |  | +      'organism_id' => $organism->organism_id,
 | 
											
												
													
														|  | 
 |  | +      'name' => 'FRAEX38873_v2_000000010.2',
 | 
											
												
													
														|  | 
 |  | +      'uniquename' => 'FRAEX38873_v2_000000010.2',
 | 
											
												
													
														|  | 
 |  | +    ]);
 | 
											
												
													
														|  | 
 |  | +    $file = ['file_local' => __DIR__ . '/../data/two_prots.fasta'];
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +    $run_args = [
 | 
											
												
													
														|  | 
 |  | +      'analysis_id' => $analysis->analysis_id,
 | 
											
												
													
														|  | 
 |  | +      'organism_id' => $organism->organism_id,
 | 
											
												
													
														|  | 
 |  | +      'seqtype' => 'polypeptide',
 | 
											
												
													
														|  | 
 |  | +      'parent_type' => "mRNA",
 | 
											
												
													
														|  | 
 |  | +      'rel_type' => "derives_from",
 | 
											
												
													
														|  | 
 |  | +      'method' => '2',
 | 
											
												
													
														|  | 
 |  | +      'match_type' => '1',
 | 
											
												
													
														|  | 
 |  | +      're_name' => "",
 | 
											
												
													
														|  | 
 |  | +      're_uname' => "",
 | 
											
												
													
														|  | 
 |  | +      're_accession' => "",
 | 
											
												
													
														|  | 
 |  | +      'db_id' => "",
 | 
											
												
													
														|  | 
 |  | +      're_subject' => "",
 | 
											
												
													
														|  | 
 |  | +      'match_type' => "1",
 | 
											
												
													
														|  | 
 |  | +    ];
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +    $importer->create($run_args, $file);
 | 
											
												
													
														|  | 
 |  | +    $importer->prepareFiles();
 | 
											
												
													
														|  | 
 |  | +    $importer->run();
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +    $result = db_select('chado.feature', 'f')
 | 
											
												
													
														|  | 
 |  | +      ->fields('f')
 | 
											
												
													
														|  | 
 |  | +      ->condition('f.organism_id', $organism->organism_id)
 | 
											
												
													
														|  | 
 |  | +      ->execute()
 | 
											
												
													
														|  | 
 |  | +      ->fetchAll();
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +    $this->assertNotEquals(2, count($result), 'The child features were not loaded when a regexp was not provided.');
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +    $result = db_select('chado.feature_relationship', 'fr')
 | 
											
												
													
														|  | 
 |  | +      ->fields('fr')
 | 
											
												
													
														|  | 
 |  | +      ->condition('fr.object_id', $mrna_1->feature_id)
 | 
											
												
													
														|  | 
 |  | +      ->join('chado.feature', 'f', 'f.feature_id = fr.subject_id')
 | 
											
												
													
														|  | 
 |  | +      ->execute()
 | 
											
												
													
														|  | 
 |  | +      ->fetchObject();
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +    $this->assertNotFalse($result, 'relationship was not added to parente feature when regexp not provided (same parent/child name).');
 | 
											
												
													
														|  | 
 |  | +  }
 | 
											
												
													
														|  | 
 |  | +}
 |