public static void expect(Validator validator, VespaModel model, DeployState deployState, String... expectedMessages) {
        Execution execution = new Execution(model, deployState);
        validator.validate(execution);
        assertTrue(   execution.errors().stream().allMatch(error -> Arrays.stream(expectedMessages).anyMatch(error::contains))
                   && Arrays.stream(expectedMessages).allMatch(expected -> execution.errors().stream().anyMatch(error -> error.contains(expected))),
                   "Expected errors: " + Arrays.toString(expectedMessages) + "\nActual errors: " + execution.errors());
    }
Deploys an application

@param previousModel the previous model, or null if no previous
@param services the services file content
@param zone the zone this deploys to
@param validationOverrides the validation overrides file content, or null if none
@param containerCluster container cluster(s) which are declared in services
@return the new model and any change actions
config-model/src/test/java/com/yahoo/vespa/model/application/validation/ValidationTester.java