public void testNotNullAndNullDeploymentSourceShouldDeployNewVersion() {
    // given

    String key = "process";
    String name = "my-deployment";

    BpmnModelInstance model = Bpmn.createExecutableProcess(key).done();

    ProcessDefinitionQuery processDefinitionQuery =
        repositoryService.createProcessDefinitionQuery().processDefinitionKey(key);

    DeploymentQuery deploymentQuery =
        repositoryService.createDeploymentQuery().deploymentName(name);

    // when

    ProcessApplicationDeployment deployment1 =
        repositoryService
            .createDeployment(processApplication.getReference())
            .name(name)
            .source("my-source1")
            .addModelInstance("process.bpmn", model)
            .enableDuplicateFiltering(true)
            .deploy();

    assertEquals(1, processDefinitionQuery.count());
    assertEquals(1, deploymentQuery.count());

    ProcessApplicationDeployment deployment2 =
        repositoryService
            .createDeployment(processApplication.getReference())
            .name(name)
            .source(null)
            .addModelInstance("process.bpmn", model)
            .enableDuplicateFiltering(true)
            .deploy();

    // then

    assertEquals(2, processDefinitionQuery.count());
    assertEquals(2, deploymentQuery.count());

    deleteDeployments(deployment1, deployment2);
  }