From 97269bd82d1240b72b6559d0d82df39af7dc94df Mon Sep 17 00:00:00 2001 From: a_darafeyeu Date: Thu, 22 Oct 2020 19:09:49 +0300 Subject: [PATCH 1/4] adds recordIdVersions to createOrUpdateRecords RS --- .../opengroup/osdu/storage/api/RecordApi.java | 36 +++++----- .../CreateUpdateRecordsResponseMapper.java | 38 +++++++++++ .../response/CreateUpdateRecordsResponse.java | 35 ++++++---- .../osdu/storage/api/RecordApiTest.java | 38 +++++------ ...CreateUpdateRecordsResponseMapperTest.java | 66 +++++++++++++++++++ .../CreateUpdateRecordsResponseTest.java | 57 ---------------- 6 files changed, 164 insertions(+), 106 deletions(-) create mode 100644 storage-core/src/main/java/org/opengroup/osdu/storage/mapper/CreateUpdateRecordsResponseMapper.java create mode 100644 storage-core/src/test/java/org/opengroup/osdu/storage/mapper/CreateUpdateRecordsResponseMapperTest.java delete mode 100644 storage-core/src/test/java/org/opengroup/osdu/storage/response/CreateUpdateRecordsResponseTest.java diff --git a/storage-core/src/main/java/org/opengroup/osdu/storage/api/RecordApi.java b/storage-core/src/main/java/org/opengroup/osdu/storage/api/RecordApi.java index 17719bd0..41be38ba 100644 --- a/storage-core/src/main/java/org/opengroup/osdu/storage/api/RecordApi.java +++ b/storage-core/src/main/java/org/opengroup/osdu/storage/api/RecordApi.java @@ -22,6 +22,16 @@ import javax.validation.constraints.Pattern; import javax.validation.constraints.Size; import org.opengroup.osdu.core.common.model.http.DpsHeaders; +import org.opengroup.osdu.core.common.model.storage.Record; +import org.opengroup.osdu.core.common.model.storage.RecordVersions; +import org.opengroup.osdu.core.common.model.storage.StorageRole; +import org.opengroup.osdu.core.common.model.storage.TransferInfo; +import org.opengroup.osdu.core.common.model.storage.validation.ValidationDoc; +import org.opengroup.osdu.core.common.storage.IngestionService; +import org.opengroup.osdu.storage.mapper.CreateUpdateRecordsResponseMapper; +import org.opengroup.osdu.storage.response.CreateUpdateRecordsResponse; +import org.opengroup.osdu.storage.service.QueryService; +import org.opengroup.osdu.storage.service.RecordService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; @@ -35,17 +45,8 @@ import org.springframework.web.bind.annotation.PutMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseStatus; import org.springframework.web.bind.annotation.RestController; - -import org.opengroup.osdu.core.common.model.storage.Record; -import org.opengroup.osdu.core.common.model.storage.RecordVersions; -import org.opengroup.osdu.core.common.model.storage.StorageRole; -import org.opengroup.osdu.core.common.model.storage.TransferInfo; -import org.opengroup.osdu.storage.response.CreateUpdateRecordsResponse; -import org.opengroup.osdu.core.common.storage.IngestionService; -import org.opengroup.osdu.storage.service.QueryService; -import org.opengroup.osdu.storage.service.RecordService; -import org.opengroup.osdu.core.common.model.storage.validation.ValidationDoc; import org.springframework.web.context.annotation.RequestScope; @RestController @@ -66,16 +67,17 @@ public class RecordApi { @Autowired private RecordService recordService; - @PutMapping() + @Autowired + private CreateUpdateRecordsResponseMapper createUpdateRecordsResponseMapper; + + @PutMapping @PreAuthorize("@authorizationFilter.hasRole('" + StorageRole.CREATOR + "', '" + StorageRole.ADMIN + "')") - public ResponseEntity createOrUpdateRecords( - @RequestParam(required = false) boolean skipdupes, + @ResponseStatus(HttpStatus.CREATED) + public CreateUpdateRecordsResponse createOrUpdateRecords(@RequestParam(required = false) boolean skipdupes, @RequestBody @Valid @NotEmpty @Size(max = 500, message = ValidationDoc.RECORDS_MAX) List records) { - TransferInfo transfer = this.ingestionService.createUpdateRecords(skipdupes, records, - this.headers.getUserEmail()); - CreateUpdateRecordsResponse transferResponse = new CreateUpdateRecordsResponse(transfer, records); - return new ResponseEntity(transferResponse, HttpStatus.CREATED); + TransferInfo transfer = ingestionService.createUpdateRecords(skipdupes, records, headers.getUserEmail()); + return createUpdateRecordsResponseMapper.map(transfer, records); } @GetMapping("/versions/{id}") diff --git a/storage-core/src/main/java/org/opengroup/osdu/storage/mapper/CreateUpdateRecordsResponseMapper.java b/storage-core/src/main/java/org/opengroup/osdu/storage/mapper/CreateUpdateRecordsResponseMapper.java new file mode 100644 index 00000000..0b608632 --- /dev/null +++ b/storage-core/src/main/java/org/opengroup/osdu/storage/mapper/CreateUpdateRecordsResponseMapper.java @@ -0,0 +1,38 @@ +// Copyright 2017-2021, Schlumberger +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package org.opengroup.osdu.storage.mapper; + +import java.util.List; + +import org.opengroup.osdu.core.common.model.storage.Record; +import org.opengroup.osdu.core.common.model.storage.TransferInfo; +import org.opengroup.osdu.storage.response.CreateUpdateRecordsResponse; +import org.springframework.stereotype.Component; + +@Component +public class CreateUpdateRecordsResponseMapper { + + public CreateUpdateRecordsResponse map(TransferInfo transferInfo, List records) { + CreateUpdateRecordsResponse response = new CreateUpdateRecordsResponse(); + response.setRecordCount(transferInfo.getRecordCount()); + response.setSkippedRecordIds(transferInfo.getSkippedRecords()); + + records.stream().filter(o -> !response.getSkippedRecordIds().contains(o.getId())) + .forEach(r -> response.addRecord(r.getId(), transferInfo.getVersion())); + + return response; + } + +} diff --git a/storage-core/src/main/java/org/opengroup/osdu/storage/response/CreateUpdateRecordsResponse.java b/storage-core/src/main/java/org/opengroup/osdu/storage/response/CreateUpdateRecordsResponse.java index 8112726e..1a45086b 100644 --- a/storage-core/src/main/java/org/opengroup/osdu/storage/response/CreateUpdateRecordsResponse.java +++ b/storage-core/src/main/java/org/opengroup/osdu/storage/response/CreateUpdateRecordsResponse.java @@ -17,26 +17,35 @@ package org.opengroup.osdu.storage.response; import java.util.ArrayList; import java.util.List; -import org.opengroup.osdu.core.common.model.storage.Record; -import org.opengroup.osdu.core.common.model.storage.TransferInfo; - import lombok.Data; @Data public class CreateUpdateRecordsResponse { - private Integer recordCount; + private Integer recordCount; + + private List recordIds; + + private List skippedRecordIds; - private List recordIds; + private List recordIdVersions; - private List skippedRecordIds; + public void addRecord(String id, Long version) { + addRecordIds(id); + addRecordIdVersions(id, version); + } - public CreateUpdateRecordsResponse(TransferInfo transferInfo, List records) { - this.recordCount = transferInfo.getRecordCount(); - this.skippedRecordIds = transferInfo.getSkippedRecords(); - this.recordIds = new ArrayList<>(); + public void addRecordIds(String recordId) { + if (this.recordIds == null) { + this.recordIds = new ArrayList<>(); + } + this.recordIds.add(recordId); + } - records.forEach(r -> this.recordIds.add(r.getId())); - this.recordIds.removeAll(this.skippedRecordIds); - } + public void addRecordIdVersions(String id, Long version) { + if (this.recordIdVersions == null) { + this.recordIdVersions = new ArrayList<>(); + } + this.recordIdVersions.add(id + ':' + version); + } } \ No newline at end of file diff --git a/storage-core/src/test/java/org/opengroup/osdu/storage/api/RecordApiTest.java b/storage-core/src/test/java/org/opengroup/osdu/storage/api/RecordApiTest.java index 7b83eeae..d1b0ab6c 100644 --- a/storage-core/src/test/java/org/opengroup/osdu/storage/api/RecordApiTest.java +++ b/storage-core/src/test/java/org/opengroup/osdu/storage/api/RecordApiTest.java @@ -16,14 +16,16 @@ package org.opengroup.osdu.storage.api; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertTrue; import static org.mockito.Mockito.when; import static org.mockito.MockitoAnnotations.initMocks; import java.lang.reflect.Method; import java.util.ArrayList; +import java.util.Collections; import java.util.List; - +import java.util.Random; import org.apache.http.HttpStatus; import org.junit.Before; @@ -31,19 +33,19 @@ import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.InjectMocks; import org.mockito.Mock; - +import org.mockito.runners.MockitoJUnitRunner; +import org.opengroup.osdu.core.common.model.http.DpsHeaders; import org.opengroup.osdu.core.common.model.storage.Record; import org.opengroup.osdu.core.common.model.storage.RecordVersions; import org.opengroup.osdu.core.common.model.storage.StorageRole; import org.opengroup.osdu.core.common.model.storage.TransferInfo; -import org.opengroup.osdu.storage.response.CreateUpdateRecordsResponse; +import org.opengroup.osdu.core.common.model.tenant.TenantInfo; import org.opengroup.osdu.core.common.storage.IngestionService; +import org.opengroup.osdu.storage.mapper.CreateUpdateRecordsResponseMapper; +import org.opengroup.osdu.storage.response.CreateUpdateRecordsResponse; import org.opengroup.osdu.storage.service.QueryService; import org.opengroup.osdu.storage.service.RecordService; -import org.opengroup.osdu.core.common.model.http.DpsHeaders; -import org.opengroup.osdu.core.common.model.tenant.TenantInfo; import org.springframework.http.ResponseEntity; -import org.mockito.runners.MockitoJUnitRunner; import org.springframework.security.access.prepost.PreAuthorize; @RunWith(MockitoJUnitRunner.class) @@ -64,6 +66,9 @@ public class RecordApiTest { @Mock private DpsHeaders httpHeaders; + @Mock + private CreateUpdateRecordsResponseMapper createUpdateRecordsResponseMapper; + @InjectMocks private RecordApi sut; @@ -73,15 +78,15 @@ public class RecordApiTest { when(this.httpHeaders.getUserEmail()).thenReturn(this.USER); when(this.httpHeaders.getPartitionIdWithFallbackToAccountId()).thenReturn(this.TENANT); - TenantInfo tenant = new TenantInfo(); tenant.setName(this.TENANT); } @Test public void should_returnsHttp201_when_creatingOrUpdatingRecordsSuccessfully() { - TransferInfo transfer = new TransferInfo(); + transfer.setSkippedRecords(Collections.singletonList("ID1")); + transfer.setVersion(System.currentTimeMillis() * 1000L + (new Random()).nextInt(1000) + 1); Record r1 = new Record(); r1.setId("ID1"); @@ -93,19 +98,15 @@ public class RecordApiTest { records.add(r1); records.add(r2); - CreateUpdateRecordsResponse expectedResponse = new CreateUpdateRecordsResponse(transfer, records); - when(this.ingestionService.createUpdateRecords(false, records, this.USER)).thenReturn(transfer); + when(createUpdateRecordsResponseMapper.map(transfer, records)).thenReturn(new CreateUpdateRecordsResponse()); - ResponseEntity response = this.sut.createOrUpdateRecords(false, records); - - assertEquals(HttpStatus.SC_CREATED, response.getStatusCodeValue()); - assertEquals(expectedResponse, response.getBody()); + CreateUpdateRecordsResponse response = this.sut.createOrUpdateRecords(false, records); + assertNotNull(response); } @Test public void should_returnRecordIds_when_recordsAreNotUpdatedBecauseOfSkipDupes() { - TransferInfo transfer = new TransferInfo(); transfer.getSkippedRecords().add("id5"); @@ -116,11 +117,10 @@ public class RecordApiTest { records.add(r1); when(this.ingestionService.createUpdateRecords(false, records, this.USER)).thenReturn(transfer); + when(createUpdateRecordsResponseMapper.map(transfer, records)).thenReturn(new CreateUpdateRecordsResponse()); - ResponseEntity response = this.sut.createOrUpdateRecords(false, records); - - assertEquals(HttpStatus.SC_CREATED, response.getStatusCodeValue()); - assertEquals("id5", ((CreateUpdateRecordsResponse) response.getBody()).getSkippedRecordIds().get(0)); + CreateUpdateRecordsResponse response = this.sut.createOrUpdateRecords(false, records); + assertNotNull(response); } @Test diff --git a/storage-core/src/test/java/org/opengroup/osdu/storage/mapper/CreateUpdateRecordsResponseMapperTest.java b/storage-core/src/test/java/org/opengroup/osdu/storage/mapper/CreateUpdateRecordsResponseMapperTest.java new file mode 100644 index 00000000..ea6e8bc5 --- /dev/null +++ b/storage-core/src/test/java/org/opengroup/osdu/storage/mapper/CreateUpdateRecordsResponseMapperTest.java @@ -0,0 +1,66 @@ +// Copyright 2017-2021, Schlumberger +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package org.opengroup.osdu.storage.mapper; + +import static org.junit.Assert.assertArrayEquals; +import static org.junit.Assert.assertEquals; + +import java.util.Arrays; +import java.util.List; +import java.util.Random; + +import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.runners.MockitoJUnitRunner; +import org.opengroup.osdu.core.common.model.storage.Record; +import org.opengroup.osdu.core.common.model.storage.TransferInfo; +import org.opengroup.osdu.storage.response.CreateUpdateRecordsResponse; + +@RunWith(MockitoJUnitRunner.class) +public class CreateUpdateRecordsResponseMapperTest { + + private final CreateUpdateRecordsResponseMapper mapper = new CreateUpdateRecordsResponseMapper(); + + @Test + public void should_returnRecordIdsSkippedRecordIdsInMutualExclusiveListsPlusTotalRecordCountInResponse_when_creatingPutResponse() { + + Record r1 = new Record(); + r1.setId("my id 1"); + + Record r2 = new Record(); + r2.setId("my id 2"); + + Record r3 = new Record(); + r3.setId("my id 3"); + + Record r4 = new Record(); + r4.setId("my id 4"); + + TransferInfo transfer = new TransferInfo(); + long version = System.currentTimeMillis() * 1000L + (new Random()).nextInt(1000) + 1; + transfer.setVersion(version); + transfer.setRecordCount(4); + transfer.setSkippedRecords(Arrays.asList("my id 4", "my id 1")); + + List records = Arrays.asList(r1, r2, r3, r4); + + CreateUpdateRecordsResponse response = mapper.map(transfer, records); + + assertEquals(new Integer(4), response.getRecordCount()); + assertArrayEquals(new String[]{"my id 2:"+ version, "my id 3:" + version}, response.getRecordIdVersions().toArray()); + assertArrayEquals(new String[]{"my id 2", "my id 3"}, response.getRecordIds().toArray()); + assertArrayEquals(new String[]{"my id 4", "my id 1"}, response.getSkippedRecordIds().toArray()); + } +} \ No newline at end of file diff --git a/storage-core/src/test/java/org/opengroup/osdu/storage/response/CreateUpdateRecordsResponseTest.java b/storage-core/src/test/java/org/opengroup/osdu/storage/response/CreateUpdateRecordsResponseTest.java deleted file mode 100644 index 9b1c60af..00000000 --- a/storage-core/src/test/java/org/opengroup/osdu/storage/response/CreateUpdateRecordsResponseTest.java +++ /dev/null @@ -1,57 +0,0 @@ -// Copyright 2017-2019, Schlumberger -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package org.opengroup.osdu.storage.response; - -import static org.junit.Assert.assertArrayEquals; -import static org.junit.Assert.assertEquals; - -import java.util.List; - -import org.junit.Test; - -import com.google.common.collect.Lists; -import org.opengroup.osdu.core.common.model.storage.Record; -import org.opengroup.osdu.core.common.model.storage.TransferInfo; - -public class CreateUpdateRecordsResponseTest { - - @Test - public void should_returnRecordIdsSkippedRecordIdsInMutualExclusiveListsPlusTotalRecordCountInResponse_when_creatingPutResponse() { - - Record r1 = new Record(); - r1.setId("my id 1"); - - Record r2 = new Record(); - r2.setId("my id 2"); - - Record r3 = new Record(); - r3.setId("my id 3"); - - Record r4 = new Record(); - r4.setId("my id 4"); - - TransferInfo transfer = new TransferInfo(); - transfer.setRecordCount(4); - transfer.setSkippedRecords(Lists.newArrayList("my id 4", "my id 1")); - - List records = Lists.newArrayList(r1, r2, r3, r4); - - CreateUpdateRecordsResponse response = new CreateUpdateRecordsResponse(transfer, records); - - assertEquals(new Integer(4), response.getRecordCount()); - assertArrayEquals(new String[] { "my id 2", "my id 3" }, response.getRecordIds().toArray()); - assertArrayEquals(new String[] { "my id 4", "my id 1" }, response.getSkippedRecordIds().toArray()); - } -} \ No newline at end of file -- GitLab From b5329dcce22cc73f615ee23fa9d025fb188dc2e2 Mon Sep 17 00:00:00 2001 From: a_darafeyeu Date: Tue, 27 Oct 2020 18:07:36 +0300 Subject: [PATCH 2/4] updates integration tests --- .../PopulateLegalInfoFromParentRecordsTests.java | 1 + .../opengroup/osdu/storage/misc/StressTests.java | 1 + .../records/LogicalRecordDeleteTests.java | 1 + .../records/RecordsApiAcceptanceTests.java | 16 +++++++++++++--- .../osdu/storage/util/DummyRecordsHelper.java | 1 + 5 files changed, 17 insertions(+), 3 deletions(-) diff --git a/testing/storage-test-core/src/main/java/org/opengroup/osdu/storage/legal/PopulateLegalInfoFromParentRecordsTests.java b/testing/storage-test-core/src/main/java/org/opengroup/osdu/storage/legal/PopulateLegalInfoFromParentRecordsTests.java index 8ccb8c8c..42be6361 100644 --- a/testing/storage-test-core/src/main/java/org/opengroup/osdu/storage/legal/PopulateLegalInfoFromParentRecordsTests.java +++ b/testing/storage-test-core/src/main/java/org/opengroup/osdu/storage/legal/PopulateLegalInfoFromParentRecordsTests.java @@ -222,6 +222,7 @@ public abstract class PopulateLegalInfoFromParentRecordsTests extends TestBase { assertEquals(1, result.recordCount); assertEquals(1, result.recordIds.length); + assertEquals(1, result.recordIdVersions.length); assertEquals(parentId, result.recordIds[0]); } diff --git a/testing/storage-test-core/src/main/java/org/opengroup/osdu/storage/misc/StressTests.java b/testing/storage-test-core/src/main/java/org/opengroup/osdu/storage/misc/StressTests.java index 668f33a7..b906927f 100644 --- a/testing/storage-test-core/src/main/java/org/opengroup/osdu/storage/misc/StressTests.java +++ b/testing/storage-test-core/src/main/java/org/opengroup/osdu/storage/misc/StressTests.java @@ -88,6 +88,7 @@ public abstract class StressTests extends TestBase { DummyRecordsHelper.CreateRecordResponse.class); assertEquals(capacity, result.recordCount); assertEquals(capacity, result.recordIds.length); + assertEquals(capacity, result.recordIdVersions.length); startMillis = System.currentTimeMillis(); response = TestUtils.send("records", "PUT", HeaderUtils.getHeaders(TenantUtils.getTenantName(), testUtils.getToken()), json, "?skipdupes=false"); diff --git a/testing/storage-test-core/src/main/java/org/opengroup/osdu/storage/records/LogicalRecordDeleteTests.java b/testing/storage-test-core/src/main/java/org/opengroup/osdu/storage/records/LogicalRecordDeleteTests.java index 5b40f11e..25a7ace7 100644 --- a/testing/storage-test-core/src/main/java/org/opengroup/osdu/storage/records/LogicalRecordDeleteTests.java +++ b/testing/storage-test-core/src/main/java/org/opengroup/osdu/storage/records/LogicalRecordDeleteTests.java @@ -55,6 +55,7 @@ public abstract class LogicalRecordDeleteTests extends TestBase { assertEquals(1, result.recordCount); assertEquals(1, result.recordIds.length); + assertEquals(1, result.recordIdVersions.length); assertEquals(RECORD_ID, result.recordIds[0]); } diff --git a/testing/storage-test-core/src/main/java/org/opengroup/osdu/storage/records/RecordsApiAcceptanceTests.java b/testing/storage-test-core/src/main/java/org/opengroup/osdu/storage/records/RecordsApiAcceptanceTests.java index 27e45e63..6cd45157 100644 --- a/testing/storage-test-core/src/main/java/org/opengroup/osdu/storage/records/RecordsApiAcceptanceTests.java +++ b/testing/storage-test-core/src/main/java/org/opengroup/osdu/storage/records/RecordsApiAcceptanceTests.java @@ -16,6 +16,8 @@ package org.opengroup.osdu.storage.records; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotEquals; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertNull; import static org.junit.Assert.assertTrue; import java.util.Arrays; @@ -75,6 +77,7 @@ public abstract class RecordsApiAcceptanceTests extends TestBase { assertEquals(1, result.recordCount); assertEquals(1, result.recordIds.length); + assertEquals(1, result.recordIdVersions.length); assertEquals(RECORD_NEW_ID, result.recordIds[0]); response = TestUtils.send("records/" + RECORD_NEW_ID, "GET", HeaderUtils.getHeaders(TenantUtils.getTenantName(), testUtils.getToken()), "", ""); @@ -95,8 +98,10 @@ public abstract class RecordsApiAcceptanceTests extends TestBase { response = TestUtils.send("records", "PUT", HeaderUtils.getHeaders(TenantUtils.getTenantName(), testUtils.getToken()), jsonInput, "?skipdupes=true"); DummyRecordsHelper.CreateRecordResponse result = TestUtils.getResult(response, 201, DummyRecordsHelper.CreateRecordResponse.class); + assertNotNull(result); assertEquals(1, result.recordCount); assertEquals(1, result.recordIds.length); + assertEquals(1, result.recordIdVersions.length); assertEquals(0, result.skippedRecordIds.length); assertEquals(RECORD_ID, result.recordIds[0]); @@ -108,8 +113,10 @@ public abstract class RecordsApiAcceptanceTests extends TestBase { // use skip dupes to skip update response = TestUtils.send("records", "PUT", HeaderUtils.getHeaders(TenantUtils.getTenantName(), testUtils.getToken()), jsonInput, "?skipdupes=true"); result = TestUtils.getResult(response, 201, DummyRecordsHelper.CreateRecordResponse.class); + assertNotNull(result); assertEquals(1, result.recordCount); - assertEquals(0, result.recordIds.length); + assertNull(result.recordIds); + assertNull(result.recordIdVersions); assertEquals("Expected to skip the update when the data was the same as previous update and skipdupes is true", 1, result.skippedRecordIds.length); assertEquals(RECORD_ID, result.skippedRecordIds[0]); @@ -122,8 +129,10 @@ public abstract class RecordsApiAcceptanceTests extends TestBase { // set skip dupes to false to make the update with same data response = TestUtils.send("records", "PUT", HeaderUtils.getHeaders(TenantUtils.getTenantName(), testUtils.getToken()), jsonInput, "?skipdupes=false"); result = TestUtils.getResult(response, 201, DummyRecordsHelper.CreateRecordResponse.class); + assertNotNull(result); assertEquals(1, result.recordCount); assertEquals(1, result.recordIds.length); + assertEquals(1, result.recordIdVersions.length); assertEquals("Expected to NOT skip the update when data is the same but skipdupes is false", 0, result.skippedRecordIds.length); assertEquals(RECORD_ID, result.recordIds[0]); @@ -254,9 +263,10 @@ public abstract class RecordsApiAcceptanceTests extends TestBase { String body = createJsonBody(RECORD_ID, "Foo"); ClientResponse response = TestUtils.send("records", "PUT", HeaderUtils.getHeaders(TenantUtils.getTenantName(), testUtils.getToken()), body, "?skipdupes=true"); DummyRecordsHelper.CreateRecordResponse result = TestUtils.getResult(response, 201, DummyRecordsHelper.CreateRecordResponse.class); + assertNotNull(result); assertEquals(1, result.recordCount); - assertEquals("Expected to insert the new record when skipdupes is true", - 1, result.recordIds.length); + assertEquals("Expected to insert the new record when skipdupes is true", 1, result.recordIds.length); + assertEquals(1, result.recordIdVersions.length); assertEquals(RECORD_ID, result.recordIds[0]); response = TestUtils.send("records/" + RECORD_ID, "DELETE", HeaderUtils.getHeaders(TenantUtils.getTenantName(), testUtils.getToken()), "", ""); assertEquals(HttpStatus.SC_NO_CONTENT, response.getStatus()); diff --git a/testing/storage-test-core/src/main/java/org/opengroup/osdu/storage/util/DummyRecordsHelper.java b/testing/storage-test-core/src/main/java/org/opengroup/osdu/storage/util/DummyRecordsHelper.java index 3fe466df..77310986 100644 --- a/testing/storage-test-core/src/main/java/org/opengroup/osdu/storage/util/DummyRecordsHelper.java +++ b/testing/storage-test-core/src/main/java/org/opengroup/osdu/storage/util/DummyRecordsHelper.java @@ -110,5 +110,6 @@ public class DummyRecordsHelper { public int recordCount; public String[] recordIds; public String[] skippedRecordIds; + public String[] recordIdVersions; } } \ No newline at end of file -- GitLab From 22379ba7cccbeea1c6392e121be2256dc7e78581 Mon Sep 17 00:00:00 2001 From: a_darafeyeu Date: Tue, 17 Nov 2020 16:05:56 +0300 Subject: [PATCH 3/4] disable health check for azure-key-vault --- .../storage-azure/src/main/resources/application.properties | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/provider/storage-azure/src/main/resources/application.properties b/provider/storage-azure/src/main/resources/application.properties index 3f43df87..8dfee0a6 100644 --- a/provider/storage-azure/src/main/resources/application.properties +++ b/provider/storage-azure/src/main/resources/application.properties @@ -71,4 +71,7 @@ redis.database=${REDIS_DATABASE} # Azure Event Grid Configuration azure.publishToEventGrid=true -azure.eventGridBatchSize=10 \ No newline at end of file +azure.eventGridBatchSize=10 + +#Health checks +management.health.azure-key-vault.enabled=false \ No newline at end of file -- GitLab From 34588aecbbe3946cbbb100bc01831075cc7735c2 Mon Sep 17 00:00:00 2001 From: a_darafeyeu Date: Tue, 23 Feb 2021 12:16:04 +0300 Subject: [PATCH 4/4] review issue --- .../osdu/storage/response/CreateUpdateRecordsResponse.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/storage-core/src/main/java/org/opengroup/osdu/storage/response/CreateUpdateRecordsResponse.java b/storage-core/src/main/java/org/opengroup/osdu/storage/response/CreateUpdateRecordsResponse.java index 1a45086b..5df736d3 100644 --- a/storage-core/src/main/java/org/opengroup/osdu/storage/response/CreateUpdateRecordsResponse.java +++ b/storage-core/src/main/java/org/opengroup/osdu/storage/response/CreateUpdateRecordsResponse.java @@ -35,17 +35,17 @@ public class CreateUpdateRecordsResponse { addRecordIdVersions(id, version); } - public void addRecordIds(String recordId) { + private void addRecordIds(String recordId) { if (this.recordIds == null) { this.recordIds = new ArrayList<>(); } this.recordIds.add(recordId); } - public void addRecordIdVersions(String id, Long version) { + private void addRecordIdVersions(String id, Long version) { if (this.recordIdVersions == null) { this.recordIdVersions = new ArrayList<>(); } this.recordIdVersions.add(id + ':' + version); } -} \ No newline at end of file +} -- GitLab