1 /* 2 * Licensed to the Apache Software Foundation (ASF) under one or more 3 * contributor license agreements. See the NOTICE file distributed with 4 * this work for additional information regarding copyright ownership. 5 * The ASF licenses this file to You under the Apache License, Version 2.0 6 * (the "License"); you may not use this file except in compliance with 7 * the License. You may obtain a copy of the License at 8 * 9 * http://www.apache.org/licenses/LICENSE-2.0 10 * 11 * Unless required by applicable law or agreed to in writing, software 12 * distributed under the License is distributed on an "AS IS" BASIS, 13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 * See the License for the specific language governing permissions and 15 * limitations under the License. 16 * 17 */ 18 19 package org.apache.bcel.util; 20 21 import java.util.Iterator; 22 23 import org.apache.bcel.AbstractTestCase; 24 import org.apache.bcel.generic.IADD; 25 import org.apache.bcel.generic.ILOAD; 26 import org.apache.bcel.generic.ISTORE; 27 import org.apache.bcel.generic.InstructionHandle; 28 import org.apache.bcel.generic.InstructionList; 29 30 public class InstructionFinderTest extends AbstractTestCase { 31 32 public void testSearch() { 33 final InstructionList il = new InstructionList(); 34 il.append(new ILOAD(1)); 35 il.append(new ILOAD(2)); 36 il.append(new IADD()); 37 il.append(new ISTORE(3)); 38 final InstructionFinder finder = new InstructionFinder(il); 39 40 final Iterator<?> it = finder.search("ILOAD IADD", il.getInstructionHandles()[0], null ); 41 final InstructionHandle[] ihs = (InstructionHandle[])it.next(); 42 assertEquals(2, ihs.length); 43 assertEquals(ihs[0].getInstruction(), new ILOAD(2)); 44 assertEquals(ihs[1].getInstruction(), new IADD()); 45 } 46 } 47