From e8f9e7b7ab5c72aeac63c6a235cf5b51aebdfdf9 Mon Sep 17 00:00:00 2001
From: Pavel Kirilin <win10@list.ru>
Date: Sat, 14 Dec 2019 17:47:09 +0400
Subject: [PATCH] Added gitlab-ci configuration.

Signed-off-by: Pavel Kirilin <win10@list.ru>
---
 .gitlab-ci.yml                                | 17 +++++++++++
 Makefile                                      | 24 +++++++++++++++
 docker-compose.test.yml                       | 30 +++++++++++++++++++
 docker-compose.yml                            |  2 --
 pom.xml                                       |  5 ++++
 .../CorporateApp2ApplicationTests.kt          | 12 +++++---
 6 files changed, 84 insertions(+), 6 deletions(-)
 create mode 100644 .gitlab-ci.yml
 create mode 100644 Makefile
 create mode 100644 docker-compose.test.yml

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
new file mode 100644
index 0000000..ce0842b
--- /dev/null
+++ b/.gitlab-ci.yml
@@ -0,0 +1,17 @@
+stages:
+  - test
+  - cleanup
+
+test:
+  stage: test
+  tags:
+    - private
+  script:
+    - make test
+
+cleanup:
+  stage: cleanup
+  tags:
+    - private
+  script:
+    - make clean_test
\ No newline at end of file
diff --git a/Makefile b/Makefile
new file mode 100644
index 0000000..15e5d77
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,24 @@
+all: run
+
+run:
+	@docker-compose -f docker-compose.yml up -d
+
+logs:
+	@docker-compose -f docker-compose.yml logs -f
+
+clean_test:
+	@docker-compose -f docker-compose.test.yml run test_builder mvn clean -B -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn
+	@docker-compose -f docker-compose.test.yml down
+
+test:
+	@docker-compose -f docker-compose.test.yml build
+	@docker-compose -f docker-compose.test.yml run test_builder mvn clean test -B -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn
+
+build:
+	@docker-compose -f docker-compose.yml build
+
+clean:
+	@docker-compose -f docker-compose.yml down
+
+rm:
+	@docker-compose -f docker-compose.yml down -v
diff --git a/docker-compose.test.yml b/docker-compose.test.yml
new file mode 100644
index 0000000..6c354b2
--- /dev/null
+++ b/docker-compose.test.yml
@@ -0,0 +1,30 @@
+version: '3.7'
+
+networks:
+  test_corporate_network:
+    name: 'tcn'
+
+services:
+  test_builder:
+    build: .
+    restart: always
+    container_name: 'test_corporate_builder2'
+    depends_on:
+      - test_db
+    working_dir: '/app'
+    volumes:
+      - .:/app
+    networks:
+      - test_corporate_network
+
+  test_db:
+    image: 'postgres:10-alpine'
+    container_name: 'test_corporate_db2'
+    environment:
+      POSTGRES_DB: cinema
+      POSTGRES_USER: postgres
+      POSTGRES_PASSWORD: postgres
+    networks:
+      test_corporate_network:
+        aliases:
+          - corporate_db2
\ No newline at end of file
diff --git a/docker-compose.yml b/docker-compose.yml
index a6108da..09eba51 100644
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -42,6 +42,4 @@ services:
 
 volumes:
   m2:
-  js:
-  css:
   db_data:
\ No newline at end of file
diff --git a/pom.xml b/pom.xml
index faafc86..cd7aa6d 100644
--- a/pom.xml
+++ b/pom.xml
@@ -29,6 +29,11 @@
             <artifactId>spring-boot-starter-test</artifactId>
             <scope>test</scope>
         </dependency>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-test</artifactId>
+            <scope>test</scope>
+        </dependency>
         <dependency>
             <groupId>org.springframework.boot</groupId>
             <artifactId>spring-boot-starter-data-jpa</artifactId>
diff --git a/src/test/kotlin/com/s3ai/corporate_app2/CorporateApp2ApplicationTests.kt b/src/test/kotlin/com/s3ai/corporate_app2/CorporateApp2ApplicationTests.kt
index 3c00d1b..5ae1ccc 100644
--- a/src/test/kotlin/com/s3ai/corporate_app2/CorporateApp2ApplicationTests.kt
+++ b/src/test/kotlin/com/s3ai/corporate_app2/CorporateApp2ApplicationTests.kt
@@ -1,16 +1,20 @@
 package com.s3ai.corporate_app2
 
-import org.junit.jupiter.api.Assertions.assertEquals
+import com.s3ai.corporate_app2.controllers.CinemasController
+import org.assertj.core.api.Assertions.assertThat
 import org.junit.jupiter.api.Test
+import org.springframework.beans.factory.annotation.Autowired
 import org.springframework.boot.test.context.SpringBootTest
 
+
 @SpringBootTest
 class CorporateApp2ApplicationTests {
+    @Autowired
+    private lateinit var controller: CinemasController
 
     @Test
+    @Throws(Exception::class)
     fun contextLoads() {
-        var result = "default"
-        assertEquals("default", result)
+        assertThat(controller).isNotNull
     }
-
 }
-- 
GitLab