Search in sources :

Example 1 with BridgeTarget

use of io.gravitee.cockpit.api.command.bridge.BridgeTarget in project gravitee-management-rest-api by gravitee-io.

the class BridgeCommandFactoryTest method shouldCreatePromoteApiCommand.

@Test
public void shouldCreatePromoteApiCommand() {
    PromotionEntity promotionEntity = new PromotionEntity();
    promotionEntity.setTargetEnvCockpitId("env#target");
    final BridgeCommand promoteApiCommand = bridgeCommandFactory.createPromoteApiCommand("env#target", "{ \"id\": \"test\"}");
    assertThat(promoteApiCommand).isNotNull();
    assertThat(promoteApiCommand.getEnvironmentId()).isEqualTo(ENVIRONMENT_ID);
    assertThat(promoteApiCommand.getOrganizationId()).isEqualTo(ORGANIZATION_ID);
    assertThat(promoteApiCommand.getInstallationId()).isEqualTo(INSTALLATION_ID);
    assertThat(promoteApiCommand.getOperation()).isEqualTo(BridgeOperation.PROMOTE_API.name());
    assertThat(promoteApiCommand.getPayload().getContent()).isEqualTo("{ \"id\": \"test\"}");
    final BridgeTarget bridgeTarget = promoteApiCommand.getTarget();
    assertThat(bridgeTarget.getEnvironmentId()).isEqualTo("env#target");
}
Also used : BridgeTarget(io.gravitee.cockpit.api.command.bridge.BridgeTarget) PromotionEntity(io.gravitee.rest.api.model.promotion.PromotionEntity) BridgeCommand(io.gravitee.cockpit.api.command.bridge.BridgeCommand) Test(org.junit.Test)

Example 2 with BridgeTarget

use of io.gravitee.cockpit.api.command.bridge.BridgeTarget in project gravitee-management-rest-api by gravitee-io.

the class PromoteApiOperationHandlerTest method shouldHandlePromotionRequestIfCannotReadPromotionEntity.

@Test
public void shouldHandlePromotionRequestIfCannotReadPromotionEntity() throws JsonProcessingException {
    BridgeCommand command = new BridgeCommand();
    command.setOperation(BridgeOperation.PROMOTE_API.name());
    command.setId(COMMAND_ID);
    command.setInstallationId(INSTALLATION_ID);
    command.setOrganizationId(ORGANIZATION_ID);
    command.setEnvironmentId(ENVIRONMENT_ID);
    command.setPayload(new BridgePayload());
    final BridgeTarget bridgeTarget = new BridgeTarget();
    bridgeTarget.setEnvironmentId("target");
    command.setTarget(bridgeTarget);
    when(objectMapper.readValue(command.getPayload().getContent(), PromotionEntity.class)).thenThrow(JsonMappingException.class);
    // When
    TestObserver<BridgeReply> obs = cut.handle(command).test();
    // Then
    obs.awaitTerminalEvent();
    obs.assertValue(reply -> reply.getCommandId().equals(command.getId()) && reply.getCommandStatus().equals(CommandStatus.ERROR) && reply.getMessage().equals("Problem while deserializing promotion request for environment [" + ENVIRONMENT_ID + "]"));
}
Also used : BridgePayload(io.gravitee.cockpit.api.command.bridge.BridgePayload) BridgeTarget(io.gravitee.cockpit.api.command.bridge.BridgeTarget) BridgeCommand(io.gravitee.cockpit.api.command.bridge.BridgeCommand) BridgeReply(io.gravitee.cockpit.api.command.bridge.BridgeReply) Test(org.junit.Test)

Example 3 with BridgeTarget

use of io.gravitee.cockpit.api.command.bridge.BridgeTarget in project gravitee-management-rest-api by gravitee-io.

the class PromoteApiOperationHandlerTest method shouldHandlePromotionRequestIfCannotWritePayload.

@Test
public void shouldHandlePromotionRequestIfCannotWritePayload() throws JsonProcessingException {
    BridgeCommand command = new BridgeCommand();
    command.setOperation(BridgeOperation.PROMOTE_API.name());
    command.setId(COMMAND_ID);
    command.setInstallationId(INSTALLATION_ID);
    command.setOrganizationId(ORGANIZATION_ID);
    command.setEnvironmentId(ENVIRONMENT_ID);
    command.setPayload(new BridgePayload());
    final BridgeTarget bridgeTarget = new BridgeTarget();
    bridgeTarget.setEnvironmentId("target");
    command.setTarget(bridgeTarget);
    when(objectMapper.readValue(command.getPayload().getContent(), PromotionEntity.class)).thenReturn(getAPromotionEntity());
    InstallationEntity installationEntity = new InstallationEntity();
    installationEntity.setId(INSTALLATION_ID);
    when(installationService.get()).thenReturn(installationEntity);
    when(objectMapper.writeValueAsString(any())).thenThrow(JsonProcessingException.class);
    when(promotionService.createOrUpdate(any())).thenReturn(getAPromotionEntity());
    // When
    TestObserver<BridgeReply> obs = cut.handle(command).test();
    // Then
    obs.awaitTerminalEvent();
    obs.assertValue(reply -> reply.getCommandId().equals(command.getId()) && reply.getCommandStatus().equals(CommandStatus.ERROR) && reply.getMessage().equals("Problem while serializing promotion request for environment [" + ENVIRONMENT_ID + "]"));
}
Also used : BridgePayload(io.gravitee.cockpit.api.command.bridge.BridgePayload) InstallationEntity(io.gravitee.rest.api.model.InstallationEntity) BridgeTarget(io.gravitee.cockpit.api.command.bridge.BridgeTarget) BridgeCommand(io.gravitee.cockpit.api.command.bridge.BridgeCommand) BridgeReply(io.gravitee.cockpit.api.command.bridge.BridgeReply) Test(org.junit.Test)

