From 652b345e946ef15460c6e40cdc5e2998068c2cf0 Mon Sep 17 00:00:00 2001
From: Timm Fitschen <t.fitschen@indiscale.com>
Date: Mon, 28 Jun 2021 02:01:24 +0200
Subject: [PATCH] WIP: tls

---
 .docker/tester.yml       |  4 ++++
 .gitlab-ci.yml           |  1 +
 test/test_connection.cpp | 34 ++++++++++++++++++++++++++++------
 3 files changed, 33 insertions(+), 6 deletions(-)

diff --git a/.docker/tester.yml b/.docker/tester.yml
index 1673eed..f3a69bd 100644
--- a/.docker/tester.yml
+++ b/.docker/tester.yml
@@ -2,6 +2,10 @@ version: '3.7'
 services:
   tester:
     image: "$CPPINTTEST_REGISTRY_IMAGE"
+    environment:
+      CAOSDB_SERVER_HOST: caosdb-server
+      CAOSDB_SERVER_PORT: 8443
+      CAOSDB_SERVER_CA_PEM: /cert/caosdb.cert.pem
     networks:
       - docker_caosnet
     volumes:
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 0323d73..c21d3d6 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -75,6 +75,7 @@ build-testenv:
   only:
     - schedules
     - web
+    - triggers
   script:
     - docker login -u gitlab-ci-token -p $CI_JOB_TOKEN $CI_REGISTRY
 
diff --git a/test/test_connection.cpp b/test/test_connection.cpp
index 4b54e5b..b21b1ba 100644
--- a/test/test_connection.cpp
+++ b/test/test_connection.cpp
@@ -25,6 +25,7 @@
 #include <gtest/gtest-test-part.h>
 #include <memory>
 #include "gtest/gtest_pred_impl.h"
+#include "utils.h"
 
 using caosdb::info::v1alpha1::VersionInfo;
 
@@ -46,21 +47,42 @@ TEST(test_connection, connect_somehost_42347_fails) {
   ASSERT_THROW(connection.getVersionInfo(), std::runtime_error);
 }
 
-TEST(test_connection, connection_caosdb_server_8080_success) {
+TEST(test_connection, connection_caosdb_server_insecure_success) {
   int port = 8080;
-  std::string host = "localhost";
+  std::cout << "HERE1\n";
+  const std::string host = caosdb::utils::get_env_var("CAOSDB_SERVER_HOST", "localhost");
+  EXPECT_EQ(host, "localhost");
+  std::cout << "HERE2\n";
   int major = 0;
   int minor = 5;
   int patch = 0;
-  std::string pre_release = "SNAPSHOT";
+  std::cout << "HERE3\n";
 
   auto config = std::make_shared<caosdb::InsecureCaosDBConnectionConfig>(host, port);
+  std::cout << "HERE4\n";
+  auto connection = caosdb::CaosDBConnection(config);
+
+  std::cout << "HERE5\n";
+  auto v_info = connection.getVersionInfo();
+  std::cout << "HERE6\n";
+  ASSERT_EQ(major, v_info.major());
+  std::cout << "HERE7\n";
+  ASSERT_EQ(minor, v_info.minor());
+}
+
+TEST(test_connection, connection_caosdb_server_ssl_success) {
+  int port = 8443;
+  const std::string host = caosdb::utils::get_env_var("CAOSDB_SERVER_HOST", "localhost");
+  const std::string path = caosdb::utils::get_env_var("CAOSDB_SERVER_CA_PEM", std::string());
+  int major = 0;
+  int minor = 5;
+  int patch = 0;
+
+  auto ssloptions = std::make_shared<caosdb::PemFileCACertProvider>(path);
+  auto config = std::make_shared<caosdb::SslCaosDBConnectionConfig>(host, port, ssloptions);
   auto connection = std::make_unique<caosdb::CaosDBConnection>(config);
 
   auto v_info = connection->getVersionInfo();
   ASSERT_EQ(major, v_info.major());
   ASSERT_EQ(minor, v_info.minor());
-  ASSERT_EQ(patch, v_info.patch());
-  ASSERT_EQ(pre_release, v_info.pre_release());
-  ASSERT_NE("", v_info.build());
 }
-- 
GitLab