Skip to content
Snippets Groups Projects
Commit 46eb9aa3 authored by Rosen Georgiev's avatar Rosen Georgiev
Browse files

Merge branch 'master' into 'main'

initial setup

See merge request !1
parents 706e136c a6205d7e
No related branches found
No related tags found
1 merge request!1initial setup
Pipeline #50418 failed with stages
in 0 seconds
Showing
with 142 additions and 2 deletions
# bdd
# Testing framework
BDD for OCM
\ No newline at end of file
1. [Introduction](#introduction)
1. [Setup](#setup)
1. [Description](#description)
# Introduction
This repository holds the test automation framework based on Java and used for testing TSA
# Setup
### Prerequisites
- Install Java version > 17
- Install gradle version > 7.4.1 - https://gradle.org/install/
- Favorite IDE (I recommend IntelliJ IDEA - https://www.jetbrains.com/idea/)
- If using IntelliJ - Install Cucumber for Java & Gherkin addons
### Running
- Run the tests on a remote env: ```gradle regressionSuite -PbaseUrl=https://TestEnv -Dcucumber.tags="@rest, ~@wip" -Dcourgette.threads=10 -Dcourgette.runLevel=Scenario -Dcourgette.rerunFailedScenarios=false -Dcourgette.rerunAttempts=1```
\ No newline at end of file
TODO.md 0 → 100644
[d] Evaluating policy synchronously
- Creating git infrastructure for the policies with the flow documentation. Will follow with feature branch with dev and production branch. Let's use [policies repo of the code.gitlab](https://code.vereign.com/gaiax/tsa/policies) to push policies. Git is a dependency should be preinstalled.
- @kalin Create an environment to demonstrate
- Kubernetes
- Mongo Replicaset 1 primary and 2 secondary(v3.6)
- Redis
- Create a pipeline to sync the committed policy with MongoDB
- @yuli Create a script to syncrhonise the data from Git to Mongo
- @dancho Sync policies from Mongo (replicaset deployment) with the policy services
+ @penkovski Create a service with endpoint to evaluate the policy
- Create an example policy for the tests and demonstration
- @rosen Implement the test logic
[] Implement the CI pipeline to test the service.
- imlement the simplest test.
- setup the Gitlab pipeline. Pick the simplest trigger event
[d] Distributed cache feature
- create Rego extensions
+ create HTTP service
- create 2 example policies (1 for setting value, 1 for getting value)
- Implement the test logic
[] Persistance feature
[] Resolving DID
[] Evaluating policy asynchronously
Evaluatating policy groups asynchronously
Crypto libs to work with ursa (sign, key management)
Policy to generate an endpoint in Kong
Communication with OCM
/*
Copyright (c) 2018 Vereign AG [https://www.vereign.com]
This is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as
published by the Free Software Foundation, either version 3 of the
License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Affero General Public License for more details.
You should have received a copy of the GNU Affero General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
apply plugin: 'java'
compileJava {options.encoding = "UTF-8"}
apply plugin: 'eclipse'
repositories {
mavenCentral()
mavenLocal()
gradlePluginPortal()
}
configurations {
cucumberRuntime {
extendsFrom testRuntimeOnly
}
}
def buildTags = '~@test,not @wip'
if (project.hasProperty("tags")) {
buildTags = tags + ',not @wip'
}
def baseUrl
if (project.hasProperty("baseUrl")) {
baseUrl = project.property("baseUrl")
}
tasks.withType(Test) {
systemProperties = System.getProperties()
systemProperties.remove("java.endorsed.dirs") // needs to be removed from Java 9
}
task regressionSuite(type: Test) {
if (System.getProperty('env') == null) {
systemProperty "env", "${baseUrl}"
}
systemProperty "file.encoding", "utf-8"
systemProperty "baseUrl", "${baseUrl}"
systemProperties System.getProperties()
include '**/RegressionTestSuite.class'
outputs.upToDateWhen { false }
}
dependencies {
configurations.all {
resolutionStrategy.cacheDynamicVersionsFor 0, 'seconds'
}
testImplementation group: 'io.cucumber', name: 'cucumber-picocontainer', version: '4.3.0'
testImplementation group: 'junit', name: 'junit', version: '4.+'
implementation 'org.apache.commons:commons-lang3:3.4'
implementation 'joda-time:joda-time:2.8.+'
implementation 'org.easytesting:fest-assert:1.4'
implementation 'org.codehaus.jackson:jackson-mapper-asl:1.9.+'
implementation(group: "com.github.fge", name: "json-schema-validator", version: "2.2.+")
implementation(group: "com.google.code.gson", name: "gson", version: "+")
implementation(group: "io.rest-assured", name: "rest-assured", version: "4.+")
implementation(group: "com.jayway.jsonpath", name: "json-path", version: "+")
implementation group: 'org.apache.logging.log4j', name: 'log4j-api', version: '+'
implementation group: 'org.apache.logging.log4j', name: 'log4j-core', version: '+'
implementation group: 'org.bouncycastle', name: 'bcprov-jdk15on', version: '1.60'
implementation 'org.bouncycastle:bcpkix-jdk15on:1.51'
implementation group: 'net.sourceforge.tess4j', name: 'tess4j', version: '4.4.1'
implementation 'io.github.prashant-ramcharan:courgette-jvm:3.+'
}
\ No newline at end of file
File added
File added
File added
File added
File added
File added
File added
File added
File added
File added
File added
File added
File added
File added
File added
File added
File added
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment