Home | About | Sematext search-lucene.com search-hadoop.com
 Search Hadoop and all its subprojects:

Switch to Threaded View
Accumulo >> mail # user >> Mock classes for JUnit Testing


Copy link to this message
-
Re: Mock classes for JUnit Testing
Josh,

This is a classpath problem. The JVM is failing to load the
MockTableOperations class because it has an include line that references
that NotImplementedException class. Try adding all of the jars from
Accumulo's lib directory to your classpath.

Adam
On Sep 25, 2012 9:30 AM, "Joe Berk" <[EMAIL PROTECTED]> wrote:

> Thanks for responding, Keith.
>
> When I execute the following lines:
>
>
> MockInstance    instance  = new MockInstance();
> MockConnector connector = (MockConnector) instance.getConnector(*UserName*,
> *Password*);
> connector.tableOperations().create("SomeTable");
>
> I get a "caused by: java.lang.ClassNotFoundException:
> org/apache/commons/lang/NotImplementedException"
>
> & it throws the Exception on the 3rd line there:
> connector.tableOperations().create("SomeTable");
>
> Best Regards,
>
> Josh
>
>
>
>
> On Tue, Sep 25, 2012 at 8:54 AM, Keith Turner <[EMAIL PROTECTED]> wrote:
>
>> Did you create the table using mockConn.tableOperations().create()?
>>
>> On Tue, Sep 25, 2012 at 8:47 AM, Joe Berk <[EMAIL PROTECTED]>
>> wrote:
>> > Hello,
>> >
>> >
>> >
>> > I am trying to write JUnit tests for Accumulo and I keep running into
>> > dead-ends with the “Mock” classes.
>> >
>> >
>> >
>> > /*
>> >
>> >   * So, the following lines are how I would traditionally establish an
>> > instance to perform Accumulo reads or writes
>> >
>> >   */
>> >
>> >
>> >
>> > Instance       zooInstance    = new ZooKeeperInstance( InstanceName,
>> > ZooServers);
>> >
>> > Connector      connector      = zooInstance.getConnector(UserName,
>> > PassWord);
>> >
>> >
>> >
>> >
>> >
>> >
>> >
>> > /*
>> >
>> >   * The following lines would be how I would perform a write to Accumulo
>> >
>> >   */
>> >
>> >
>> >
>> > BatchWriter batchWriter   = configuration.getBatchWriter();
>> >
>> > Mutation    videoMutation = new Mutation(new Text( RowId ));
>> >
>> >
>> >
>> > videoMutation.put(ColumnFamily, ColumnQualifer, Value );
>> >
>> >
>> >
>> > batchWriter.addMutation(videoMutation);
>> >
>> > batchWriter.flush();
>> >
>> > batchWriter.close();
>> >
>> >
>> >
>> >
>> >
>> >
>> >
>> > /*
>> >
>> >   * The following lines would be how I would perform a read from
>> Accumulo
>> >
>> >   */
>> >
>> >
>> >
>> > Authorizations authorizations = new Authorizations();
>> >
>> > Scanner        scanner        = connector.createScanner(TableName,
>> > authorizations);
>> >
>> >
>> >
>> > scanner.setRange(new Range(RowId));
>> >
>> > scanner.fetchColumnFamily(columnFamily);
>> >
>> >
>> >
>> > Iterator<Entry<Key,Value>> iterator = scanner.iterator();
>> >
>> >
>> >
>> >
>> >
>> >
>> >
>> >
>> >
>> > So, I tried to repeat this process, but substituted:
>> >
>> >
>> >
>> > MockInstance instance = new MockInstance()
>> >
>> >                    Or
>> >
>> > Instance     instance = new MockInstance();
>> >
>> >
>> >
>> > and everything works great until I attempt to
>> addMutation(videoMutation).
>> > That throws a NullPointerException.
>> >
>> >
>> >
>> > I’ve also tried to use the MockConnector & even MockBatchWriter
>> classes, but
>> > have not had any success.
>> >
>> >
>> >
>> > I would really appreciate any help you could provide.
>> >
>> >
>> >
>> >
>> >
>> > Best Regards,
>> >
>> >
>> >
>> > Josh
>>
>
>