JCV-DB

JSON Content Validator for database (JCV-DB).

License

License

GroupId

GroupId

com.ekino.oss.jcv-db
ArtifactId

ArtifactId

jcv-db-core
Last Version

Last Version

0.0.4
Release Date

Release Date

Type

Type

pom.sha512
Description

Description

JCV-DB
JSON Content Validator for database (JCV-DB).
Project URL

Project URL

https://github.com/ekino/jcv-db
Project Organization

Project Organization

ekino
Source Code Management

Source Code Management

https://github.com/ekino/jcv-db

Download jcv-db-core

Dependencies

runtime (9)

Group / Artifact Type Version
org.jetbrains.kotlin : kotlin-stdlib-jdk8 jar 1.3.50
org.jetbrains.kotlin : kotlin-test-junit jar 1.3.50
org.jetbrains.kotlin : kotlin-reflect jar 1.3.50
com.ekino.oss.jcv : jcv-core jar 1.4.2
org.skyscreamer : jsonassert jar 1.5.0
org.json : json jar 20190722
commons-io : commons-io jar 2.6
com.fasterxml.jackson.core : jackson-databind jar 2.10.1
org.locationtech.jts : jts-core jar 1.16.1

Project Modules

There are no modules declared in this project.

JCV-DB

JSON Content Validator for Database (JCV-DB) allow you to compare database contents against a JSON with JCV validators.

Build Status GitHub (pre-)release Maven Central GitHub license

Table of contents

Summary

JCV-DB provides assertions to validate database content against a json file. The goal is for now to support SQL and NoSQL databases : PostgreSQL, MySQL, MSSQL, Cassandra and mongoDB. JCV validators are also supported making tests light and exhaustive.

Quick Start

Assertj-db

A JCV-DB module that supports Assertj-db. Only PostgreSQL, MySQL, MSSQL server are supported in this module.

Example

import static com.ekino.oss.jcv.db.assertj.DbComparatorAssertJ.assertThatTable

@Test
fun testContentTable() {
    assertThatTable(assertDb.table("table_name"))
    .isValidAgainst("""[
        {
            "id": "e3881fb1-b3dd-4701-b08c-f5d17389edfa",
            "number_field": 1,
            "boolean_field: true,
            "string_field": "Hello"
        }
    ]""".trimIndent())
}

Dependencies

Maven

<dependencies>
  ...
  <dependency>
    <groupId>org.skyscreamer</groupId>
    <artifactId>jsonassert</artifactId>
    <version>1.5.0</version>
    <scope>test</scope>
  </dependency>
  <dependency>
    <groupId>org.assertj</groupId>
    <artifactId>assertj-db</artifactId>
    <version>1.2.0</version>
    <scope>test</scope>
  </dependency>
  <dependency>
    <groupId>com.ekino.oss.jcv</groupId>
    <artifactId>jcv-core</artifactId>
    <version>1.4.1</version>
    <scope>test</scope>
  </dependency>
  <dependency>
    <groupId>com.ekino.oss.jcv-db</groupId>
    <artifactId>jcv-db-assertj-db</artifactId>
    <version>0.0.4</version>
    <scope>test</scope>
  </dependency>
  ...
</dependencies>

Gradle

dependencies {
    ...
    testImplementation 'org.skyscreamer:jsonassert:1.5.0'
    testImplementation 'org.assertj:assertj-db:1.2.0'
    testImplementation 'com.ekino.oss.jcv:jcv-core:1.4.1'
    testImplementation 'com.ekino.oss.jcv-db:jcv-db-assertj-db:0.0.3'
    ...
}

Jdbc module

A JCV-DB module that allow you to execute sql requests. Only PostgreSQL, MySQL, MSSQL server are supported in this module.

Example

import static com.ekino.oss.jcv.db.jdbc.DbComparatorJDBC.assertThatQuery

@Test
fun testContentTable() {
    assertThatQuery("select * from table_name")
    .isValidAgainst("""[
        {
            "id": "e3881fb1-b3dd-4701-b08c-f5d17389edfa",
            "number_field": 1,
            "boolean_field: true,
            "string_field": "Hello"
        }
    ]""".trimIndent())
}

Dependencies

Maven

