Mock Aerospike Java Client

Mock Aerospike Java Client - Allows for mocking & unit testing

License

License

Categories

Categories

Java Languages
GroupId

GroupId

com.github.srini156
ArtifactId

ArtifactId

mock-aerospike-java
Last Version

Last Version

0.0.6
Release Date

Release Date

Type

Type

jar
Description

Description

Mock Aerospike Java Client
Mock Aerospike Java Client - Allows for mocking & unit testing
Project URL

Project URL

https://github.com/srini156/mock-aersopike
Source Code Management

Source Code Management

https://github.com/srini156/mock-aersopike

Download mock-aerospike-java

How to add to project

<!-- https://jarcasting.com/artifacts/com.github.srini156/mock-aerospike-java/ -->
<dependency>
    <groupId>com.github.srini156</groupId>
    <artifactId>mock-aerospike-java</artifactId>
    <version>0.0.6</version>
</dependency>
// https://jarcasting.com/artifacts/com.github.srini156/mock-aerospike-java/
implementation 'com.github.srini156:mock-aerospike-java:0.0.6'
// https://jarcasting.com/artifacts/com.github.srini156/mock-aerospike-java/
implementation ("com.github.srini156:mock-aerospike-java:0.0.6")
'com.github.srini156:mock-aerospike-java:jar:0.0.6'
<dependency org="com.github.srini156" name="mock-aerospike-java" rev="0.0.6">
  <artifact name="mock-aerospike-java" type="jar" />
</dependency>
@Grapes(
@Grab(group='com.github.srini156', module='mock-aerospike-java', version='0.0.6')
)
libraryDependencies += "com.github.srini156" % "mock-aerospike-java" % "0.0.6"
[com.github.srini156/mock-aerospike-java "0.0.6"]

Dependencies

compile (2)

Group / Artifact Type Version
com.aerospike : aerospike-client jar 4.4.9
org.testng : testng jar 7.1.0

Project Modules

There are no modules declared in this project.

mock-aerospike

Just use MockAerospikeClient implementation for the interface IAerospikeClient in your unit tests.

Goals

  • Lightweight & Embedded
  • Easy to use (implements the same interface)
  • Reduce effort in unit testing
  • Allow extensibility

Issues with IAerospikeClient

Currently, Aerospike provides for IAerospikeClient (in Java) with sole intention of making AerospikeClient testable. However, there are few issues pointed out - https://github.com/aerospike/aerospike-client-java/issues/34

  • Don't mock what you don't own (Mocking IAerospikeClient, then mocking Record).

Better approach to testing is to create MockAerospikeClient which implements IAerospikeClient, thus avoiding mocking RecordSet and Record itself.

Implementation

MockAerospikeClient implements IAerospikeClient (version - 4.4.9)
Currently, MockAerospikeClient supports the following methods:

  • put
  • get
  • delete
  • exists
  • getHeader

MockAerospikeClient internally uses a HashMap to store Record corresponding to a Key

Setup

  • Maven
  • Java 1.8 or greater

Usage

  • pom.xml
    Add the following dependency to your pom.xml
<dependency>
  <groupId>com.github.srini156</groupId>
  <artifactId>mock-aerospike-java</artifactId>
  <version>0.0.4</version>
</dependency>
  • Code
  MockAerospikeClient client = new MockAerospikeClient();
  //Put entry into Aerospike
  client.put(null, new Key("namespace", "set", "key"), new Bin[] { new Bin("bin1", "value1") });
  //Fetch entry from Aerospike
  client.get(null, new Key("namespace","set","key"));

Contributions

It is currently alpha and WIP. Contributions are welcome, please raise a pull request.

Versions

Version
0.0.6
0.0.5
0.0.4
0.0.2
0.0.1