Search in sources :

Example 1 with ToCassandraBag

use of org.pygmalion.udf.ToCassandraBag in project pygmalion by jeromatron.

the class ToCassandraBagTest method test.

@Test
public void test() throws Exception {
    ToCassandraBag tcb = new ToCassandraBag();
    UDFContext context = UDFContext.getUDFContext();
    Properties properties = context.getUDFProperties(ToCassandraBag.class);
    Tuple input = new DefaultTuple();
    StringBuilder builder = new StringBuilder();
    for (int i = 0; i < fields.length; i++) {
        builder.append(fields[i]);
        input.append("foo" + i);
        if (i < fields.length - 1) {
            builder.append(',');
        }
    }
    properties.setProperty(ToCassandraBag.UDFCONTEXT_SCHEMA_KEY + ".default_context", builder.toString());
    Tuple tuple = tcb.exec(input);
    assertNotNull("Tuple is null", tuple);
    assertEquals(2, tuple.size());
    //first is the key, rest is a set of columns
    Object one = tuple.get(0);
    assertTrue(one instanceof String);
    Object two = tuple.get(1);
    assertTrue(two instanceof DataBag);
    //Bad input
    input = new DefaultTuple();
    input.append(null);
    input.append("foo");
    try {
        tcb.exec(input);
        assertTrue(false);
    } catch (IOException e) {
    //expected
    }
    input = new DefaultTuple();
    builder.setLength(0);
    for (int i = 0; i < fields.length - 1; i++) {
        builder.append(fields[i]);
        input.append("foo" + i);
        if (i < fields.length - 1) {
            builder.append(',');
        }
    }
    properties.setProperty(ToCassandraBag.UDFCONTEXT_SCHEMA_KEY + ".default_context", builder.toString());
    input.append("foo extra");
    try {
        tcb.exec(input);
        assertTrue(false);
    } catch (IOException e) {
    }
}
Also used : DataBag(org.apache.pig.data.DataBag) ToCassandraBag(org.pygmalion.udf.ToCassandraBag) DefaultTuple(org.apache.pig.data.DefaultTuple) UDFContext(org.apache.pig.impl.util.UDFContext) IOException(java.io.IOException) Properties(java.util.Properties) DefaultTuple(org.apache.pig.data.DefaultTuple) Tuple(org.apache.pig.data.Tuple) Test(org.junit.Test)

Aggregations

IOException (java.io.IOException)1 Properties (java.util.Properties)1 DataBag (org.apache.pig.data.DataBag)1 DefaultTuple (org.apache.pig.data.DefaultTuple)1 Tuple (org.apache.pig.data.Tuple)1 UDFContext (org.apache.pig.impl.util.UDFContext)1 Test (org.junit.Test)1 ToCassandraBag (org.pygmalion.udf.ToCassandraBag)1