@Test
public void verifyFunctionNames() throws Exception {

    PipelineMetadataService svc = new PipelineMetadataService();
    List<ExportedDescribableModel> steps = new ArrayList<>();
    steps.addAll(Arrays.asList(svc.doPipelineStepMetadata()));
    assertFalse(steps.isEmpty());
    // Verify we have a Symbol-provided Builder or Publisher
    assertThat(steps, hasItem(stepWithName("archiveArtifacts")));
    // Verify that we don't have steps blacklisted by Declarative
    assertThat(steps, not(hasItem(stepWithName("properties"))));
    // Verify that we don't have advanced steps
    assertThat(steps, not(hasItem(stepWithName("archive"))));
    // Verify that we *do* have advanced steps that are explicitly whitelisted in.
    assertThat(steps, hasItem(stepWithName("catchError")));
    // Verify that we have a Symbol-provided SimpleBuildWrapper
    assertThat(steps, hasItem(stepWithName("withSonarQubeEnv")));
}