Skip to content

Commit

Permalink
Merge 89a5d58 into 20db8ad
Browse files Browse the repository at this point in the history
  • Loading branch information
HamzaJugon committed Nov 3, 2023
2 parents 20db8ad + 89a5d58 commit 5806092
Show file tree
Hide file tree
Showing 6 changed files with 223 additions and 68 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -37,13 +37,18 @@ public final class MetadataResponseConverter {
public static Page<HousekeepingMetadataResponse> convertToHousekeepingMetadataResponsePage(
Page<HousekeepingMetadata> housekeepingMetadataPage) {
List<HousekeepingMetadata> housekeepingMetadataList = housekeepingMetadataPage.getContent();
//Create a new ArrayList to store the HousekeepingMetadataResponse objects.
List<HousekeepingMetadataResponse> housekeepingMetadataResponseList = new ArrayList<>();
//Iterate over the list of HousekeepingMetadata objects and convert each one to a HousekeepingMetadataResponse object.
for (HousekeepingMetadata housekeepingMetadata : housekeepingMetadataList) {
HousekeepingMetadataResponse housekeepingMetadataResponse = convertToHousekeepingMetadataResponse(
housekeepingMetadata);
HousekeepingMetadataResponse housekeepingMetadataResponse = convertToHousekeepingMetadataResponse(housekeepingMetadata);
housekeepingMetadataResponseList.add(housekeepingMetadataResponse);
}
return new PageImpl<>(housekeepingMetadataResponseList);
//Create a new PageImpl<HousekeepingMetadataResponse> object using the HousekeepingMetadataResponse list, the Pageable
// object from the HousekeepingMetadataPage object, and the total number of elements from the HousekeepingMetadataPage object.
PageImpl<HousekeepingMetadataResponse> housekeepingMetadataResponses = new PageImpl<>(
housekeepingMetadataResponseList, housekeepingMetadataPage.getPageable(), housekeepingMetadataPage.getTotalElements());
return housekeepingMetadataResponses;
}

private static HousekeepingMetadataResponse convertToHousekeepingMetadataResponse(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -51,12 +51,16 @@ private static HousekeepingPathResponse convertToHousekeepingPathResponse(Housek
public static Page<HousekeepingPathResponse> convertToHousekeepingPathResponsePage(
Page<HousekeepingPath> housekeepingPathPage) {
List<HousekeepingPath> housekeepingPathList = housekeepingPathPage.getContent();
//Create a new ArrayList to store the HousekeepingPathResponse objects.
List<HousekeepingPathResponse> housekeepingPathResponseList = new ArrayList<>();
//Iterate over the list of HousekeepingPath objects and convert each one to a HousekeepingPathResponse object.
for (HousekeepingPath housekeepingPath : housekeepingPathList) {
HousekeepingPathResponse housekeepingPathResponse = convertToHousekeepingPathResponse(housekeepingPath);
housekeepingPathResponseList.add(housekeepingPathResponse);
}
return new PageImpl<>(housekeepingPathResponseList);
PageImpl<HousekeepingPathResponse> HousekeepingPathResponses = new PageImpl<>(
housekeepingPathResponseList, housekeepingPathPage.getPageable(), housekeepingPathPage.getTotalElements());
return HousekeepingPathResponses;
}

}
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/**
* Copyright (C) 2019-2021 Expedia, Inc.
* Copyright (C) 2019-2023 Expedia, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
Expand All @@ -21,11 +21,13 @@
import static com.expediagroup.beekeeper.api.util.DummyHousekeepingEntityGenerator.generateDummyHousekeepingMetadata;
import static com.expediagroup.beekeeper.api.util.DummyHousekeepingEntityGenerator.generateDummyHousekeepingMetadataResponse;

import java.util.ArrayList;
import java.util.List;

import org.junit.jupiter.api.Test;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageImpl;
import org.springframework.data.domain.PageRequest;

import com.expediagroup.beekeeper.core.model.HousekeepingMetadata;

Expand All @@ -46,7 +48,27 @@ public void testConvertToHouseKeepingMetadataResponsePage() {

assertThat(metadataResponsePageList.get(0)).isEqualTo(metadataResponse1);
assertThat(metadataResponsePageList.get(1)).isEqualTo(metadataResponse2);
assertThat(metadataResponsePage.getTotalElements()).isEqualTo(2L);
assertThat(metadataResponsePage.getTotalPages()).isEqualTo(1L);
assertThat(metadataResponsePage.getPageable()).isEqualTo((new PageImpl<>(housekeepingMetadataList).getPageable()));
}

@Test
public void testConvertToHouseKeepingMetadataResponsePageWithMultiplePages() {
// Create a list of housekeeping metadata objects that is larger than the page size
List<HousekeepingMetadata> housekeepingMetadataList = new ArrayList<>();
for (int i = 0; i < 50; i++) {
housekeepingMetadataList.add(generateDummyHousekeepingMetadata("some_database" + i, "some_table" + i));
}

// Create a page of housekeeping metadata objects
Page<HousekeepingMetadata> metadataPage = new PageImpl<>(housekeepingMetadataList, PageRequest.of(0, 10), 50);

// Convert the page of housekeeping metadata objects to a page of housekeeping metadata response objects
Page<HousekeepingMetadataResponse> metadataResponsePage = convertToHousekeepingMetadataResponsePage(metadataPage);

// Assert that the housekeeping metadata response page has the correct total elements and total pages
assertThat(metadataResponsePage.getTotalElements()).isEqualTo(50L);
assertThat(metadataResponsePage.getTotalPages()).isEqualTo(5L);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
/**
* Copyright (C) 2019-2023 Expedia, Inc.
*
* 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 com.expediagroup.beekeeper.api.response;

import static org.assertj.core.api.AssertionsForClassTypes.assertThat;

import static com.expediagroup.beekeeper.api.response.PathResponseConverter.convertToHousekeepingPathResponsePage;
import static com.expediagroup.beekeeper.api.util.DummyHousekeepingEntityGenerator.generateDummyHousekeepingPath;
import static com.expediagroup.beekeeper.api.util.DummyHousekeepingEntityGenerator.generateDummyHousekeepingPathResponse;

import java.util.List;

import org.junit.jupiter.api.Test;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageImpl;

import com.expediagroup.beekeeper.core.model.HousekeepingPath;

public class PathResponseConverterTest {

@Test
public void testConvertToHousekeepingPathResponsePage() {
HousekeepingPath housekeepingPath1 = generateDummyHousekeepingPath("some_database1", "some_table1");
HousekeepingPath housekeepingPath2 = generateDummyHousekeepingPath("some_database2", "some_table2");
HousekeepingPathResponse housekeepingPathResponse1 = generateDummyHousekeepingPathResponse(housekeepingPath1);
HousekeepingPathResponse housekeepingPathResponse2 = generateDummyHousekeepingPathResponse(housekeepingPath2);

List<HousekeepingPath> housekeepingPathList = List.of(housekeepingPath1, housekeepingPath2);
Page<HousekeepingPathResponse> housekeepingPathResponsePage = convertToHousekeepingPathResponsePage(
new PageImpl<>(housekeepingPathList));

List<HousekeepingPathResponse> housekeepingPathResponsePageList = housekeepingPathResponsePage.getContent();

assertThat(housekeepingPathResponsePageList.get(0)).isEqualTo(housekeepingPathResponse1);
assertThat(housekeepingPathResponsePageList.get(1)).isEqualTo(housekeepingPathResponse2);
assertThat(housekeepingPathResponsePage.getTotalElements()).isEqualTo(2L);
assertThat(housekeepingPathResponsePage.getTotalPages()).isEqualTo(1L);
assertThat(housekeepingPathResponsePage.getPageable()).isEqualTo((new PageImpl<>(housekeepingPathList).getPageable()));
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@
import java.time.ZoneId;

import com.expediagroup.beekeeper.api.response.HousekeepingMetadataResponse;
import com.expediagroup.beekeeper.api.response.HousekeepingPathResponse;
import com.expediagroup.beekeeper.core.model.HousekeepingMetadata;
import com.expediagroup.beekeeper.core.model.HousekeepingPath;
import com.expediagroup.beekeeper.core.model.PeriodDuration;
Expand Down Expand Up @@ -88,4 +89,19 @@ public static HousekeepingPath generateDummyHousekeepingPath(String databaseName
.build();
}

public static HousekeepingPathResponse generateDummyHousekeepingPathResponse(HousekeepingPath housekeepingPath) {
return HousekeepingPathResponse
.builder()
.path("s3://some/path/")
.databaseName(housekeepingPath.getDatabaseName())
.tableName(housekeepingPath.getTableName())
.housekeepingStatus(SCHEDULED)
.creationTimestamp(CREATION_TIMESTAMP)
.modifiedTimestamp(CREATION_TIMESTAMP)
.cleanupTimestamp(housekeepingPath.getCleanupTimestamp())
.cleanupDelay(CLEANUP_DELAY_STRING)
.cleanupAttempts(0)
.lifecycleType(EXPIRED.toString())
.build();
}
}

0 comments on commit 5806092

Please sign in to comment.