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); + } + +}