summaryrefslogtreecommitdiffstats
path: root/integration-test/src/test/resources
diff options
context:
space:
mode:
authorlukegleeson <luke.gleeson@est.tech>2023-01-11 09:45:53 +0000
committerlukegleeson <luke.gleeson@est.tech>2023-01-25 17:40:32 +0000
commit665e22472f9658a4d439da0323e6e8760ec60840 (patch)
treebe0d8dac07accaefe10e71f19dd7dd50684bcabb /integration-test/src/test/resources
parente076b048adf89ac1c0ef63b6d605050fab170eb3 (diff)
Springboot Integration tests improvements
Creation of CpsIntegrationSpecBase Demonstration of test class implementing CpsIntegrationSpecBase in CpsPersistenceSpec Tests use reduced liquibase steps, basic bookstore yang model and bookstore json payload Issue-ID: CPS-1379 Signed-off-by: lukegleeson <luke.gleeson@est.tech> Change-Id: I38202d0888808d08d85fce1aab45fc43e8b0cec3
Diffstat (limited to 'integration-test/src/test/resources')
-rw-r--r--integration-test/src/test/resources/application.yml37
-rw-r--r--integration-test/src/test/resources/data/BookstoreDataNodes.json54
-rw-r--r--integration-test/src/test/resources/data/bookstore.yang57
-rw-r--r--integration-test/src/test/resources/hibernate.cfg.xml16
-rw-r--r--integration-test/src/test/resources/liquibase/test-changelog.yaml615
5 files changed, 779 insertions, 0 deletions
diff --git a/integration-test/src/test/resources/application.yml b/integration-test/src/test/resources/application.yml
new file mode 100644
index 000000000..0aefac83f
--- /dev/null
+++ b/integration-test/src/test/resources/application.yml
@@ -0,0 +1,37 @@
+# ============LICENSE_START=======================================================
+# Copyright (C) 2023 Nordix Foundation.
+# ================================================================================
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+# SPDX-License-Identifier: Apache-2.0
+# ============LICENSE_END=========================================================
+
+spring:
+ jpa:
+ ddl-auto: create
+ show-sql: false
+ properties:
+ hibernate:
+ enable_lazy_load_no_trans: true
+ dialect: org.hibernate.dialect.PostgreSQLDialect
+ format_sql: true
+ show_sql: false
+
+ datasource:
+ url: ${DB_URL}
+ username: ${DB_USERNAME}
+ password: ${DB_PASSWORD}
+ driverClassName: org.postgresql.Driver
+ initialization-mode: always
+
+ liquibase:
+ change-log: classpath:liquibase/test-changelog.yaml
diff --git a/integration-test/src/test/resources/data/BookstoreDataNodes.json b/integration-test/src/test/resources/data/BookstoreDataNodes.json
new file mode 100644
index 000000000..1c6cb88f9
--- /dev/null
+++ b/integration-test/src/test/resources/data/BookstoreDataNodes.json
@@ -0,0 +1,54 @@
+{
+ "bookstore": {
+ "bookstore-name": "Easons",
+ "categories": [
+ {
+ "code": 1,
+ "name": "Children",
+ "books" : [
+ {
+ "title": "Matilda",
+ "lang": "English",
+ "authors": ["Roald Dahl"],
+ "pub_year": 1988,
+ "price": 10
+ },
+ {
+ "title": "The Gruffalo",
+ "lang": "English",
+ "authors": ["Julia Donaldson"],
+ "pub_year": 1999,
+ "price": 15
+ }
+ ]
+ },
+ {
+ "code": 2,
+ "name": "Thriller",
+ "books" : [
+ {
+ "title": "Annihilation",
+ "lang": "English",
+ "authors": ["Jeff VanderMeer"],
+ "pub_year": 2014,
+ "price": 15
+ }
+ ]
+ },
+ {
+ "code": 3,
+ "name": "Comedy",
+ "books" : [
+ {
+ "title": "Good Omens",
+ "lang": "English",
+ "authors": ["Neil Gaiman", "Terry Pratchett"],
+ "pub_year": 2006,
+ "price": 13
+ }
+ ]
+ }
+
+ ]
+ }
+} \ No newline at end of file
diff --git a/integration-test/src/test/resources/data/bookstore.yang b/integration-test/src/test/resources/data/bookstore.yang
new file mode 100644
index 000000000..2179fb93d
--- /dev/null
+++ b/integration-test/src/test/resources/data/bookstore.yang
@@ -0,0 +1,57 @@
+module stores {
+ yang-version 1.1;
+ namespace "org:onap:ccsdk:sample";
+
+ prefix book-store;
+
+ revision "2020-09-15" {
+ description
+ "Sample Model";
+ }
+
+ typedef year {
+ type uint16 {
+ range "1000..9999";
+ }
+ }
+
+ container bookstore {
+
+ leaf bookstore-name {
+ type string;
+ }
+
+ list categories {
+
+ key "code";
+
+ leaf code {
+ type string;
+ }
+
+ leaf name {
+ type string;
+ }
+
+ list books {
+ key title;
+
+ leaf title {
+ type string;
+ }
+ leaf lang {
+ type string;
+ }
+ leaf-list authors {
+ type string;
+ }
+ leaf pub_year {
+ type year;
+ }
+ leaf price {
+ type uint64;
+ }
+ }
+ }
+ }
+}
diff --git a/integration-test/src/test/resources/hibernate.cfg.xml b/integration-test/src/test/resources/hibernate.cfg.xml
new file mode 100644
index 000000000..513c00ad2
--- /dev/null
+++ b/integration-test/src/test/resources/hibernate.cfg.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE hibernate-configuration PUBLIC
+ "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
+ "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
+
+<hibernate-configuration>
+ <session-factory>
+ <property name="hibernate.connection.driver_class">org.postgresql.Driver</property>
+ <property name="hibernate.connection.url">${DB_URL}</property>
+ <property name="hibernate.connection.username">${DB_USERNAME}</property>
+ <property name="hibernate.connection.password">${DB_PASSWORD}</property>
+ <property name="hibernate.dialect">org.hibernate.dialect.PostgreSQL82Dialect</property>
+ <property name="show_sql">true</property>
+ <property name="hibernate.hbm2ddl.auto">none</property>
+ </session-factory>
+</hibernate-configuration> \ No newline at end of file
diff --git a/integration-test/src/test/resources/liquibase/test-changelog.yaml b/integration-test/src/test/resources/liquibase/test-changelog.yaml
new file mode 100644
index 000000000..0c881b802
--- /dev/null
+++ b/integration-test/src/test/resources/liquibase/test-changelog.yaml
@@ -0,0 +1,615 @@
+# ============LICENSE_START=======================================================
+# Copyright (c) 2023 Nordix Foundation.
+# ================================================================================
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+# ============LICENSE_END=========================================================
+
+databaseChangeLog:
+ - changeSet:
+ id: 1-1
+ author: cps
+ changes:
+ - createTable:
+ columns:
+ - column:
+ autoIncrement: true
+ constraints:
+ nullable: false
+ primaryKey: true
+ primaryKeyName: anchor_pkey
+ name: id
+ type: BIGINT
+ - column:
+ name: name
+ type: TEXT
+ - column:
+ name: schema_set_id
+ type: INTEGER
+ - column:
+ constraints:
+ nullable: false
+ name: dataspace_id
+ type: INTEGER
+ tableName: anchor
+ - changeSet:
+ id: 1-2
+ author: cps
+ changes:
+ - createTable:
+ columns:
+ - column:
+ constraints:
+ nullable: false
+ name: from_fragment_id
+ type: BIGINT
+ - column:
+ constraints:
+ nullable: false
+ name: to_fragment_id
+ type: BIGINT
+ - column:
+ constraints:
+ nullable: false
+ name: relation_type_id
+ type: INTEGER
+ - column:
+ constraints:
+ nullable: false
+ name: from_rel_xpath
+ type: TEXT
+ - column:
+ constraints:
+ nullable: false
+ name: to_rel_xpath
+ type: TEXT
+ tableName: relation
+ - changeSet:
+ id: 1-3
+ author: cps
+ changes:
+ - createTable:
+ columns:
+ - column:
+ constraints:
+ nullable: false
+ name: relation_type
+ type: TEXT
+ - column:
+ autoIncrement: true
+ constraints:
+ nullable: false
+ primaryKey: true
+ primaryKeyName: relation_type_pkey
+ name: id
+ type: INTEGER
+ tableName: relation_type
+ - changeSet:
+ id: 1-4
+ author: cps
+ changes:
+ - createTable:
+ columns:
+ - column:
+ autoIncrement: true
+ constraints:
+ nullable: false
+ primaryKey: true
+ primaryKeyName: fragment_pkey
+ name: id
+ type: BIGINT
+ - column:
+ constraints:
+ nullable: false
+ name: xpath
+ type: TEXT
+ - column:
+ name: attributes
+ type: JSONB
+ - column:
+ name: anchor_id
+ type: BIGINT
+ - column:
+ name: parent_id
+ type: BIGINT
+ - column:
+ constraints:
+ nullable: false
+ name: dataspace_id
+ type: INTEGER
+ - column:
+ name: schema_node_id
+ type: INTEGER
+ tableName: fragment
+ - changeSet:
+ id: 1-5
+ author: cps
+ changes:
+ - createTable:
+ columns:
+ - column:
+ autoIncrement: true
+ constraints:
+ nullable: false
+ primaryKey: true
+ primaryKeyName: schema_set_pkey
+ name: id
+ type: INTEGER
+ - column:
+ constraints:
+ nullable: false
+ name: name
+ type: TEXT
+ - column:
+ constraints:
+ nullable: false
+ name: dataspace_id
+ type: BIGINT
+ tableName: schema_set
+ - changeSet:
+ id: 1-6
+ author: cps
+ changes:
+ - createTable:
+ columns:
+ - column:
+ autoIncrement: true
+ constraints:
+ nullable: false
+ primaryKey: true
+ primaryKeyName: yang_resource_pkey
+ name: id
+ type: INTEGER
+ - column:
+ constraints:
+ nullable: false
+ name: name
+ type: TEXT
+ - column:
+ constraints:
+ nullable: false
+ name: content
+ type: TEXT
+ - column:
+ constraints:
+ nullable: false
+ name: checksum
+ type: TEXT
+ tableName: yang_resource
+ - changeSet:
+ id: 1-7
+ author: cps
+ changes:
+ - createTable:
+ columns:
+ - column:
+ autoIncrement: true
+ constraints:
+ nullable: false
+ primaryKey: true
+ primaryKeyName: dataspace_pkey
+ name: id
+ type: INTEGER
+ - column:
+ constraints:
+ nullable: false
+ name: name
+ type: TEXT
+ tableName: dataspace
+ - changeSet:
+ id: 1-8
+ author: cps
+ changes:
+ - createTable:
+ columns:
+ - column:
+ constraints:
+ nullable: false
+ name: schema_node_identifier
+ type: TEXT
+ - column:
+ autoIncrement: true
+ constraints:
+ nullable: false
+ primaryKey: true
+ primaryKeyName: schema_node_pkey
+ name: id
+ type: INTEGER
+ tableName: schema_node
+ - changeSet:
+ id: 1-9
+ author: cps
+ changes:
+ - createTable:
+ columns:
+ - column:
+ constraints:
+ nullable: false
+ name: schema_set_id
+ type: BIGINT
+ - column:
+ constraints:
+ nullable: false
+ name: yang_resource_id
+ type: BIGINT
+ tableName: schema_set_yang_resources
+ - changeSet:
+ id: 1-10
+ author: cps
+ changes:
+ - createIndex:
+ columns:
+ - column:
+ name: schema_set_id
+ indexName: FKI_ANCHOR_SCHEMA_SET_ID_FK
+ tableName: anchor
+ - changeSet:
+ id: 1-11
+ author: cps
+ changes:
+ - addUniqueConstraint:
+ columnNames: dataspace_id, name
+ constraintName: anchor_dataspace_id_name_key
+ tableName: anchor
+ - changeSet:
+ id: 1-12
+ author: cps
+ changes:
+ - addForeignKeyConstraint:
+ baseColumnNames: anchor_id
+ baseTableName: fragment
+ constraintName: fragment_anchor_id_fkey
+ deferrable: false
+ initiallyDeferred: false
+ onDelete: NO ACTION
+ onUpdate: NO ACTION
+ referencedColumnNames: id
+ referencedTableName: anchor
+ validate: true
+ - changeSet:
+ id: 1-13
+ author: cps
+ changes:
+ - createIndex:
+ columns:
+ - column:
+ name: from_fragment_id
+ indexName: FKI_RELATIONS_FROM_ID_FK
+ tableName: relation
+ - changeSet:
+ id: 1-14
+ author: cps
+ changes:
+ - createIndex:
+ columns:
+ - column:
+ name: to_fragment_id
+ indexName: FKI_RELATIONS_TO_ID_FK
+ tableName: relation
+ - changeSet:
+ id: 1-15
+ author: cps
+ changes:
+ - createIndex:
+ columns:
+ - column:
+ name: relation_type_id
+ indexName: FKI_RELATION_TYPE_ID_FK
+ tableName: relation
+ - changeSet:
+ id: 1-16
+ author: cps
+ changes:
+ - addPrimaryKey:
+ columnNames: to_fragment_id, from_fragment_id, relation_type_id
+ constraintName: relation_pkey
+ tableName: relation
+ - changeSet:
+ id: 1-17
+ author: cps
+ changes:
+ - createIndex:
+ columns:
+ - column:
+ name: anchor_id
+ indexName: FKI_FRAGMENT_ANCHOR_ID_FK
+ tableName: fragment
+ - changeSet:
+ id: 1-18
+ author: cps
+ changes:
+ - createIndex:
+ columns:
+ - column:
+ name: dataspace_id
+ indexName: FKI_FRAGMENT_DATASPACE_ID_FK
+ tableName: fragment
+ - changeSet:
+ id: 1-19
+ author: cps
+ changes:
+ - createIndex:
+ columns:
+ - column:
+ name: parent_id
+ indexName: FKI_FRAGMENT_PARENT_ID_FK
+ tableName: fragment
+ - changeSet:
+ id: 1-20
+ author: cps
+ changes:
+ - createIndex:
+ columns:
+ - column:
+ name: schema_node_id
+ indexName: FKI_SCHEMA_NODE_ID_TO_ID
+ tableName: fragment
+ - changeSet:
+ id: 1-21
+ author: cps
+ changes:
+ - createIndex:
+ columns:
+ - column:
+ name: xpath
+ - column:
+ name: dataspace_id
+ indexName: UQ_FRAGMENT_XPATH
+ tableName: fragment
+ unique: true
+ - changeSet:
+ id: 1-22
+ author: cps
+ changes:
+ - addUniqueConstraint:
+ columnNames: dataspace_id, anchor_id, xpath
+ constraintName: fragment_dataspace_id_anchor_id_xpath_key
+ tableName: fragment
+ - changeSet:
+ id: 1-23
+ author: cps
+ changes:
+ - addForeignKeyConstraint:
+ baseColumnNames: from_fragment_id
+ baseTableName: relation
+ constraintName: relation_from_fragment_id_fkey
+ deferrable: false
+ initiallyDeferred: false
+ onDelete: NO ACTION
+ onUpdate: NO ACTION
+ referencedColumnNames: id
+ referencedTableName: fragment
+ validate: true
+ - changeSet:
+ id: 1-24
+ author: cps
+ changes:
+ - addForeignKeyConstraint:
+ baseColumnNames: to_fragment_id
+ baseTableName: relation
+ constraintName: relation_to_fragment_id_fkey
+ deferrable: false
+ initiallyDeferred: false
+ onDelete: NO ACTION
+ onUpdate: NO ACTION
+ referencedColumnNames: id
+ referencedTableName: fragment
+ validate: true
+ - changeSet:
+ id: 1-25
+ author: cps
+ changes:
+ - addUniqueConstraint:
+ columnNames: name, dataspace_id
+ constraintName: schema_set_name_dataspace_id_key
+ tableName: schema_set
+ - changeSet:
+ id: 1-26
+ author: cps
+ changes:
+ - addForeignKeyConstraint:
+ baseColumnNames: schema_set_id
+ baseTableName: schema_set_yang_resources
+ constraintName: schema_set_resource
+ deferrable: false
+ initiallyDeferred: false
+ onDelete: CASCADE
+ onUpdate: NO ACTION
+ referencedColumnNames: id
+ referencedTableName: schema_set
+ validate: true
+ - changeSet:
+ id: 1-27
+ author: cps
+ changes:
+ - addUniqueConstraint:
+ columnNames: checksum
+ constraintName: yang_resource_checksum_key
+ tableName: yang_resource
+ - changeSet:
+ id: 1-28
+ author: cps
+ changes:
+ - addUniqueConstraint:
+ columnNames: name
+ constraintName: UQ_NAME
+ tableName: dataspace
+ - changeSet:
+ id: 1-29
+ author: cps
+ changes:
+ - addForeignKeyConstraint:
+ baseColumnNames: dataspace_id
+ baseTableName: fragment
+ constraintName: fragment_dataspace_id_fkey
+ deferrable: false
+ initiallyDeferred: false
+ onDelete: NO ACTION
+ onUpdate: NO ACTION
+ referencedColumnNames: id
+ referencedTableName: dataspace
+ validate: true
+ - changeSet:
+ id: 1-30
+ author: cps
+ changes:
+ - addForeignKeyConstraint:
+ baseColumnNames: dataspace_id
+ baseTableName: schema_set
+ constraintName: schema_set_dataspace
+ deferrable: false
+ initiallyDeferred: false
+ onDelete: CASCADE
+ onUpdate: CASCADE
+ referencedColumnNames: id
+ referencedTableName: dataspace
+ validate: true
+ - changeSet:
+ id: 1-31
+ author: cps
+ changes:
+ - createIndex:
+ columns:
+ - column:
+ name: schema_node_identifier
+ indexName: PERF_SCHEMA_NODE_SCHEMA_NODE_ID
+ tableName: schema_node
+ - changeSet:
+ id: 1-32
+ author: cps
+ changes:
+ - addForeignKeyConstraint:
+ baseColumnNames: yang_resource_id
+ baseTableName: schema_set_yang_resources
+ constraintName: schema_set_yang_resources_yang_resource_id_fkey
+ deferrable: false
+ initiallyDeferred: false
+ onDelete: NO ACTION
+ onUpdate: NO ACTION
+ referencedColumnNames: id
+ referencedTableName: yang_resource
+ validate: true
+ - changeSet:
+ id: 1-33
+ author: cps
+ changes:
+ - addForeignKeyConstraint:
+ baseColumnNames: dataspace_id
+ baseTableName: anchor
+ constraintName: anchor_dataspace_id_fkey
+ deferrable: false
+ initiallyDeferred: false
+ onDelete: NO ACTION
+ onUpdate: NO ACTION
+ referencedColumnNames: id
+ referencedTableName: dataspace
+ validate: true
+ - changeSet:
+ id: 1-34
+ author: cps
+ changes:
+ - addForeignKeyConstraint:
+ baseColumnNames: schema_set_id
+ baseTableName: anchor
+ constraintName: anchor_schema_set_id_fkey
+ deferrable: false
+ initiallyDeferred: false
+ onDelete: NO ACTION
+ onUpdate: NO ACTION
+ referencedColumnNames: id
+ referencedTableName: schema_set
+ validate: true
+ - changeSet:
+ id: 1-35
+ author: cps
+ changes:
+ - addForeignKeyConstraint:
+ baseColumnNames: relation_type_id
+ baseTableName: relation
+ constraintName: relation_relation_type_id_fkey
+ deferrable: false
+ initiallyDeferred: false
+ onDelete: NO ACTION
+ onUpdate: NO ACTION
+ referencedColumnNames: id
+ referencedTableName: relation_type
+ validate: true
+ - changeSet:
+ id: 1-36
+ author: cps
+ changes:
+ - addForeignKeyConstraint:
+ baseColumnNames: parent_id
+ baseTableName: fragment
+ constraintName: fragment_parent_id_fkey
+ deferrable: false
+ initiallyDeferred: false
+ onDelete: NO ACTION
+ onUpdate: NO ACTION
+ referencedColumnNames: id
+ referencedTableName: fragment
+ validate: true
+ - changeSet:
+ id: 1-37
+ author: cps
+ changes:
+ - addForeignKeyConstraint:
+ baseColumnNames: schema_node_id
+ baseTableName: fragment
+ constraintName: fragment_schema_node_id_fkey
+ deferrable: false
+ initiallyDeferred: false
+ onDelete: NO ACTION
+ onUpdate: NO ACTION
+ referencedColumnNames: id
+ referencedTableName: schema_node
+ validate: true
+
+
+ - changeSet:
+ id: 1-38
+ label: add-module-name-and-revision-column
+ author: cps
+ changes:
+ - addColumn:
+ tableName: yang_resource
+ columns:
+ - column:
+ name: module_name
+ type: TEXT
+ - column:
+ name: revision
+ type: TEXT
+
+ - changeSet:
+ id: 1-39
+ label: update-previous-data-module-name-and-revision
+ author: cps
+ changes:
+ - sql:
+ sql: update yang_resource set module_name = 'dummy_module_name', revision = '2021-08-04' where module_name is null and revision is null
+ rollback:
+ sql: update yang_resource set module_name = null, revision = null where module_name = 'dummy_module_name' and revision = '2021-08-04'
+
+ - changeSet:
+ author: cps
+ label: yang-resource-rename-column
+ id: 1-40
+ changes:
+ - renameColumn:
+ tableName: yang_resource
+ columnDataType: TEXT
+ oldColumnName: name
+ newColumnName: file_name
+ rollback:
+ - sql:
+ sql: alter table yang_resource rename column file_name to name