This repository has been archived by the owner on Nov 6, 2023. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 1
/
DockerComposeYmlWriterDelegateTest.java
101 lines (83 loc) · 3.45 KB
/
DockerComposeYmlWriterDelegateTest.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
package eu.xenit.alfred.initializr.generator.docker.compose;
import static eu.xenit.alfred.initializr.model.docker.ComposeEnvironment.env;
import static eu.xenit.alfred.initializr.model.docker.ComposeVolumes.volume;
import static org.assertj.core.api.Assertions.assertThat;
import eu.xenit.alfred.initializr.model.docker.DockerComposeModel;
import io.spring.initializr.generator.io.IndentingWriter;
import io.spring.initializr.generator.io.IndentingWriterFactory;
import java.io.IOException;
import java.io.StringWriter;
import org.junit.Test;
public class DockerComposeYmlWriterDelegateTest {
private DockerComposeYmlWriterDelegate composeWriter = new DockerComposeYmlWriterDelegate();
private IndentingWriterFactory indentingWriterFactory = IndentingWriterFactory.withDefaultSettings();
@Test
public void test() throws IOException {
StringWriter out = new StringWriter();
try (IndentingWriter writer = createWriter(out)) {
this.composeWriter.writeTo(writer, new DockerComposeModel());
}
String yml = out.toString();
assertThat(yml).contains("version: '2.2'");
}
@Test
public void testService() throws IOException {
StringWriter out = new StringWriter();
DockerComposeModel compose = new DockerComposeModel();
compose.getServices()
.service("test")
.image("ubuntu:latest")
.volumes("./test:/data")
.ports("80")
.environment(
env("DB_URL", "jdbc:postgresql://database:5432/alfresco"),
env("INDEX", "noindex")
);
try (IndentingWriter writer = createWriter(out)) {
this.composeWriter.writeTo(writer, compose);
}
String yml = out.toString();
assertThat(yml)
.isNotBlank()
.isEqualTo(String.join("\n",
"version: '2.2'",
"",
"services:",
" test:",
" image: ubuntu:latest",
" ports:",
" - 80",
" volumes:",
" - ./test:/data",
" environment:",
" - DB_URL=jdbc:postgresql://database:5432/alfresco",
" - INDEX=noindex",
"" // EOF on new line
));
}
@Test
public void testVolumes() throws IOException {
StringWriter out = new StringWriter();
DockerComposeModel compose = new DockerComposeModel().volumes(
volume("alfresco"),
volume("postgres")
);
try (IndentingWriter writer = createWriter(out)) {
this.composeWriter.writeTo(writer, compose);
}
String yml = out.toString();
assertThat(yml)
.isNotBlank()
.isEqualTo(String.join("\n",
"version: '2.2'",
"",
"volumes:",
" alfresco:",
" postgres:",
"" // EOF on new line
));
}
private IndentingWriter createWriter(StringWriter out) {
return this.indentingWriterFactory.createIndentingWriter("yml", out);
}
}