.createFrom(current) .currentState(IntegrationDeploymentState.Error) .statusMessage(Exceptions.toString(e))
@Test public void shouldUpdateIntegrationDeployments() { final SecurityContext security = mock(SecurityContext.class); final Principal principal = mock(Principal.class); when(security.getUserPrincipal()).thenReturn(principal); when(principal.getName()).thenReturn("user"); final Integration integration = new Integration.Builder().build(); when(dataManager.fetch(Integration.class, INTEGRATION_ID)).thenReturn(integration); final IntegrationDeployment deployment1 = new IntegrationDeployment.Builder().createFrom(deployment(0)) .targetState(IntegrationDeploymentState.Unpublished).build(); final IntegrationDeployment deployment2 = deployment(1); final IntegrationDeployment deployment3 = deployment(2); when(dataManager.fetchAllByPropertyValue(IntegrationDeployment.class, "integrationId", INTEGRATION_ID)) .thenReturn(Stream.of(deployment1, deployment2, deployment3)); handler.update(security, INTEGRATION_ID); final IntegrationDeployment expected = new IntegrationDeployment.Builder().id(compositeId(INTEGRATION_ID, 3)) .spec(integration).version(3).userId("user").build(); verify(dataManager).update(unpublished(1)); verify(dataManager).update(unpublished(2)); verify(dataManager).create(expected); }
@Test public void shouldUpdateIntegrationDeploymentTargetState() { final TargetStateRequest targetState = new TargetStateRequest(); targetState.targetState = IntegrationDeploymentState.Published; final IntegrationDeployment existing = deployment(0); when(dataManager.fetch(IntegrationDeployment.class, compositeId(INTEGRATION_ID, 3))).thenReturn(existing); handler.updateTargetState(INTEGRATION_ID, 3, targetState); final IntegrationDeployment expected = new IntegrationDeployment.Builder().createFrom(existing) .targetState(IntegrationDeploymentState.Published).build(); verify(dataManager).update(expected); }
/** * Creates an immutable copy of a {@link IntegrationDeployment} value. * Uses accessors to get values to initialize the new immutable instance. * If an instance is already immutable, it is returned as is. * @param instance The instance to copy * @return A copied immutable IntegrationDeployment instance */ public static IntegrationDeployment copyOf(IntegrationDeployment instance) { if (instance instanceof ImmutableIntegrationDeployment) { return (ImmutableIntegrationDeployment) instance; } return new IntegrationDeployment.Builder() .createFrom(instance) .build(); }
default Builder builder() { return new Builder().createFrom(this); }
private static IntegrationDeployment unpublished(final int version) { return new IntegrationDeployment.Builder().createFrom(deployment(version)) .targetState(IntegrationDeploymentState.Unpublished).build(); } }