|
16 | 16 |
|
17 | 17 | package org.cloudfoundry.operations; |
18 | 18 |
|
19 | | -import static org.assertj.core.api.Assertions.assertThat; |
20 | | - |
21 | | -import java.io.IOException; |
22 | | -import java.nio.file.Path; |
23 | | -import java.time.Duration; |
24 | | -import java.util.Arrays; |
25 | | -import java.util.Collections; |
26 | | -import java.util.List; |
27 | | -import java.util.Map; |
28 | 19 | import org.cloudfoundry.AbstractIntegrationTest; |
29 | 20 | import org.cloudfoundry.CleanupCloudFoundryAfterClass; |
30 | 21 | import org.cloudfoundry.CloudFoundryVersion; |
31 | 22 | import org.cloudfoundry.IfCloudFoundryVersion; |
32 | 23 | import org.cloudfoundry.client.CloudFoundryClient; |
33 | | -import org.cloudfoundry.logcache.v1.Envelope; |
34 | | -import org.cloudfoundry.logcache.v1.EnvelopeBatch; |
35 | | -import org.cloudfoundry.logcache.v1.EnvelopeType; |
36 | | -import org.cloudfoundry.logcache.v1.Log; |
37 | | -import org.cloudfoundry.logcache.v1.LogCacheClient; |
38 | | -import org.cloudfoundry.logcache.v1.LogType; |
39 | | -import org.cloudfoundry.logcache.v1.ReadRequest; |
40 | | -import org.cloudfoundry.logcache.v1.ReadResponse; |
41 | | -import org.cloudfoundry.operations.applications.ApplicationDetail; |
42 | | -import org.cloudfoundry.operations.applications.ApplicationEnvironments; |
43 | | -import org.cloudfoundry.operations.applications.ApplicationEvent; |
44 | | -import org.cloudfoundry.operations.applications.ApplicationHealthCheck; |
45 | | -import org.cloudfoundry.operations.applications.ApplicationLog; |
46 | | -import org.cloudfoundry.operations.applications.ApplicationLogType; |
47 | | -import org.cloudfoundry.operations.applications.ApplicationLogsRequest; |
48 | | -import org.cloudfoundry.operations.applications.ApplicationManifest; |
49 | | -import org.cloudfoundry.operations.applications.ApplicationSshEnabledRequest; |
50 | | -import org.cloudfoundry.operations.applications.ApplicationSummary; |
51 | | -import org.cloudfoundry.operations.applications.CopySourceApplicationRequest; |
52 | | -import org.cloudfoundry.operations.applications.DeleteApplicationRequest; |
53 | | -import org.cloudfoundry.operations.applications.DisableApplicationSshRequest; |
54 | | -import org.cloudfoundry.operations.applications.EnableApplicationSshRequest; |
55 | | -import org.cloudfoundry.operations.applications.GetApplicationEnvironmentsRequest; |
56 | | -import org.cloudfoundry.operations.applications.GetApplicationEventsRequest; |
57 | | -import org.cloudfoundry.operations.applications.GetApplicationHealthCheckRequest; |
58 | | -import org.cloudfoundry.operations.applications.GetApplicationManifestRequest; |
59 | | -import org.cloudfoundry.operations.applications.GetApplicationRequest; |
60 | | -import org.cloudfoundry.operations.applications.ListApplicationTasksRequest; |
61 | | -import org.cloudfoundry.operations.applications.ManifestV3; |
62 | | -import org.cloudfoundry.operations.applications.ManifestV3Application; |
63 | | -import org.cloudfoundry.operations.applications.PushApplicationManifestRequest; |
64 | | -import org.cloudfoundry.operations.applications.PushApplicationRequest; |
65 | | -import org.cloudfoundry.operations.applications.PushManifestV3Request; |
66 | | -import org.cloudfoundry.operations.applications.RenameApplicationRequest; |
67 | | -import org.cloudfoundry.operations.applications.RestageApplicationRequest; |
68 | | -import org.cloudfoundry.operations.applications.RestartApplicationInstanceRequest; |
69 | | -import org.cloudfoundry.operations.applications.RestartApplicationRequest; |
70 | | -import org.cloudfoundry.operations.applications.Route; |
71 | | -import org.cloudfoundry.operations.applications.RunApplicationTaskRequest; |
72 | | -import org.cloudfoundry.operations.applications.ScaleApplicationRequest; |
73 | | -import org.cloudfoundry.operations.applications.SetApplicationHealthCheckRequest; |
74 | | -import org.cloudfoundry.operations.applications.SetEnvironmentVariableApplicationRequest; |
75 | | -import org.cloudfoundry.operations.applications.StartApplicationRequest; |
76 | | -import org.cloudfoundry.operations.applications.StopApplicationRequest; |
77 | | -import org.cloudfoundry.operations.applications.Task; |
78 | | -import org.cloudfoundry.operations.applications.TaskState; |
79 | | -import org.cloudfoundry.operations.applications.TerminateApplicationTaskRequest; |
80 | | -import org.cloudfoundry.operations.applications.UnsetEnvironmentVariableApplicationRequest; |
| 24 | +import org.cloudfoundry.logcache.v1.*; |
| 25 | +import org.cloudfoundry.operations.applications.*; |
81 | 26 | import org.cloudfoundry.operations.domains.CreateDomainRequest; |
82 | 27 | import org.cloudfoundry.operations.domains.CreateSharedDomainRequest; |
83 | 28 | import org.cloudfoundry.operations.routes.ListRoutesRequest; |
84 | | -import org.cloudfoundry.operations.services.BindServiceInstanceRequest; |
85 | | -import org.cloudfoundry.operations.services.CreateServiceInstanceRequest; |
86 | | -import org.cloudfoundry.operations.services.CreateUserProvidedServiceInstanceRequest; |
87 | | -import org.cloudfoundry.operations.services.GetServiceInstanceRequest; |
88 | | -import org.cloudfoundry.operations.services.ServiceInstance; |
| 29 | +import org.cloudfoundry.operations.services.*; |
89 | 30 | import org.cloudfoundry.util.FluentMap; |
90 | 31 | import org.junit.jupiter.api.Test; |
91 | 32 | import org.springframework.beans.factory.annotation.Autowired; |
|
95 | 36 | import reactor.core.publisher.Mono; |
96 | 37 | import reactor.test.StepVerifier; |
97 | 38 |
|
| 39 | +import java.io.IOException; |
| 40 | +import java.nio.file.Path; |
| 41 | +import java.time.Duration; |
| 42 | +import java.util.Arrays; |
| 43 | +import java.util.Collections; |
| 44 | +import java.util.List; |
| 45 | +import java.util.Map; |
| 46 | + |
| 47 | +import static org.assertj.core.api.Assertions.assertThat; |
| 48 | + |
98 | 49 | @CleanupCloudFoundryAfterClass |
99 | 50 | public final class ApplicationsTest extends AbstractIntegrationTest { |
100 | 51 |
|
@@ -619,6 +570,54 @@ public void pushBindServices() throws IOException { |
619 | 570 | .verify(Duration.ofMinutes(5)); |
620 | 571 | } |
621 | 572 |
|
| 573 | + @Test |
| 574 | + public void pushAppFeatures() throws IOException { |
| 575 | + String applicationName = this.nameFactory.getApplicationName(); |
| 576 | + String serviceInstanceName = this.nameFactory.getServiceInstanceName(); |
| 577 | + |
| 578 | + final String featureKey = "file-based-vcap-services"; |
| 579 | + createServiceInstance( |
| 580 | + this.cloudFoundryOperations, |
| 581 | + this.planName, |
| 582 | + serviceInstanceName, |
| 583 | + this.serviceName) |
| 584 | + .then( |
| 585 | + this.cloudFoundryOperations |
| 586 | + .applications() |
| 587 | + .pushManifest( |
| 588 | + PushApplicationManifestRequest.builder() |
| 589 | + .manifest( |
| 590 | + ApplicationManifest.builder() |
| 591 | + .path( |
| 592 | + new ClassPathResource( |
| 593 | + "test-application.zip") |
| 594 | + .getFile() |
| 595 | + .toPath()) |
| 596 | + .buildpack("staticfile_buildpack") |
| 597 | + .disk(512) |
| 598 | + .healthCheckType( |
| 599 | + ApplicationHealthCheck.PORT) |
| 600 | + .memory(64) |
| 601 | + .name(applicationName) |
| 602 | + .service(serviceInstanceName) |
| 603 | + .feature(featureKey, true) |
| 604 | + .build()) |
| 605 | + .noStart(false) |
| 606 | + .build())) |
| 607 | + .then( |
| 608 | + this.cloudFoundryOperations |
| 609 | + .applications() |
| 610 | + .getApplicationManifest( |
| 611 | + GetApplicationManifestRequest.builder() |
| 612 | + .name(applicationName) |
| 613 | + .build())) |
| 614 | + .map(ApplicationManifest::getFeatures) |
| 615 | + .as(StepVerifier::create) |
| 616 | + .expectNextMatches(actual -> actual.containsKey(featureKey)) |
| 617 | + .expectComplete() |
| 618 | + .verify(Duration.ofMinutes(5)); |
| 619 | + } |
| 620 | + |
622 | 621 | @Test |
623 | 622 | public void pushDirectory() throws IOException { |
624 | 623 | String applicationName = this.nameFactory.getApplicationName(); |
|
0 commit comments