Skip to content

Commit 832f26d

Browse files
committed
Fix getRepushInfo test compilation errors for v2 architecture
Updated tests to match the new v2 method signature: - OLD: GetRepushInfoGrpcResponse getRepushInfo(GetRepushInfoGrpcRequest request) - NEW: RepushInfoResponse getRepushInfo(String, String, Optional<String>, ControllerRequestContext) Changes: - StoreGrpcServiceImplTest: Updated mock setup to use new signature with primitives, changed return type from protobuf to POJO - StoreRequestHandlerTest: Updated direct method calls to pass individual parameters instead of protobuf request, updated assertions for POJO response - StoresRoutesTest: Updated mock setup to match new handler signature All tests now compile and pass successfully.
1 parent 0ddba99 commit 832f26d

3 files changed

Lines changed: 71 additions & 96 deletions

File tree

services/venice-controller/src/test/java/com/linkedin/venice/controller/grpc/server/StoreGrpcServiceImplTest.java

Lines changed: 26 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,13 @@
1414
import static org.testng.Assert.expectThrows;
1515

1616
import com.linkedin.venice.controller.grpc.GrpcRequestResponseConverter;
17+
import com.linkedin.venice.controller.server.ControllerRequestContext;
1718
import com.linkedin.venice.controller.server.StoreRequestHandler;
1819
import com.linkedin.venice.controller.server.VeniceControllerAccessManager;
20+
import com.linkedin.venice.controllerapi.RepushInfo;
21+
import com.linkedin.venice.controllerapi.RepushInfoResponse;
1922
import com.linkedin.venice.exceptions.VeniceException;
23+
import com.linkedin.venice.meta.Version;
2024
import com.linkedin.venice.meta.VersionStatus;
2125
import com.linkedin.venice.protocols.controller.ClusterStoreGrpcInfo;
2226
import com.linkedin.venice.protocols.controller.ControllerGrpcErrorType;
@@ -30,7 +34,6 @@
3034
import com.linkedin.venice.protocols.controller.GetRepushInfoGrpcResponse;
3135
import com.linkedin.venice.protocols.controller.ListStoresGrpcRequest;
3236
import com.linkedin.venice.protocols.controller.ListStoresGrpcResponse;
33-
import com.linkedin.venice.protocols.controller.RepushInfoGrpc;
3437
import com.linkedin.venice.protocols.controller.ResourceCleanupCheckGrpcResponse;
3538
import com.linkedin.venice.protocols.controller.StoreGrpcServiceGrpc;
3639
import com.linkedin.venice.protocols.controller.StoreGrpcServiceGrpc.StoreGrpcServiceBlockingStub;
@@ -39,7 +42,6 @@
3942
import com.linkedin.venice.protocols.controller.ValidateStoreDeletedGrpcRequest;
4043
import com.linkedin.venice.protocols.controller.ValidateStoreDeletedGrpcResponse;
4144
import com.linkedin.venice.protocols.controller.VeniceControllerGrpcErrorInfo;
42-
import com.linkedin.venice.protocols.controller.VersionGrpc;
4345
import io.grpc.ManagedChannel;
4446
import io.grpc.Server;
4547
import io.grpc.Status;
@@ -458,26 +460,23 @@ public void testGetRepushInfoReturnsSuccessfulResponse() {
458460
GetRepushInfoGrpcRequest request =
459461
GetRepushInfoGrpcRequest.newBuilder().setStoreInfo(storeInfo).setFabric("test-fabric").build();
460462

461-
VersionGrpc versionGrpc = VersionGrpc.newBuilder()
462-
.setNumber(1)
463-
.setCreatedTime(123456789L)
464-
.setStatus(VersionStatus.ONLINE.getValue())
465-
.setPushJobId("test-push-job")
466-
.setPartitionCount(10)
467-
.setReplicationFactor(3)
468-
.build();
463+
Version mockVersion = mock(Version.class);
464+
when(mockVersion.getNumber()).thenReturn(1);
465+
when(mockVersion.getCreatedTime()).thenReturn(123456789L);
466+
when(mockVersion.getStatus()).thenReturn(VersionStatus.ONLINE);
467+
when(mockVersion.getPushJobId()).thenReturn("test-push-job");
468+
when(mockVersion.getPartitionCount()).thenReturn(10);
469+
when(mockVersion.getReplicationFactor()).thenReturn(3);
469470

470-
RepushInfoGrpc repushInfoGrpc = RepushInfoGrpc.newBuilder()
471-
.setKafkaBrokerUrl("kafka.broker:9092")
472-
.setVersion(versionGrpc)
473-
.setSystemSchemaClusterD2ServiceName("d2-service")
474-
.setSystemSchemaClusterD2ZkHost("zk-host")
475-
.build();
471+
RepushInfo repushInfo = RepushInfo.createRepushInfo(mockVersion, "kafka.broker:9092", "d2-service", "zk-host");
476472

477-
GetRepushInfoGrpcResponse mockResponse =
478-
GetRepushInfoGrpcResponse.newBuilder().setStoreInfo(storeInfo).setRepushInfo(repushInfoGrpc).build();
473+
RepushInfoResponse mockResponse = new RepushInfoResponse();
474+
mockResponse.setCluster(TEST_CLUSTER);
475+
mockResponse.setName(TEST_STORE);
476+
mockResponse.setRepushInfo(repushInfo);
479477

480-
when(storeRequestHandler.getRepushInfo(any(GetRepushInfoGrpcRequest.class))).thenReturn(mockResponse);
478+
when(storeRequestHandler.getRepushInfo(anyString(), anyString(), any(), any(ControllerRequestContext.class)))
479+
.thenReturn(mockResponse);
481480

482481
GetRepushInfoGrpcResponse actualResponse = blockingStub.getRepushInfo(request);
483482

@@ -495,7 +494,7 @@ public void testGetRepushInfoReturnsErrorResponse() {
495494
ClusterStoreGrpcInfo.newBuilder().setClusterName(TEST_CLUSTER).setStoreName(TEST_STORE).build();
496495
GetRepushInfoGrpcRequest request = GetRepushInfoGrpcRequest.newBuilder().setStoreInfo(storeInfo).build();
497496

498-
when(storeRequestHandler.getRepushInfo(any(GetRepushInfoGrpcRequest.class)))
497+
when(storeRequestHandler.getRepushInfo(anyString(), anyString(), any(), any(ControllerRequestContext.class)))
499498
.thenThrow(new VeniceException("Failed to get repush info"));
500499

501500
StatusRuntimeException e = expectThrows(StatusRuntimeException.class, () -> blockingStub.getRepushInfo(request));
@@ -509,12 +508,15 @@ public void testGetRepushInfoWithoutFabric() {
509508
ClusterStoreGrpcInfo.newBuilder().setClusterName(TEST_CLUSTER).setStoreName(TEST_STORE).build();
510509
GetRepushInfoGrpcRequest request = GetRepushInfoGrpcRequest.newBuilder().setStoreInfo(storeInfo).build();
511510

512-
RepushInfoGrpc repushInfoGrpc = RepushInfoGrpc.newBuilder().setKafkaBrokerUrl("another.kafka.broker:9092").build();
511+
RepushInfo repushInfo = RepushInfo.createRepushInfo(null, "another.kafka.broker:9092", null, null);
513512

514-
GetRepushInfoGrpcResponse mockResponse =
515-
GetRepushInfoGrpcResponse.newBuilder().setStoreInfo(storeInfo).setRepushInfo(repushInfoGrpc).build();
513+
RepushInfoResponse mockResponse = new RepushInfoResponse();
514+
mockResponse.setCluster(TEST_CLUSTER);
515+
mockResponse.setName(TEST_STORE);
516+
mockResponse.setRepushInfo(repushInfo);
516517

517-
when(storeRequestHandler.getRepushInfo(any(GetRepushInfoGrpcRequest.class))).thenReturn(mockResponse);
518+
when(storeRequestHandler.getRepushInfo(anyString(), anyString(), any(), any(ControllerRequestContext.class)))
519+
.thenReturn(mockResponse);
518520

519521
GetRepushInfoGrpcResponse actualResponse = blockingStub.getRepushInfo(request);
520522

services/venice-controller/src/test/java/com/linkedin/venice/controller/server/StoreRequestHandlerTest.java

Lines changed: 29 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
import com.linkedin.venice.controller.Admin;
1313
import com.linkedin.venice.controller.ControllerRequestHandlerDependencies;
1414
import com.linkedin.venice.controllerapi.RepushInfo;
15+
import com.linkedin.venice.controllerapi.RepushInfoResponse;
1516
import com.linkedin.venice.exceptions.VeniceException;
1617
import com.linkedin.venice.meta.DataReplicationPolicy;
1718
import com.linkedin.venice.meta.HybridStoreConfig;
@@ -25,8 +26,6 @@
2526
import com.linkedin.venice.protocols.controller.DeleteAclForStoreGrpcResponse;
2627
import com.linkedin.venice.protocols.controller.GetAclForStoreGrpcRequest;
2728
import com.linkedin.venice.protocols.controller.GetAclForStoreGrpcResponse;
28-
import com.linkedin.venice.protocols.controller.GetRepushInfoGrpcRequest;
29-
import com.linkedin.venice.protocols.controller.GetRepushInfoGrpcResponse;
3029
import com.linkedin.venice.protocols.controller.ListStoresGrpcRequest;
3130
import com.linkedin.venice.protocols.controller.ListStoresGrpcResponse;
3231
import com.linkedin.venice.protocols.controller.UpdateAclForStoreGrpcRequest;
@@ -366,10 +365,10 @@ public void testListStoresWithDataReplicationPolicyFilterNullPolicy() {
366365

367366
@Test
368367
public void testGetRepushInfoSuccess() {
369-
GetRepushInfoGrpcRequest request = GetRepushInfoGrpcRequest.newBuilder()
370-
.setStoreInfo(ClusterStoreGrpcInfo.newBuilder().setClusterName("testCluster").setStoreName("testStore").build())
371-
.setFabric("testFabric")
372-
.build();
368+
String clusterName = "testCluster";
369+
String storeName = "testStore";
370+
Optional<String> fabric = Optional.of("testFabric");
371+
ControllerRequestContext context = mock(ControllerRequestContext.class);
373372

374373
Version mockVersion = mock(Version.class);
375374
when(mockVersion.getNumber()).thenReturn(1);
@@ -382,18 +381,17 @@ public void testGetRepushInfoSuccess() {
382381
RepushInfo mockRepushInfo =
383382
RepushInfo.createRepushInfo(mockVersion, "kafka.broker.url:9092", "testD2Service", "testZkHost");
384383

385-
when(admin.getRepushInfo("testCluster", "testStore", Optional.of("testFabric"))).thenReturn(mockRepushInfo);
384+
when(admin.getRepushInfo(clusterName, storeName, fabric)).thenReturn(mockRepushInfo);
386385

387-
GetRepushInfoGrpcResponse response = storeRequestHandler.getRepushInfo(request);
386+
RepushInfoResponse response = storeRequestHandler.getRepushInfo(clusterName, storeName, fabric, context);
388387

389-
verify(admin, times(1)).getRepushInfo("testCluster", "testStore", Optional.of("testFabric"));
390-
assertEquals(response.getStoreInfo().getClusterName(), "testCluster");
391-
assertEquals(response.getStoreInfo().getStoreName(), "testStore");
388+
verify(admin, times(1)).getRepushInfo(clusterName, storeName, fabric);
389+
assertEquals(response.getCluster(), clusterName);
390+
assertEquals(response.getName(), storeName);
392391
assertEquals(response.getRepushInfo().getKafkaBrokerUrl(), "kafka.broker.url:9092");
393-
assertTrue(response.getRepushInfo().hasVersion());
394392
assertEquals(response.getRepushInfo().getVersion().getNumber(), 1);
395393
assertEquals(response.getRepushInfo().getVersion().getCreatedTime(), 123456789L);
396-
assertEquals(response.getRepushInfo().getVersion().getStatus(), VersionStatus.ONLINE.getValue());
394+
assertEquals(response.getRepushInfo().getVersion().getStatus(), VersionStatus.ONLINE);
397395
assertEquals(response.getRepushInfo().getVersion().getPushJobId(), "test-push-job-123");
398396
assertEquals(response.getRepushInfo().getVersion().getPartitionCount(), 10);
399397
assertEquals(response.getRepushInfo().getVersion().getReplicationFactor(), 3);
@@ -403,9 +401,10 @@ public void testGetRepushInfoSuccess() {
403401

404402
@Test
405403
public void testGetRepushInfoWithoutFabric() {
406-
GetRepushInfoGrpcRequest request = GetRepushInfoGrpcRequest.newBuilder()
407-
.setStoreInfo(ClusterStoreGrpcInfo.newBuilder().setClusterName("testCluster").setStoreName("testStore").build())
408-
.build();
404+
String clusterName = "testCluster";
405+
String storeName = "testStore";
406+
Optional<String> fabric = Optional.empty();
407+
ControllerRequestContext context = mock(ControllerRequestContext.class);
409408

410409
Version mockVersion = mock(Version.class);
411410
when(mockVersion.getNumber()).thenReturn(2);
@@ -418,33 +417,33 @@ public void testGetRepushInfoWithoutFabric() {
418417
RepushInfo mockRepushInfo =
419418
RepushInfo.createRepushInfo(mockVersion, "another.kafka.broker:9092", "anotherD2Service", "anotherZkHost");
420419

421-
when(admin.getRepushInfo("testCluster", "testStore", Optional.empty())).thenReturn(mockRepushInfo);
420+
when(admin.getRepushInfo(clusterName, storeName, fabric)).thenReturn(mockRepushInfo);
422421

423-
GetRepushInfoGrpcResponse response = storeRequestHandler.getRepushInfo(request);
422+
RepushInfoResponse response = storeRequestHandler.getRepushInfo(clusterName, storeName, fabric, context);
424423

425-
verify(admin, times(1)).getRepushInfo("testCluster", "testStore", Optional.empty());
426-
assertEquals(response.getStoreInfo().getClusterName(), "testCluster");
427-
assertEquals(response.getStoreInfo().getStoreName(), "testStore");
424+
verify(admin, times(1)).getRepushInfo(clusterName, storeName, fabric);
425+
assertEquals(response.getCluster(), clusterName);
426+
assertEquals(response.getName(), storeName);
428427
assertEquals(response.getRepushInfo().getKafkaBrokerUrl(), "another.kafka.broker:9092");
429-
assertTrue(response.getRepushInfo().hasVersion());
430428
assertEquals(response.getRepushInfo().getVersion().getNumber(), 2);
431429
}
432430

433431
@Test
434432
public void testGetRepushInfoWithNullVersion() {
435-
GetRepushInfoGrpcRequest request = GetRepushInfoGrpcRequest.newBuilder()
436-
.setStoreInfo(ClusterStoreGrpcInfo.newBuilder().setClusterName("testCluster").setStoreName("testStore").build())
437-
.build();
433+
String clusterName = "testCluster";
434+
String storeName = "testStore";
435+
Optional<String> fabric = Optional.empty();
436+
ControllerRequestContext context = mock(ControllerRequestContext.class);
438437

439438
RepushInfo mockRepushInfo = RepushInfo.createRepushInfo(null, "kafka.broker:9092", null, null);
440439

441-
when(admin.getRepushInfo("testCluster", "testStore", Optional.empty())).thenReturn(mockRepushInfo);
440+
when(admin.getRepushInfo(clusterName, storeName, fabric)).thenReturn(mockRepushInfo);
442441

443-
GetRepushInfoGrpcResponse response = storeRequestHandler.getRepushInfo(request);
442+
RepushInfoResponse response = storeRequestHandler.getRepushInfo(clusterName, storeName, fabric, context);
444443

445444
assertEquals(response.getRepushInfo().getKafkaBrokerUrl(), "kafka.broker:9092");
446-
assertTrue(!response.getRepushInfo().hasVersion());
447-
assertTrue(!response.getRepushInfo().hasSystemSchemaClusterD2ServiceName());
448-
assertTrue(!response.getRepushInfo().hasSystemSchemaClusterD2ZkHost());
445+
assertTrue(response.getRepushInfo().getVersion() == null);
446+
assertTrue(response.getRepushInfo().getSystemSchemaClusterD2ServiceName() == null);
447+
assertTrue(response.getRepushInfo().getSystemSchemaClusterD2ZkHost() == null);
449448
}
450449
}

services/venice-controller/src/test/java/com/linkedin/venice/controller/server/StoresRoutesTest.java

Lines changed: 16 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -42,14 +42,10 @@
4242
import com.linkedin.venice.meta.VersionStatus;
4343
import com.linkedin.venice.meta.ZKStore;
4444
import com.linkedin.venice.protocols.controller.ClusterStoreGrpcInfo;
45-
import com.linkedin.venice.protocols.controller.GetRepushInfoGrpcRequest;
46-
import com.linkedin.venice.protocols.controller.GetRepushInfoGrpcResponse;
4745
import com.linkedin.venice.protocols.controller.ListStoresGrpcRequest;
4846
import com.linkedin.venice.protocols.controller.ListStoresGrpcResponse;
49-
import com.linkedin.venice.protocols.controller.RepushInfoGrpc;
5047
import com.linkedin.venice.protocols.controller.ValidateStoreDeletedGrpcRequest;
5148
import com.linkedin.venice.protocols.controller.ValidateStoreDeletedGrpcResponse;
52-
import com.linkedin.venice.protocols.controller.VersionGrpc;
5349
import com.linkedin.venice.pubsub.PubSubTopicRepository;
5450
import com.linkedin.venice.utils.ObjectMapperFactory;
5551
import java.util.Arrays;
@@ -720,39 +716,20 @@ public void testGetRepushInfo() throws Exception {
720716
Route route =
721717
new StoresRoutes(false, Optional.empty(), pubSubTopicRepository).getRepushInfo(mockAdmin, mockRequestHandler);
722718

723-
// Test success case
724-
ClusterStoreGrpcInfo storeInfo =
725-
ClusterStoreGrpcInfo.newBuilder().setClusterName(TEST_CLUSTER).setStoreName(TEST_STORE_NAME).build();
726-
727-
VersionGrpc versionGrpc = VersionGrpc.newBuilder()
728-
.setNumber(1)
729-
.setCreatedTime(123456789L)
730-
.setStatus(VersionStatus.ONLINE.getValue())
731-
.setPushJobId("test-push-job")
732-
.setPartitionCount(10)
733-
.setReplicationFactor(3)
734-
.build();
735-
736-
RepushInfoGrpc repushInfoGrpc = RepushInfoGrpc.newBuilder()
737-
.setKafkaBrokerUrl("kafka.broker:9092")
738-
.setVersion(versionGrpc)
739-
.setSystemSchemaClusterD2ServiceName("d2-service")
740-
.setSystemSchemaClusterD2ZkHost("zk-host")
741-
.build();
742-
743-
GetRepushInfoGrpcResponse grpcResponse =
744-
GetRepushInfoGrpcResponse.newBuilder().setStoreInfo(storeInfo).setRepushInfo(repushInfoGrpc).build();
745-
746719
// Create a real Version for admin.getRepushInfo() call to avoid Jackson serialization issues
747720
Version version = new VersionImpl(TEST_STORE_NAME, 1, "test-push-job", 10);
748721
version.setStatus(VersionStatus.ONLINE);
749722
version.setReplicationFactor(3);
750723

751724
RepushInfo mockRepushInfo = RepushInfo.createRepushInfo(version, "kafka.broker:9092", "d2-service", "zk-host");
752725

753-
when(mockRequestHandler.getRepushInfo(any(GetRepushInfoGrpcRequest.class))).thenReturn(grpcResponse);
754-
when(mockAdmin.getRepushInfo(eq(TEST_CLUSTER), eq(TEST_STORE_NAME), eq(Optional.of("test-fabric"))))
755-
.thenReturn(mockRepushInfo);
726+
RepushInfoResponse mockResponse = new RepushInfoResponse();
727+
mockResponse.setCluster(TEST_CLUSTER);
728+
mockResponse.setName(TEST_STORE_NAME);
729+
mockResponse.setRepushInfo(mockRepushInfo);
730+
731+
when(mockRequestHandler.getRepushInfo(any(), any(), any(), any(ControllerRequestContext.class)))
732+
.thenReturn(mockResponse);
756733

757734
RepushInfoResponse response = ObjectMapperFactory.getInstance()
758735
.readValue(route.handle(request, mock(Response.class)).toString(), RepushInfoResponse.class);
@@ -764,7 +741,8 @@ public void testGetRepushInfo() throws Exception {
764741
Assert.assertEquals(response.getRepushInfo().getKafkaBrokerUrl(), "kafka.broker:9092");
765742

766743
// Test error case
767-
when(mockRequestHandler.getRepushInfo(any(GetRepushInfoGrpcRequest.class))).thenThrow(new VeniceException("Error"));
744+
when(mockRequestHandler.getRepushInfo(any(), any(), any(), any(ControllerRequestContext.class)))
745+
.thenThrow(new VeniceException("Error"));
768746
response = ObjectMapperFactory.getInstance()
769747
.readValue(route.handle(request, mock(Response.class)).toString(), RepushInfoResponse.class);
770748
Assert.assertTrue(response.isError());
@@ -792,19 +770,15 @@ public void testGetRepushInfoWithoutFabric() throws Exception {
792770
Route route =
793771
new StoresRoutes(false, Optional.empty(), pubSubTopicRepository).getRepushInfo(mockAdmin, mockRequestHandler);
794772

795-
ClusterStoreGrpcInfo storeInfo =
796-
ClusterStoreGrpcInfo.newBuilder().setClusterName(TEST_CLUSTER).setStoreName(TEST_STORE_NAME).build();
797-
798-
RepushInfoGrpc repushInfoGrpc = RepushInfoGrpc.newBuilder().setKafkaBrokerUrl("another.kafka:9092").build();
799-
800-
GetRepushInfoGrpcResponse grpcResponse =
801-
GetRepushInfoGrpcResponse.newBuilder().setStoreInfo(storeInfo).setRepushInfo(repushInfoGrpc).build();
802-
803773
RepushInfo mockRepushInfo = RepushInfo.createRepushInfo(null, "another.kafka:9092", null, null);
804774

805-
when(mockRequestHandler.getRepushInfo(any(GetRepushInfoGrpcRequest.class))).thenReturn(grpcResponse);
806-
when(mockAdmin.getRepushInfo(eq(TEST_CLUSTER), eq(TEST_STORE_NAME), eq(Optional.empty())))
807-
.thenReturn(mockRepushInfo);
775+
RepushInfoResponse mockResponse = new RepushInfoResponse();
776+
mockResponse.setCluster(TEST_CLUSTER);
777+
mockResponse.setName(TEST_STORE_NAME);
778+
mockResponse.setRepushInfo(mockRepushInfo);
779+
780+
when(mockRequestHandler.getRepushInfo(any(), any(), any(), any(ControllerRequestContext.class)))
781+
.thenReturn(mockResponse);
808782

809783
RepushInfoResponse response = ObjectMapperFactory.getInstance()
810784
.readValue(route.handle(request, mock(Response.class)).toString(), RepushInfoResponse.class);

0 commit comments

Comments
 (0)