You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@accumulo.apache.org by Joe Berk <jo...@gmail.com> on 2012/09/25 14:47:13 UTC
Mock classes for JUnit Testing
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
Re: Mock classes for JUnit Testing
Posted by Joe Berk <jo...@gmail.com>.
Adam,
Thank you for the reply. I'll inspect what jars I could be missing & try
this again.
Thanks,
Josh
On Tue, Sep 25, 2012 at 9:46 AM, Adam Fuchs <af...@apache.org> wrote:
> 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" <jo...@gmail.com> 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 <ke...@deenlo.com> wrote:
>>
>>> Did you create the table using mockConn.tableOperations().create()?
>>>
>>> On Tue, Sep 25, 2012 at 8:47 AM, Joe Berk <jo...@gmail.com>
>>> 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
>>>
>>
>>
Re: Mock classes for JUnit Testing
Posted by Adam Fuchs <af...@apache.org>.
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" <jo...@gmail.com> 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 <ke...@deenlo.com> wrote:
>
>> Did you create the table using mockConn.tableOperations().create()?
>>
>> On Tue, Sep 25, 2012 at 8:47 AM, Joe Berk <jo...@gmail.com>
>> 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
>>
>
>
Re: Mock classes for JUnit Testing
Posted by Joe Berk <jo...@gmail.com>.
Awesome!
Thanks guys! It WAS a missing jar issue. We've recently done some
conversions to maven and i guess some of the jars were left out in the cold
during the transition.
I really appreciate the help!
Best Regards,
Josh
On Tue, Sep 25, 2012 at 10:12 AM, John Armstrong <jr...@ccri.com> wrote:
> On 09/25/2012 10:07 AM, Keith Turner wrote:
>
>> I blame Christopher... I was having a discussion w/ him about the
>> search space of solving a rubicks cube while typing the email :)
>>
>
> Well now you've got me all curious.
>
Re: Mock classes for JUnit Testing
Posted by Joe Berk <jo...@gmail.com>.
:)
On Tue, Sep 25, 2012 at 10:20 AM, Keith Turner <ke...@deenlo.com> wrote:
> On Tue, Sep 25, 2012 at 10:12 AM, John Armstrong <jr...@ccri.com> wrote:
> > On 09/25/2012 10:07 AM, Keith Turner wrote:
> >>
> >> I blame Christopher... I was having a discussion w/ him about the
> >> search space of solving a rubicks cube while typing the email :)
> >
> >
> > Well now you've got me all curious.
>
> Christopher was exploring the concept of an Accumulo example that
> involving Rubiks cube. He can elaborate.
>
Re: Mock classes for JUnit Testing
Posted by Billie Rinaldi <bi...@apache.org>.
On Tue, Sep 25, 2012 at 7:20 AM, Keith Turner <ke...@deenlo.com> wrote:
> On Tue, Sep 25, 2012 at 10:12 AM, John Armstrong <jr...@ccri.com> wrote:
> > On 09/25/2012 10:07 AM, Keith Turner wrote:
> >>
> >> I blame Christopher... I was having a discussion w/ him about the
> >> search space of solving a rubicks cube while typing the email :)
> >
> >
> > Well now you've got me all curious.
>
> Christopher was exploring the concept of an Accumulo example that
> involving Rubiks cube. He can elaborate.
>
+1
Re: Mock classes for JUnit Testing
Posted by Keith Turner <ke...@deenlo.com>.
On Tue, Sep 25, 2012 at 10:12 AM, John Armstrong <jr...@ccri.com> wrote:
> On 09/25/2012 10:07 AM, Keith Turner wrote:
>>
>> I blame Christopher... I was having a discussion w/ him about the
>> search space of solving a rubicks cube while typing the email :)
>
>
> Well now you've got me all curious.
Christopher was exploring the concept of an Accumulo example that
involving Rubiks cube. He can elaborate.
Re: Mock classes for JUnit Testing
Posted by Jim Klucar <kl...@gmail.com>.
****Tower to Accumulo thread. Tower to Accumulo thread. We've received
a distress call. Are you in danger of being hijacked, or has the
Rubik's cube problem space already taken over?
On Tue, Sep 25, 2012 at 10:12 AM, John Armstrong <jr...@ccri.com> wrote:
> On 09/25/2012 10:07 AM, Keith Turner wrote:
>>
>> I blame Christopher... I was having a discussion w/ him about the
>> search space of solving a rubicks cube while typing the email :)
>
>
> Well now you've got me all curious.
Re: Mock classes for JUnit Testing
Posted by John Armstrong <jr...@ccri.com>.
On 09/25/2012 10:07 AM, Keith Turner wrote:
> I blame Christopher... I was having a discussion w/ him about the
> search space of solving a rubicks cube while typing the email :)
Well now you've got me all curious.
Re: Mock classes for JUnit Testing
Posted by Keith Turner <ke...@deenlo.com>.
I blame Christopher... I was having a discussion w/ him about the
search space of solving a rubicks cube while typing the email :) So
when I started there was no response... then I took a long type to
type... then I sent and saw your response.
On Tue, Sep 25, 2012 at 10:03 AM, Adam Fuchs <af...@apache.org> wrote:
> Too slow, Keith! :)
>
> Adam
>
> On Sep 25, 2012 9:55 AM, "Keith Turner" <ke...@deenlo.com> wrote:
>>
>> What I think is going is that the class MockTableOperations references
>> org.apache.commons.lang.NotImplementedException. When you try to load
>> the class MockTableOperations, it tries to load the dependency
>> NotImplementedException which is not on your class path.
>>
>> On Tue, Sep 25, 2012 at 9:29 AM, Joe Berk <jo...@gmail.com> 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 <ke...@deenlo.com> wrote:
>> >>
>> >> Did you create the table using mockConn.tableOperations().create()?
>> >>
>> >> On Tue, Sep 25, 2012 at 8:47 AM, Joe Berk <jo...@gmail.com>
>> >> 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
>> >
>> >
Re: Mock classes for JUnit Testing
Posted by Adam Fuchs <af...@apache.org>.
Too slow, Keith! :)
Adam
On Sep 25, 2012 9:55 AM, "Keith Turner" <ke...@deenlo.com> wrote:
> What I think is going is that the class MockTableOperations references
> org.apache.commons.lang.NotImplementedException. When you try to load
> the class MockTableOperations, it tries to load the dependency
> NotImplementedException which is not on your class path.
>
> On Tue, Sep 25, 2012 at 9:29 AM, Joe Berk <jo...@gmail.com> 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 <ke...@deenlo.com> wrote:
> >>
> >> Did you create the table using mockConn.tableOperations().create()?
> >>
> >> On Tue, Sep 25, 2012 at 8:47 AM, Joe Berk <jo...@gmail.com>
> 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
> >
> >
>
Re: Mock classes for JUnit Testing
Posted by Keith Turner <ke...@deenlo.com>.
What I think is going is that the class MockTableOperations references
org.apache.commons.lang.NotImplementedException. When you try to load
the class MockTableOperations, it tries to load the dependency
NotImplementedException which is not on your class path.
On Tue, Sep 25, 2012 at 9:29 AM, Joe Berk <jo...@gmail.com> 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 <ke...@deenlo.com> wrote:
>>
>> Did you create the table using mockConn.tableOperations().create()?
>>
>> On Tue, Sep 25, 2012 at 8:47 AM, Joe Berk <jo...@gmail.com> 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
>
>
Re: Mock classes for JUnit Testing
Posted by Joe Berk <jo...@gmail.com>.
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 <ke...@deenlo.com> wrote:
> Did you create the table using mockConn.tableOperations().create()?
>
> On Tue, Sep 25, 2012 at 8:47 AM, Joe Berk <jo...@gmail.com> 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
>
Re: Mock classes for JUnit Testing
Posted by Keith Turner <ke...@deenlo.com>.
Did you create the table using mockConn.tableOperations().create()?
On Tue, Sep 25, 2012 at 8:47 AM, Joe Berk <jo...@gmail.com> 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
Re: Mock classes for JUnit Testing
Posted by Adam Fuchs <af...@apache.org>.
Josh,
Can you post the stack trace that came with the NPE?
Adam
On Sep 25, 2012 8:47 AM, "Joe Berk" <jo...@gmail.com> 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
>