// Path: org.eclipselabs.plugindependencies.core.test/src/org/eclipselabs/plugindependencies/core/fixture/BaseTest.java
// @FixMethodOrder(MethodSorters.NAME_ASCENDING)
// public class BaseTest {
// 
//     @Before
//     public void setup() throws Exception {
//         //
//     }
// 
//     @After
//     public void tearDown() throws Exception {
//         //
//     }
// 
//     protected static String fix(String s){
//         if(s == null){
//             return null;
//         }
//         return s.replace('\\', '/');
//     }
// 
//     @Rule
//     public TestFailReporter failReporter= new TestFailReporter();
// 
//     public class TestFailReporter extends TestWatcher {
// 
//         @Override
//         protected void starting(Description description) {
//             System.out.println("STARTING " + description.toString());
//         }
//         @Override
//         protected void failed(Throwable e, Description description) {
//             System.out.println("FAIL in " + description.toString());
//             e.printStackTrace(System.out);
//         }
// 
//         @Override
//         protected void succeeded(Description description) {
//             System.out.println("PASS in " + description.toString());
//         }
//     }
// }


import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotEquals;
import java.util.LinkedHashSet;
import java.util.Set;
import org.eclipselabs.plugindependencies.core.fixture.BaseTest;
import org.junit.AfterClass;
import org.junit.BeforeClass;
import org.junit.FixMethodOrder;
import org.junit.Test;
import org.junit.runners.MethodSorters;
    DependencyResolver depres;

    @BeforeClass
    public static void setUpBeforeClass() throws Exception {
        feature1 = new Feature("com.company.core", "3.4.5");
        feature2 = new Feature("com.company.core", "1.2.0");
        featureSet = new LinkedHashSet<Feature>();
        featureSet.add(new Feature("org.eclipse.p1", "1.2.3"));
        featureSet.add(new Feature("org.eclipse.p2", "4.5.6"));
        featureSet.add(new Feature("com.example.itee.ate", "3.5.8"));
        featureSet.add(new Feature("com.example.result", "99.0.0"));
        featureSet.add(new Feature("com.company.itee.core", "3.8.2"));
        featureSet.add(new Feature("com.company.tables", "9.2.0"));
        featureSet.add(feature1);
        featureSet.add(feature2);
        packageSet = new LinkedHashSet<Package>();
        pluginSet = new LinkedHashSet<Plugin>();
    }

    @AfterClass
    public static void tearDownAfterClass() throws Exception {
        packageSet = null;
        feature1 = null;
        feature2 = null;
        pluginSet = null;
        featureSet = null;
    }

    @Test
    public void testSearchFeatureWrongPara() {
// Path: org.eclipselabs.plugindependencies.core.test/src/org/eclipselabs/plugindependencies/core/fixture/BaseTest.java
// @FixMethodOrder(MethodSorters.NAME_ASCENDING)
// public class BaseTest {
// 
//     @Before
//     public void setup() throws Exception {
//         //
//     }
// 
//     @After
//     public void tearDown() throws Exception {
//         //
//     }
// 
//     protected static String fix(String s){
//         if(s == null){
//             return null;
//         }
//         return s.replace('\\', '/');
//     }
// 
//     @Rule
//     public TestFailReporter failReporter= new TestFailReporter();
// 
//     public class TestFailReporter extends TestWatcher {
// 
//         @Override
//         protected void starting(Description description) {
//             System.out.println("STARTING " + description.toString());
//         }
//         @Override
//         protected void failed(Throwable e, Description description) {
//             System.out.println("FAIL in " + description.toString());
//             e.printStackTrace(System.out);
//         }
// 
//         @Override
//         protected void succeeded(Description description) {
//             System.out.println("PASS in " + description.toString());
//         }
//     }
// }


// Path: org.eclipselabs.plugindependencies.core.test/src/org/eclipselabs/plugindependencies/core/TestDepResSearchMethodFeature.java
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotEquals;
import java.util.LinkedHashSet;
import java.util.Set;
import org.eclipselabs.plugindependencies.core.fixture.BaseTest;
import org.junit.AfterClass;
import org.junit.BeforeClass;
import org.junit.FixMethodOrder;
import org.junit.Test;
import org.junit.runners.MethodSorters;

    DependencyResolver depres;

    @BeforeClass
    public static void setUpBeforeClass() throws Exception {
        feature1 = new Feature("com.company.core", "3.4.5");
        feature2 = new Feature("com.company.core", "1.2.0");
        featureSet = new LinkedHashSet<Feature>();
        featureSet.add(new Feature("org.eclipse.p1", "1.2.3"));
        featureSet.add(new Feature("org.eclipse.p2", "4.5.6"));
        featureSet.add(new Feature("com.example.itee.ate", "3.5.8"));
        featureSet.add(new Feature("com.example.result", "99.0.0"));
        featureSet.add(new Feature("com.company.itee.core", "3.8.2"));
        featureSet.add(new Feature("com.company.tables", "9.2.0"));
        featureSet.add(feature1);
        featureSet.add(feature2);
        packageSet = new LinkedHashSet<Package>();
        pluginSet = new LinkedHashSet<Plugin>();
    }

    @AfterClass
    public static void tearDownAfterClass() throws Exception {
        packageSet = null;
        feature1 = null;
        feature2 = null;
        pluginSet = null;
        featureSet = null;
    }

    @Test
    public void testSearchFeatureWrongPara() {
        depres = new DependencyResolver(pluginSet, packageSet, featureSet);