Skip to content

Commit 8d60929

Browse files
committed
adds tests
1 parent 46655ec commit 8d60929

File tree

2 files changed

+76
-62
lines changed

2 files changed

+76
-62
lines changed

cloudfoundry-operations/src/test/java/org/cloudfoundry/operations/applications/ApplicationManifestUtilsV3Test.java

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
import java.io.IOException;
88
import java.nio.file.Files;
99
import java.nio.file.Path;
10+
import java.util.Map;
1011

1112
import static org.junit.jupiter.api.Assertions.assertEquals;
1213

@@ -39,6 +40,20 @@ void testWithFeature() throws IOException {
3940
assertSerializeDeserialize(manifest);
4041
}
4142

43+
@Test
44+
void testWithFeatureAsMap() throws IOException {
45+
ManifestV3 manifest =
46+
ManifestV3.builder()
47+
.application(
48+
ManifestV3Application.builder()
49+
.name("test-app")
50+
.features(Map.of("file-based-vcap-services", true))
51+
.build())
52+
.build();
53+
54+
assertSerializeDeserialize(manifest);
55+
}
56+
4257
@Test
4358
void testGenericApplication() throws IOException {
4459
ManifestV3 manifest =

integration-test/src/test/java/org/cloudfoundry/operations/ApplicationsTest.java

Lines changed: 61 additions & 62 deletions
Original file line numberDiff line numberDiff line change
@@ -16,76 +16,17 @@
1616

1717
package org.cloudfoundry.operations;
1818

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;
2819
import org.cloudfoundry.AbstractIntegrationTest;
2920
import org.cloudfoundry.CleanupCloudFoundryAfterClass;
3021
import org.cloudfoundry.CloudFoundryVersion;
3122
import org.cloudfoundry.IfCloudFoundryVersion;
3223
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.*;
8126
import org.cloudfoundry.operations.domains.CreateDomainRequest;
8227
import org.cloudfoundry.operations.domains.CreateSharedDomainRequest;
8328
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.*;
8930
import org.cloudfoundry.util.FluentMap;
9031
import org.junit.jupiter.api.Test;
9132
import org.springframework.beans.factory.annotation.Autowired;
@@ -95,6 +36,16 @@
9536
import reactor.core.publisher.Mono;
9637
import reactor.test.StepVerifier;
9738

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+
9849
@CleanupCloudFoundryAfterClass
9950
public final class ApplicationsTest extends AbstractIntegrationTest {
10051

@@ -619,6 +570,54 @@ public void pushBindServices() throws IOException {
619570
.verify(Duration.ofMinutes(5));
620571
}
621572

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+
622621
@Test
623622
public void pushDirectory() throws IOException {
624623
String applicationName = this.nameFactory.getApplicationName();

0 commit comments

Comments
 (0)