From ac0584abe2eaf4a8063f24be92b7fc1487c9c2df Mon Sep 17 00:00:00 2001
From: Sviatoslav Nekhaienko <snekhaienko@slb.com>
Date: Tue, 2 Mar 2021 14:36:07 +0200
Subject: [PATCH] change schema retrieval order

---
 .../indexer/service/impl/SchemaProviderImpl.java   |  9 +++------
 .../service/impl/SchemaProviderImplTest.java       | 14 +++++++-------
 2 files changed, 10 insertions(+), 13 deletions(-)

diff --git a/indexer-core/src/main/java/org/opengroup/osdu/indexer/service/impl/SchemaProviderImpl.java b/indexer-core/src/main/java/org/opengroup/osdu/indexer/service/impl/SchemaProviderImpl.java
index 70ef41dd6..2323aeecd 100644
--- a/indexer-core/src/main/java/org/opengroup/osdu/indexer/service/impl/SchemaProviderImpl.java
+++ b/indexer-core/src/main/java/org/opengroup/osdu/indexer/service/impl/SchemaProviderImpl.java
@@ -32,6 +32,7 @@ import java.io.UnsupportedEncodingException;
 import java.net.URISyntaxException;
 import java.net.URLEncoder;
 import java.nio.charset.StandardCharsets;
+import java.util.Objects;
 
 /**
  * Provides implementation of the client service that retrieves schemas from the Schema Service
@@ -58,13 +59,9 @@ public class SchemaProviderImpl implements SchemaService {
 
     @Override
     public String getSchema(String kind) throws URISyntaxException, UnsupportedEncodingException {
-        String schemaFromStorageService = getFromStorageService(kind);
+        String schemaServiceSchema = getFromSchemaService(kind);
 
-        if (schemaFromStorageService != null) {
-            return schemaFromStorageService;
-        }
-
-        return getFromSchemaService(kind);
+        return Objects.nonNull(schemaServiceSchema) ? schemaServiceSchema : getFromStorageService(kind);
     }
 
     protected String getFromSchemaService(String kind) throws UnsupportedEncodingException, URISyntaxException {
diff --git a/indexer-core/src/test/java/org/opengroup/osdu/indexer/service/impl/SchemaProviderImplTest.java b/indexer-core/src/test/java/org/opengroup/osdu/indexer/service/impl/SchemaProviderImplTest.java
index a3c5b46e7..5618773fe 100644
--- a/indexer-core/src/test/java/org/opengroup/osdu/indexer/service/impl/SchemaProviderImplTest.java
+++ b/indexer-core/src/test/java/org/opengroup/osdu/indexer/service/impl/SchemaProviderImplTest.java
@@ -136,7 +136,7 @@ public class SchemaProviderImplTest {
     }
 
     @Test
-    public void should_call_Storage_then_Schema() throws Exception {
+    public void should_call_Schema_then_Storage() throws Exception {
         String kind = "tenant:test:test:1.0.0";
 
         SchemaProviderImpl schemaService = Mockito.mock(SchemaProviderImpl.class);
@@ -148,20 +148,20 @@ public class SchemaProviderImplTest {
         assertNull(recordSchemaResponse);
 
         inOrder.verify(schemaService).getSchema(any());
-        inOrder.verify(schemaService).getFromStorageService(any());
         inOrder.verify(schemaService).getFromSchemaService(any());
+        inOrder.verify(schemaService).getFromStorageService(any());
         verify(schemaService, times(1)).getFromStorageService(any());
         verify(schemaService, times(1)).getFromSchemaService(any());
     }
 
     @Test
-    public void should_call_only_Storage_if_it_returns_result() throws Exception {
+    public void should_call_only_SchemaService_if_it_returns_result() throws Exception {
         String kind = "tenant:test:test:1.0.0";
 
         SchemaProviderImpl schemaService = Mockito.mock(SchemaProviderImpl.class);
         when(schemaService.getSchema(any())).thenCallRealMethod();
         String someSchema = "some schema";
-        when(schemaService.getFromStorageService(any())).thenReturn(someSchema);
+        when(schemaService.getFromSchemaService(any())).thenReturn(someSchema);
 
         InOrder inOrder = inOrder(schemaService);
 
@@ -169,9 +169,9 @@ public class SchemaProviderImplTest {
         assertEquals(recordSchemaResponse, someSchema);
 
         inOrder.verify(schemaService).getSchema(any());
-        inOrder.verify(schemaService).getFromStorageService(any());
-        verify(schemaService, times(0)).getFromSchemaService(any());
-        verify(schemaService, times(1)).getFromStorageService(any());
+        inOrder.verify(schemaService).getFromSchemaService(any());
+        verify(schemaService, times(1)).getFromSchemaService(any());
+        verify(schemaService, times(0)).getFromStorageService(any());
     }
 
 }
\ No newline at end of file
-- 
GitLab