diff --git a/README.md b/README.md
index 8f4492d..6f165eb 100644
--- a/README.md
+++ b/README.md
@@ -11,7 +11,7 @@ Welcome to the _cae-utils-http-client_ repository! The _cae-utils-http-client_ i
com.clean-arch-enablers
- http-client
+ cae-http-client
${version}
diff --git a/pom.xml b/pom.xml
index 5e4889f..d7c08e1 100644
--- a/pom.xml
+++ b/pom.xml
@@ -7,8 +7,8 @@
Meant for enabling applications to use HTTP at ease, without having to compromise the clean state of the overall architecture.
https://github.com/clean-arch-enablers-project/cae-utils-http-client/blob/main/README.md
com.clean-arch-enablers
- http-client
- 1.1.1
+ cae-http-client
+ 1.0.0
jar
diff --git a/src/main/java/com/cae/http_client/CaeHttpClientFactory.java b/src/main/java/com/cae/http_client/CaeHttpClientFactory.java
new file mode 100644
index 0000000..f2f150a
--- /dev/null
+++ b/src/main/java/com/cae/http_client/CaeHttpClientFactory.java
@@ -0,0 +1,16 @@
+package com.cae.http_client;
+
+import com.cae.http_client.implementations.HttpRequestStarterImplementation;
+import lombok.AccessLevel;
+import lombok.NoArgsConstructor;
+
+@NoArgsConstructor(access = AccessLevel.PRIVATE)
+public class CaeHttpClientFactory {
+
+ public static final HttpRequestStarter REQUEST_STARTER = new HttpRequestStarterImplementation();
+
+ public static HttpRequestStarter getSingletonClient(){
+ return CaeHttpClientFactory.REQUEST_STARTER;
+ }
+
+}
diff --git a/src/test/java/com/cae/http_client/CaeHttpClientFactoryTest.java b/src/test/java/com/cae/http_client/CaeHttpClientFactoryTest.java
new file mode 100644
index 0000000..7b0d768
--- /dev/null
+++ b/src/test/java/com/cae/http_client/CaeHttpClientFactoryTest.java
@@ -0,0 +1,34 @@
+package com.cae.http_client;
+
+import org.junit.jupiter.api.Assertions;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.ExtendWith;
+import org.mockito.junit.jupiter.MockitoExtension;
+
+@ExtendWith(MockitoExtension.class)
+class CaeHttpClientFactoryTest {
+
+ @Test
+ void shouldReturnFilledInstance(){
+ Assertions.assertNotNull(CaeHttpClientFactory.REQUEST_STARTER);
+ }
+
+ @Test
+ void shouldReturnSingletonInstanceWhenDirectlyCallingAttribute(){
+ var resultFromCallOne = CaeHttpClientFactory.REQUEST_STARTER;
+ var resultFromCallTwo = CaeHttpClientFactory.REQUEST_STARTER;
+ var resultFromCallThree = CaeHttpClientFactory.REQUEST_STARTER;
+ Assertions.assertEquals(resultFromCallOne, resultFromCallTwo);
+ Assertions.assertEquals(resultFromCallTwo, resultFromCallThree);
+ }
+
+ @Test
+ void shouldReturnSingletonInstanceWhenCallingGetter(){
+ var resultFromCallOne = CaeHttpClientFactory.getSingletonClient();
+ var resultFromCallTwo = CaeHttpClientFactory.getSingletonClient();
+ var resultFromCallThree = CaeHttpClientFactory.getSingletonClient();
+ Assertions.assertEquals(resultFromCallOne, resultFromCallTwo);
+ Assertions.assertEquals(resultFromCallTwo, resultFromCallThree);
+ }
+
+}