/*
 * This file was automatically generated by EvoSuite
 * Thu Sep 20 12:59:33 GMT 2018
 */

package uk.ac.sanger.artemis.components;

import org.junit.Test;
import static org.junit.Assert.*;
import static org.evosuite.runtime.EvoAssertions.*;
import org.evosuite.runtime.EvoRunner;
import org.evosuite.runtime.EvoRunnerParameters;
import org.junit.runner.RunWith;
import uk.ac.sanger.artemis.Feature;
import uk.ac.sanger.artemis.components.TransferFeaturePredicate;
import uk.ac.sanger.artemis.io.EmblStreamFeature;

@RunWith(EvoRunner.class) @EvoRunnerParameters(mockJVMNonDeterminism = true, useVFS = true, useVNET = true, resetStaticState = true, useJEE = true) 
public class TransferFeaturePredicate_ESTest extends TransferFeaturePredicate_ESTest_scaffolding {

  @Test(timeout = 4000)
  public void test0()  throws Throwable  {
      EmblStreamFeature emblStreamFeature0 = new EmblStreamFeature();
      assertNotNull(emblStreamFeature0);
      
      Feature feature0 = new Feature(emblStreamFeature0);
      assertNotNull(feature0);
      assertFalse(feature0.isReadOnly());
      
      String[] stringArray0 = new String[1];
      stringArray0[0] = "Vnsp!.eb'";
      TransferFeaturePredicate transferFeaturePredicate0 = new TransferFeaturePredicate("ZE", false, false, stringArray0);
      assertNotNull(transferFeaturePredicate0);
      assertEquals(1, stringArray0.length);
      
      boolean boolean0 = transferFeaturePredicate0.testPredicate(feature0);
      assertFalse(boolean0);
      assertEquals(1, stringArray0.length);
      assertFalse(feature0.isReadOnly());
  }

  @Test(timeout = 4000)
  public void test1()  throws Throwable  {
      EmblStreamFeature emblStreamFeature0 = new EmblStreamFeature();
      assertNotNull(emblStreamFeature0);
      
      Feature feature0 = new Feature(emblStreamFeature0);
      assertNotNull(feature0);
      assertFalse(feature0.isReadOnly());
      
      TransferFeaturePredicate transferFeaturePredicate0 = new TransferFeaturePredicate("v[HcFEoubWHmgLcy's", false, true, (String[]) null);
      assertNotNull(transferFeaturePredicate0);
      
      // Undeclared exception!
      try { 
        transferFeaturePredicate0.testPredicate(feature0);
        fail("Expecting exception: ClassCastException");
      
      } catch(ClassCastException e) {
         //
         // uk.ac.sanger.artemis.io.EmblStreamFeature cannot be cast to uk.ac.sanger.artemis.io.GFFStreamFeature
         //
         verifyException("uk.ac.sanger.artemis.components.TransferFeaturePredicate", e);
      }
  }

  @Test(timeout = 4000)
  public void test2()  throws Throwable  {
      EmblStreamFeature emblStreamFeature0 = new EmblStreamFeature();
      assertNotNull(emblStreamFeature0);
      
      Feature feature0 = new Feature(emblStreamFeature0);
      assertNotNull(feature0);
      assertFalse(feature0.isReadOnly());
      
      String[] stringArray0 = new String[7];
      TransferFeaturePredicate transferFeaturePredicate0 = new TransferFeaturePredicate("'o^", true, true, stringArray0);
      assertNotNull(transferFeaturePredicate0);
      assertEquals(7, stringArray0.length);
      
      boolean boolean0 = transferFeaturePredicate0.testPredicate(feature0);
      assertFalse(boolean0);
      assertEquals(7, stringArray0.length);
      assertFalse(feature0.isReadOnly());
  }

  @Test(timeout = 4000)
  public void test3()  throws Throwable  {
      EmblStreamFeature emblStreamFeature0 = new EmblStreamFeature();
      Feature feature0 = new Feature(emblStreamFeature0);
      String[] stringArray0 = new String[1];
      TransferFeaturePredicate transferFeaturePredicate0 = new TransferFeaturePredicate("ZE", false, false, stringArray0);
      // Undeclared exception!
      try { 
        transferFeaturePredicate0.testPredicate(feature0);
        fail("Expecting exception: NullPointerException");
      
      } catch(NullPointerException e) {
      }
  }

  @Test(timeout = 4000)
  public void test4()  throws Throwable  {
      String[] stringArray0 = new String[7];
      TransferFeaturePredicate transferFeaturePredicate0 = new TransferFeaturePredicate("'o^", true, true, stringArray0);
      String string0 = transferFeaturePredicate0.getGeneName();
      assertNull(string0);
  }
}
