| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -7,6 +7,7 @@ | |||
| 7 | 7 | import java.io.IOException; | |
| 8 | 8 | import java.nio.file.Files; | |
| 9 | 9 | import java.nio.file.Path; | |
| 10 | + import java.util.Map; | ||
| 10 | 11 | ||
| 11 | 12 | import static org.junit.jupiter.api.Assertions.assertEquals; | |
| 12 | 13 | ||
@@ -39,6 +40,22 @@ void testWithFeature() throws IOException { | |||
| 39 | 40 | assertSerializeDeserialize(manifest); | |
| 40 | 41 | } | |
| 41 | 42 | ||
| 43 | + @Test | ||
| 44 | + void testWithFeatureAsMap() throws IOException { | ||
| 45 | + Map<String, Boolean> features = new java.util.HashMap<>(); | ||
| 46 | + features.put("file-based-vcap-services", true); | ||
| 47 | + ManifestV3 manifest = | ||
| 48 | + ManifestV3.builder() | ||
| 49 | + .application( | ||
| 50 | + ManifestV3Application.builder() | ||
| 51 | + .name("test-app") | ||
| 52 | + .features(features) | ||
| 53 | + .build()) | ||
| 54 | + .build(); | ||
| 55 | + | ||
| 56 | + assertSerializeDeserialize(manifest); | ||
| 57 | + } | ||
| 58 | + | ||
| 42 | 59 | @Test | |
| 43 | 60 | void testGenericApplication() throws IOException { | |
| 44 | 61 | ManifestV3 manifest = | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -30,6 +30,8 @@ | |||
| 30 | 30 | import org.cloudfoundry.CloudFoundryVersion; | |
| 31 | 31 | import org.cloudfoundry.IfCloudFoundryVersion; | |
| 32 | 32 | import org.cloudfoundry.client.CloudFoundryClient; | |
| 33 | + import org.cloudfoundry.client.v3.applications.ApplicationFeatureResource; | ||
| 34 | + import org.cloudfoundry.client.v3.applications.ListApplicationFeaturesRequest; | ||
| 33 | 35 | import org.cloudfoundry.operations.applications.ApplicationDetail; | |
| 34 | 36 | import org.cloudfoundry.operations.applications.ApplicationEnvironments; | |
| 35 | 37 | import org.cloudfoundry.operations.applications.ApplicationEvent; | |
@@ -79,6 +81,7 @@ | |||
| 79 | 81 | import org.cloudfoundry.operations.services.GetServiceInstanceRequest; | |
| 80 | 82 | import org.cloudfoundry.operations.services.ServiceInstance; | |
| 81 | 83 | import org.cloudfoundry.util.FluentMap; | |
| 84 | + import org.cloudfoundry.util.PaginationUtils; | ||
| 82 | 85 | import org.junit.jupiter.api.Test; | |
| 83 | 86 | import org.springframework.beans.factory.annotation.Autowired; | |
| 84 | 87 | import org.springframework.beans.factory.annotation.Qualifier; | |
@@ -573,6 +576,65 @@ public void pushBindServices() throws IOException { | |||
| 573 | 576 | .verify(Duration.ofMinutes(5)); | |
| 574 | 577 | } | |
| 575 | 578 | ||
| 579 | + @Test | ||
| 580 | + public void pushAppFeatures() throws IOException { | ||
| 581 | + String applicationName = this.nameFactory.getApplicationName(); | ||
| 582 | + String serviceInstanceName = this.nameFactory.getServiceInstanceName(); | ||
| 583 | + | ||
| 584 | + final String featureKey = "file-based-vcap-services"; | ||
| 585 | + createServiceInstance( | ||
| 586 | + this.cloudFoundryOperations, | ||
| 587 | + this.planName, | ||
| 588 | + serviceInstanceName, | ||
| 589 | + this.serviceName) | ||
| 590 | + .then( | ||
| 591 | + this.cloudFoundryOperations | ||
| 592 | + .applications() | ||
| 593 | + .pushManifest( | ||
| 594 | + PushApplicationManifestRequest.builder() | ||
| 595 | + .manifest( | ||
| 596 | + ApplicationManifest.builder() | ||
| 597 | + .path( | ||
| 598 | + new ClassPathResource( | ||
| 599 | + "test-application.zip") | ||
| 600 | + .getFile() | ||
| 601 | + .toPath()) | ||
| 602 | + .buildpack("staticfile_buildpack") | ||
| 603 | + .disk(512) | ||
| 604 | + .healthCheckType( | ||
| 605 | + ApplicationHealthCheck.PORT) | ||
| 606 | + .memory(64) | ||
| 607 | + .name(applicationName) | ||
| 608 | + .service(serviceInstanceName) | ||
| 609 | + .feature(featureKey, true) | ||
| 610 | + .build()) | ||
| 611 | + .noStart(false) | ||
| 612 | + .build())) | ||
| 613 | + .then( | ||
| 614 | + this.cloudFoundryOperations | ||
| 615 | + .applications() | ||
| 616 | + .get(GetApplicationRequest.builder().name(applicationName).build())) | ||
| 617 | + .map(ApplicationDetail::getId) | ||
| 618 | + .flatMapMany( | ||
| 619 | + applicationId -> | ||
| 620 | + PaginationUtils.requestClientV3Resources( | ||
| 621 | + page -> | ||
| 622 | + this.cloudFoundryClient | ||
| 623 | + .applicationsV3() | ||
| 624 | + .listFeatures( | ||
| 625 | + ListApplicationFeaturesRequest | ||
| 626 | + .builder() | ||
| 627 | + .applicationId(applicationId) | ||
| 628 | + .page(page) | ||
| 629 | + .build()))) | ||
| 630 | + .filter(feature -> featureKey.equals(feature.getName())) | ||
| 631 | + .map(ApplicationFeatureResource::getEnabled) | ||
| 632 | + .as(StepVerifier::create) | ||
| 633 | + .expectNext(true) | ||
| 634 | + .expectComplete() | ||
| 635 | + .verify(Duration.ofMinutes(5)); | ||
| 636 | + } | ||
| 637 | + | ||
| 576 | 638 | @Test | |
| 577 | 639 | public void pushDirectory() throws IOException { | |
| 578 | 640 | String applicationName = this.nameFactory.getApplicationName(); | |
| Back | FazBrowse Home | New Git URL |
0 commit comments