public void testDynamicallyGenerated()

in plugins/docker/component-image/src/integrationTest/java/co/elastic/gradle/dockercomponent/DockerComponentPluginIT.java [280:326]


    public void testDynamicallyGenerated() throws IOException {
        helper.buildScript("""
                plugins {
                       id("co.elastic.docker-component")
                }
                val archive by tasks.registering(Zip::class) {
                    from("build.gradle.kts")
                    archiveFileName.set("my.zip")
                    destinationDirectory.set(layout.buildDirectory.dir("dist"))
                }
                val custom by tasks.registering {
                    outputs.file("$buildDir/build.gradle.kts")
                    doLast {
                       copy {
                          from("build.gradle.kts")
                          into(buildDir)
                       }
                    }
                }
                dockerComponentImage {
                    buildAll {
                        from("ubuntu", "20.04")
                        copySpec {
                                from(archive)
                                from(custom)
                                into("home")
                        }
                    }
                }
                """);

        Files.copy(Objects.requireNonNull(getClass().getResourceAsStream("/docker-component-image.lock")), helper.projectDir().resolve("docker-component-image.lock"));

        final BuildResult result = runGradleTask("dockerComponentImageBuild");

        System.out.println(result.getOutput());

        final List<BuildTask> tasks = result.getTasks();
        final BuildTask custom = result.task(":custom");
        final BuildTask archive = result.task(":archive");
        final BuildTask dockerComponentImageBuild = result.task(":dockerComponentImageBuild");
        assertNotNull(custom, "Expected :custom task to run");
        assertNotNull(archive, "Expected :archive task to run");
        assertNotNull(dockerComponentImageBuild, "Expected :dockerComponentImageBuild task to run");
        assertTrue(tasks.indexOf(custom) < tasks.indexOf(dockerComponentImageBuild), "Expected :custom to run before the image build");
        assertTrue(tasks.indexOf(archive) < tasks.indexOf(dockerComponentImageBuild), "Expected :archive to run before the image build");
    }