| /* |
| * Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the |
| * NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF |
| * licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file |
| * except in compliance with the License. You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software distributed under the License is |
| * distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| * See the License for the specific language governing permissions and limitations under the License. |
| */ |
| |
| package org.apache.pig.piggybank.test.storage; |
| |
| import java.util.ArrayList; |
| import java.util.Iterator; |
| import java.util.regex.Pattern; |
| |
| import junit.framework.TestCase; |
| |
| import org.apache.pig.PigServer; |
| import org.apache.pig.data.DataByteArray; |
| import org.apache.pig.data.Tuple; |
| import static org.apache.pig.ExecType.LOCAL; |
| |
| public class TestMyRegExLoader extends TestCase { |
| private static String patternString = "(\\d+)!+(\\w+)~+(\\w+)"; |
| private final static Pattern pattern = Pattern.compile(patternString); |
| public static ArrayList<String[]> data = new ArrayList<String[]>(); |
| static { |
| data.add(new String[] { "1!!!one~i" }); |
| data.add(new String[] { "2!!two~~ii" }); |
| data.add(new String[] { "3!three~~~iii" }); |
| } |
| |
| public void testLoadMyRegExFromPigServer() throws Exception { |
| ArrayList<DataByteArray[]> expected = TestHelper.getExpected(data, pattern); |
| String filename = TestHelper.createTempFile(data, ""); |
| PigServer pig = new PigServer(LOCAL); |
| filename = filename.replace("\\", "\\\\"); |
| patternString = patternString.replace("\\", "\\\\"); |
| String query = "A = LOAD '" + filename + "' USING org.apache.pig.piggybank.storage.MyRegExLoader('" + patternString + "');"; |
| pig.registerQuery(query); |
| Iterator<?> it = pig.openIterator("A"); |
| int tupleCount = 0; |
| while (it.hasNext()) { |
| Tuple tuple = (Tuple) it.next(); |
| if (tuple == null) |
| break; |
| else { |
| TestHelper.examineTuple(expected, tuple, tupleCount); |
| tupleCount++; |
| } |
| } |
| assertEquals(data.size(), tupleCount); |
| } |
| } |