<dependencies>
  ...
  <dependency>
    <groupId>org.skyscreamer</groupId>
    <artifactId>jsonassert</artifactId>
    <version>1.5.0</version>
    <scope>test</scope>
  </dependency>
  <dependency>
    <groupId>org.assertj</groupId>
    <artifactId>assertj-db</artifactId>
    <version>1.2.0</version>
    <scope>test</scope>
  </dependency>
  <dependency>
    <groupId>com.ekino.oss.jcv</groupId>
    <artifactId>jcv-core</artifactId>
    <version>1.4.1</version>
    <scope>test</scope>
  </dependency>
  <dependency>
    <groupId>com.ekino.oss.jcv-db</groupId>
    <artifactId>jcv-db-jdbc</artifactId>
    <version>0.0.4</version>
    <scope>test</scope>
  </dependency>
  ...
</dependencies>

Gradle

dependencies {
    ...
    testImplementation 'org.skyscreamer:jsonassert:1.5.0'
    testImplementation 'org.assertj:assertj-db:1.2.0'
    testImplementation 'com.ekino.oss.jcv:jcv-core:1.4.1'
    testImplementation 'com.ekino.oss.jcv-db:jcv-db-jdbc:0.0.3'
    ...
}

Cassandra module

A JCV-DB module that allow you to execute cql requests and criteria builder in cassandra database

Example

import static com.ekino.oss.jcv.db.cassandra.DbComparatorCassandra.assertThatQuery

@Test
fun testContentTable() {
    assertThatQuery("select * from table_name")
    .isValidAgainst("""[
        {
            "id": "e3881fb1-b3dd-4701-b08c-f5d17389edfa",
            "number_field": 1,
            "boolean_field: true,
            "string_field": "Hello"
        }
    ]""".trimIndent())
}

Dependencies

Maven

<dependencies>
  ...
  <dependency>
    <groupId>org.skyscreamer</groupId>
    <artifactId>jsonassert</artifactId>
    <version>1.5.0</version>
    <scope>test</scope>
  </dependency>
  <dependency>
    <groupId>org.assertj</groupId>
    <artifactId>assertj-db</artifactId>
    <version>1.2.0</version>
    <scope>test</scope>
  </dependency>
  <dependency>
    <groupId>com.ekino.oss.jcv</groupId>
    <artifactId>jcv-core</artifactId>
    <version>1.4.1</version>
    <scope>test</scope>
  </dependency>
  <dependency>
    <groupId>com.ekino.oss.jcv-db</groupId>
    <artifactId>jcv-db-cassandra</artifactId>
    <version>0.0.4</version>
    <scope>test</scope>
  </dependency>
  ...
</dependencies>

Gradle

dependencies {
    ...
    testImplementation 'org.skyscreamer:jsonassert:1.5.0'
    testImplementation 'org.assertj:assertj-db:1.2.0'
    testImplementation 'com.ekino.oss.jcv:jcv-core:1.4.1'
    testImplementation 'com.ekino.oss.jcv-db:jcv-db-cassandra:0.0.3'
    ...
}

Mongo database module

A JCV-DB module that allow you to mongo database content against a json file.

Example

import static com.ekino.oss.jcv.db.mongo.DbComparatorMongo.assertThatCollection

@Test
fun testContentTable() {
    assertThatQuery(database.getCollection("testCollection").find(eq("name", "test-mongo-db"))
    .isValidAgainst("""[
        {
            "id": "e3881fb1-b3dd-4701-b08c-f5d17389edfa",
            "number_field": 1,
            "boolean_field: true,
            "string_field": "Hello"
        }
    ]""".trimIndent())
}

Dependencies

Maven

<dependencies>
  ...
  <dependency>
    <groupId>org.skyscreamer</groupId>
    <artifactId>jsonassert</artifactId>
    <version>1.5.0</version>
    <scope>test</scope>
  </dependency>
  <dependency>
    <groupId>org.assertj</groupId>
    <artifactId>assertj-db</artifactId>
    <version>1.2.0</version>
    <scope>test</scope>
  </dependency>
  <dependency>
    <groupId>com.ekino.oss.jcv</groupId>
    <artifactId>jcv-core</artifactId>
    <version>1.4.1</version>
    <scope>test</scope>
  </dependency>
  <dependency>
    <groupId>com.ekino.oss.jcv-db</groupId>
    <artifactId>jcv-db-mongo</artifactId>
    <version>0.0.4</version>
    <scope>test</scope>
  </dependency>
  ...
</dependencies>

Gradle

dependencies {
    ...
    testImplementation 'org.skyscreamer:jsonassert:1.5.0'
    testImplementation 'org.assertj:assertj-db:1.2.0'
    testImplementation 'com.ekino.oss.jcv:jcv-core:1.4.1'
    testImplementation 'com.ekino.oss.jcv-db:jcv-db-mongo:0.0.1'
    ...
}
com.ekino.oss.jcv-db

Ekino

Versions

Version
0.0.4
0.0.3
0.0.2
0.0.1