Example 4 with BridgeTarget

use of io.gravitee.cockpit.api.command.bridge.BridgeTarget in project gravitee-management-rest-api by gravitee-io.

the class CockpitCommandServiceTest method shouldSendCommandToCockpitConnector.

@Test
public void shouldSendCommandToCockpitConnector() {
    BridgePayload payload = new BridgePayload();
    payload.setContent("a content");
    BridgeCommand command = new BridgeCommand();
    command.setId(UUID.toString(UUID.random()));
    command.setInstallationId(UUID.toString(UUID.random()));
    command.setOrganizationId(UUID.toString(UUID.random()));
    command.setOperation("an_operation");
    command.setTarget(new BridgeTarget());
    command.setPayload(payload);
    BridgeReply reply = mock(BridgeReply.class);
    when(cockpitConnector.sendCommand(command)).thenReturn(Single.just(reply));
    BridgeReply bridgeReply = cockpitCommandService.send(command);
    assertThat(bridgeReply).isEqualTo(reply);
}
Also used : BridgePayload(io.gravitee.cockpit.api.command.bridge.BridgePayload) BridgeTarget(io.gravitee.cockpit.api.command.bridge.BridgeTarget) BridgeCommand(io.gravitee.cockpit.api.command.bridge.BridgeCommand) BridgeReply(io.gravitee.cockpit.api.command.bridge.BridgeReply) Test(org.junit.Test)

Example 5 with BridgeTarget

use of io.gravitee.cockpit.api.command.bridge.BridgeTarget in project gravitee-management-rest-api by gravitee-io.

the class ProcessPromotionOperationHandlerTest method shouldHandlePromotionRequestIfCannotReadPromotionEntity.

@Test
public void shouldHandlePromotionRequestIfCannotReadPromotionEntity() throws JsonProcessingException {
    BridgeCommand command = new BridgeCommand();
    command.setOperation(BridgeOperation.PROMOTE_API.name());
    command.setId(COMMAND_ID);
    command.setInstallationId(INSTALLATION_ID);
    command.setOrganizationId(ORGANIZATION_ID);
    command.setEnvironmentId(ENVIRONMENT_ID);
    command.setPayload(new BridgePayload());
    final BridgeTarget bridgeTarget = new BridgeTarget();
    bridgeTarget.setEnvironmentId("source");
    command.setTarget(bridgeTarget);
    when(objectMapper.readValue(command.getPayload().getContent(), PromotionEntity.class)).thenThrow(JsonMappingException.class);
    // When
    TestObserver<BridgeReply> obs = cut.handle(command).test();
    // Then
    obs.awaitTerminalEvent();
    obs.assertValue(reply -> reply.getCommandId().equals(command.getId()) && reply.getCommandStatus().equals(CommandStatus.ERROR) && reply.getMessage().equals("Problem while deserializing promotion for environment [" + ENVIRONMENT_ID + "]"));
}
Also used : BridgePayload(io.gravitee.cockpit.api.command.bridge.BridgePayload) BridgeTarget(io.gravitee.cockpit.api.command.bridge.BridgeTarget) BridgeCommand(io.gravitee.cockpit.api.command.bridge.BridgeCommand) BridgeReply(io.gravitee.cockpit.api.command.bridge.BridgeReply) Test(org.junit.Test)

Aggregations

BridgeCommand (io.gravitee.cockpit.api.command.bridge.BridgeCommand)12 BridgeTarget (io.gravitee.cockpit.api.command.bridge.BridgeTarget)12 BridgePayload (io.gravitee.cockpit.api.command.bridge.BridgePayload)9 Test (org.junit.Test)9 BridgeReply (io.gravitee.cockpit.api.command.bridge.BridgeReply)7 InstallationEntity (io.gravitee.rest.api.model.InstallationEntity)4 PromotionEntity (io.gravitee.rest.api.model.promotion.PromotionEntity)3 BridgeSimpleReply (io.gravitee.cockpit.api.command.bridge.BridgeSimpleReply)2