Challenge Overview
CHALLENGE OBJECTIVES
-
Write unit tests for the SMS, Email and OTP microservices
TECHNOLOGY STACK
-
Java 11
-
Spring 5.2.8
-
Spring Boot 2.3.3
-
Spring Security 5.3.5
-
Spring GCP Cloud
-
Istio (Discovery Service)
-
APIGEE
-
Log4j/Slf4j
-
JSON (gzipped)
-
REST
-
Microservices
-
Docker
-
Kubernetes
-
Open Api Spec 3.0
-
SMTP
-
MySQL 8.0
-
JUnit
-
JPA
REQUIREMENTS
The provided code contains the following 4 projects:
-
A common library
-
The SMS microservice
-
The Email microservice
-
The OTP microservice
The purpose of this challenge is to add unit tests for these projects.
The following requirements are to be implemented:
-
Provide unit tests for each of the projects listed above.
-
Licenses to be followed in development:
-
Apache License 2.0
-
MIT License
-
Common Development and Distribution License
-
Eclipse Public License version 2.0
-
-
The same coding standards in the existing code must be followed, there should be no errors when run the code check with the maven command
-
Unit tests should not affect any existing functionality
-
In each project there needs to be a new command to run the unit tests and generate coverage report, similar to the one we have for code style check
-
We are aiming for at least 80% coverage. This is considered a major requirement in the scorecard since unit testing is all this challenge is about
Final Submission Guidelines
FINAL DELIVERABLES
-
Full code that covers all the requirements, including unit tests.
-
A detailed README file including information on how to configure, run, and verify your application.
-
Maven script(s) that at least cover the following:
-
Run the services locally
-
Build each project into separate packages that can be deployed independently
-
Build each project into separate docker images
-
Run unit tests and generate the coverage report
-
Generate a sitemap for the project using Maven Site Plugin (mvn site)
-
-
Postman collection file to properly test the API (covering positive and negative cases).