Commit dd477bd2 authored by Christopher Cottier's avatar Christopher Cottier

Merge branch 'dockerizing' into 'master'

Dockerizing

See merge request !1
parents e114b8ff 616508e5
FROM openjdk:8
WORKDIR /app
COPY build/libs .
EXPOSE 8080
CMD ["java","-jar", "/app/employeeservice-0.0.1-SNAPSHOT.jar"]
\ No newline at end of file
1. Create image with name employee-serv from dockerfile in root directory.
2. Run
```
docker-compose up
```
3. Access the api endpoints from localhost:8081
\ No newline at end of file
......@@ -22,6 +22,7 @@ dependencies {
runtimeOnly 'com.h2database:h2'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
testImplementation 'com.h2database:h2'
compile 'org.postgresql:postgresql:42.2.19.jre7'
}
test {
......
version: "3.5"
services:
empdb:
container_name: empdb
image: postgres
expose:
- "5432"
networks:
- empnetwork
environment:
- POSTGRES_USER=emp_serv
- POSTGRES_PASSWORD=emp_serv
- POSTGRES_DB=emp_serv
spring_boot:
container_name: employeesApp
image: employee-serv
ports:
- 8081:8080
depends_on:
- empdb
networks:
- empnetwork
networks:
empnetwork:
name: empnetwork
driver: bridge
......@@ -8,6 +8,7 @@ import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
import java.util.List;
import java.util.Map;
@CrossOrigin(origins = "*")
@RestController
......
......@@ -3,10 +3,10 @@ package com.nisum.employeeservice.service;
import com.nisum.employeeservice.model.Employee;
import com.nisum.employeeservice.repository.EmployeeRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.jpa.repository.Query;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.Optional;
import java.util.*;
@Service
public class EmployeeService {
......@@ -36,4 +36,18 @@ public class EmployeeService {
public void deleteEmployee(Employee employee) {
employeeRepository.delete(employee);
}
private Map<String, String> queryToMap(String searchQuery){
String[] queries = searchQuery.split("&");
Map<String, String> fieldMap = new HashMap<>();
for (String query:queries){
String[] fieldVal = query.split("=");
String field = fieldVal[0];
String val = fieldVal[1];
fieldMap.put(field,val);
}
return fieldMap;
}
}
spring.datasource.url=jdbc:h2:mem:dataSource
spring.datasource.driverClassName=org.h2.Driver
spring.datasource.username=sa
spring.datasource.password=
spring.datasource.url=jdbc:postgresql://empdb:5432/emp_serv
spring.datasource.driverClassName=org.postgresql.Driver
spring.datasource.username=emp_serv
spring.datasource.password=emp_serv
spring.datasource.schema=classpath:employee.sql
spring.jpa.database-platform=org.hibernate.dialect.H2Dialect
spring.jpa.hibernate.ddl-auto=none
spring.h2.console.enabled=true
spring.jpa.hibernate.ddl-auto=update
spring.jpa.show-sql=true
spring.jpa.properties.hibernate.format_sql=true
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.PostgreSQL81Dialect
#spring.jpa.database-platform=org.hibernate.dialect.H2Dialect
#spring.jpa.hibernate.ddl-auto=none
#spring.h2.console.enabled=true
management.endpoint.beans.enabled=true
management.endpoints.web.exposure.include=*
info.app.name=Employee Service Application Actuator
#info.app.name=Employee Service Application Actuator
\ No newline at end of file
DROP TABLE IF EXISTS EMPLOYEE;
CREATE TABLE EMPLOYEE (
ID INT AUTO_INCREMENT PRIMARY KEY,
ID INT SERIAL PRIMARY KEY,
FIRST_NAME VARCHAR (255) NOT NULL,
LAST_NAME VARCHAR (255) NOT NULL
);
......
package com.nisum.employeeservice;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;
@SpringBootTest
class EmployeeserviceApplicationTests {
@Test
void contextLoads() {
}
}
package com.nisum.employeeservice.service;
import com.nisum.employeeservice.model.Employee;
import com.nisum.employeeservice.repository.EmployeeRepository;
import org.junit.Assert;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.junit.runner.RunWith;
import org.mockito.InjectMocks;
import org.mockito.Mock;
import org.mockito.Mockito;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
import java.util.Arrays;
import java.util.List;
import static org.junit.jupiter.api.Assertions.*;
//@RunWith(SpringRunner.class)
@SpringBootTest
class EmployeeServiceTest {
@Mock EmployeeRepository mockedEmployeeRepository;
@InjectMocks EmployeeService mockedEmployeeService;
@Autowired
EmployeeRepository employeeRepository;
@Autowired
EmployeeService employeeService;
@BeforeEach
void setUp() {
}
@AfterEach
void tearDown() {
}
@Test
void findAllEmployees() {
Employee employee = new Employee();
employee.setId(1L);
employee.setFirstName("Tom");
employee.setLastName("Smith");
Employee employee1 = new Employee();
employee1.setId(2L);
employee1.setFirstName("Jane");
employee1.setLastName("Doe");
List<Employee> employeeList = Arrays.asList(employee, employee1);
Mockito.when(mockedEmployeeRepository.findAll()).thenReturn(employeeList);
List<Employee> resultList = mockedEmployeeService.findAllEmployees();
assertEquals(2, resultList.size());
}
@Test
void addEmployeeMocked() {
}
@Test
void addEmployee() {
Employee employee = new Employee();
employee.setFirstName("Tom");
employee.setLastName("Smith");
employeeService.addEmployee(employee);
Employee employee1 = new Employee();
employee1.setFirstName("Jane");
employee1.setLastName("Doe");
employeeService.addEmployee(employee1);
List<Employee> employeeList = employeeService.findAllEmployees();
assertEquals(1, employeeList.size());
}
}
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment