Skip to content

Commit c78b0ef

Browse files
committed
[27160] update mail text image placeholder test
1 parent 676037d commit c78b0ef

3 files changed

Lines changed: 63 additions & 2 deletions

File tree

bundles/ch.elexis.core.test.context/src/ch/elexis/core/test/context/TestContext.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import java.util.Optional;
44
import java.util.UUID;
55
import java.util.concurrent.ConcurrentHashMap;
6+
import java.util.function.Supplier;
67

78
import ch.elexis.core.model.IContact;
89
import ch.elexis.core.model.IMandator;
@@ -91,6 +92,9 @@ public Optional<?> getNamed(String name) {
9192
if (!ret.isPresent() && parent != null) {
9293
ret = parent.getNamed(name);
9394
}
95+
if (ret.isPresent() && ret.get() instanceof Supplier) {
96+
return Optional.ofNullable(((Supplier<?>) ret.get()).get());
97+
}
9498
return ret;
9599
}
96100

tests/ch.elexis.core.mail.test/MailAllTests.launch

Lines changed: 21 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@
5454
<setEntry value="ch.qos.logback.classic@2:true"/>
5555
<setEntry value="ch.qos.logback.core@default:default"/>
5656
<setEntry value="com.github.kirviq.dumbster@default:default"/>
57-
<setEntry value="com.google.gson@default:default"/>
57+
<setEntry value="com.google.gson*2.12.1@default:default"/>
5858
<setEntry value="com.google.guava.failureaccess@default:default"/>
5959
<setEntry value="com.google.guava@default:default"/>
6060
<setEntry value="com.h2database@default:default"/>
@@ -63,13 +63,16 @@
6363
<setEntry value="com.icegreen.greenmail-junit4@default:default"/>
6464
<setEntry value="com.icegreen.greenmail@default:default"/>
6565
<setEntry value="com.mysql.cj@default:default"/>
66+
<setEntry value="com.opencsv@default:default"/>
67+
<setEntry value="io.curity.oauth-filter@default:default"/>
6668
<setEntry value="jakarta.activation-api@2:true"/>
6769
<setEntry value="jakarta.annotation-api@default:default"/>
6870
<setEntry value="jakarta.el-api@default:default"/>
6971
<setEntry value="jakarta.enterprise.cdi-api@default:default"/>
7072
<setEntry value="jakarta.enterprise.lang-model@default:default"/>
7173
<setEntry value="jakarta.inject.jakarta.inject-api@default:default"/>
7274
<setEntry value="jakarta.interceptor-api@default:default"/>
75+
<setEntry value="jakarta.mail-api@default:default"/>
7376
<setEntry value="jakarta.persistence-api@default:default"/>
7477
<setEntry value="jakarta.servlet-api*6.1.0@default:default"/>
7578
<setEntry value="jakarta.transaction-api@default:default"/>
@@ -81,6 +84,7 @@
8184
<setEntry value="org.apache.commons.collections@default:default"/>
8285
<setEntry value="org.apache.commons.commons-beanutils@default:default"/>
8386
<setEntry value="org.apache.commons.commons-codec*1.17.0@default:default"/>
87+
<setEntry value="org.apache.commons.commons-collections4@default:default"/>
8488
<setEntry value="org.apache.commons.commons-compress*1.27.1@default:default"/>
8589
<setEntry value="org.apache.commons.commons-dbcp2@default:default"/>
8690
<setEntry value="org.apache.commons.commons-io*2.18.0@default:default"/>
@@ -91,8 +95,13 @@
9195
<setEntry value="org.apache.felix.gogo.runtime@default:default"/>
9296
<setEntry value="org.apache.felix.gogo.shell@default:default"/>
9397
<setEntry value="org.apache.felix.scr@1:true"/>
98+
<setEntry value="org.apache.httpcomponents.client5.httpclient5@default:default"/>
99+
<setEntry value="org.apache.httpcomponents.core5.httpcore5-h2@default:default"/>
100+
<setEntry value="org.apache.httpcomponents.core5.httpcore5@default:default"/>
94101
<setEntry value="org.apache.httpcomponents.httpclient@default:default"/>
95102
<setEntry value="org.apache.httpcomponents.httpcore@default:default"/>
103+
<setEntry value="org.apache.logging.log4j.api@default:default"/>
104+
<setEntry value="org.apache.logging.log4j.core@default:default"/>
96105
<setEntry value="org.apache.poi.ooxml@default:default"/>
97106
<setEntry value="org.apache.poi@default:default"/>
98107
<setEntry value="org.apache.xmlbeans@default:default"/>
@@ -132,6 +141,7 @@
132141
<setEntry value="org.glassfish.jersey.media.jersey-media-multipart@default:default"/>
133142
<setEntry value="org.hamcrest@default:default"/>
134143
<setEntry value="org.jdom.2@default:default"/>
144+
<setEntry value="org.jsoup@default:default"/>
135145
<setEntry value="org.junit@default:default"/>
136146
<setEntry value="org.jvnet.mimepull@default:default"/>
137147
<setEntry value="org.objectweb.asm*9.7.1@default:default"/>
@@ -152,25 +162,34 @@
152162
</setAttribute>
153163
<setAttribute key="selected_workspace_bundles">
154164
<setEntry value="ch.elexis.core.documents@default:default"/>
165+
<setEntry value="ch.elexis.core.hl7.v2x.tests@default:default"/>
155166
<setEntry value="ch.elexis.core.hl7.v2x@default:default"/>
156167
<setEntry value="ch.elexis.core.importer.div@default:default"/>
168+
<setEntry value="ch.elexis.core.jcifs.test@default:default"/>
157169
<setEntry value="ch.elexis.core.jcifs@default:default"/>
158170
<setEntry value="ch.elexis.core.jpa.datasource@3:true"/>
171+
<setEntry value="ch.elexis.core.jpa.entities.test@default:default"/>
159172
<setEntry value="ch.elexis.core.jpa.entities@default:default"/>
160173
<setEntry value="ch.elexis.core.jpa.logging.slf4j@default:false"/>
174+
<setEntry value="ch.elexis.core.jpa.test@default:default"/>
161175
<setEntry value="ch.elexis.core.jpa@default:default"/>
162176
<setEntry value="ch.elexis.core.l10n@default:default"/>
177+
<setEntry value="ch.elexis.core.logging.default_configuration@default:default"/>
163178
<setEntry value="ch.elexis.core.mail.test@default:false"/>
164179
<setEntry value="ch.elexis.core.mail@default:default"/>
165180
<setEntry value="ch.elexis.core.model@default:default"/>
166181
<setEntry value="ch.elexis.core.services@default:default"/>
182+
<setEntry value="ch.elexis.core.tasks.test@default:default"/>
167183
<setEntry value="ch.elexis.core.tasks@default:default"/>
168184
<setEntry value="ch.elexis.core.test.context@default:default"/>
169-
<setEntry value="ch.elexis.core.test.logging@default:default"/>
185+
<setEntry value="ch.elexis.core.test.logging@default:false"/>
170186
<setEntry value="ch.elexis.core.webdav@default:default"/>
171187
<setEntry value="ch.elexis.core@default:default"/>
188+
<setEntry value="ch.rgw.utility.tests@default:default"/>
172189
<setEntry value="ch.rgw.utility@default:default"/>
190+
<setEntry value="es.gogo.shell@default:default"/>
173191
<setEntry value="info.elexis.jaxrs.service@default:default"/>
192+
<setEntry value="info.elexis.server.core.logging@default:default"/>
174193
</setAttribute>
175194
<booleanAttribute key="show_selected_only" value="false"/>
176195
<booleanAttribute key="tracing" value="false"/>

tests/ch.elexis.core.mail.test/src/ch/elexis/core/mail/MailTextTemplateTest.java

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,24 +2,40 @@
22

33
import static org.junit.Assert.assertEquals;
44
import static org.junit.Assert.assertFalse;
5+
import static org.junit.Assert.assertNotNull;
56
import static org.junit.Assert.assertTrue;
67

78
import java.util.List;
89
import java.util.Optional;
10+
import java.util.function.Supplier;
911

12+
import org.junit.After;
1013
import org.junit.Before;
1114
import org.junit.Test;
1215

16+
import ch.elexis.core.model.IImage;
1317
import ch.elexis.core.model.ITextTemplate;
1418
import ch.elexis.core.services.IQuery;
19+
import ch.elexis.core.services.ITextReplacementService;
20+
import ch.elexis.core.services.holder.ContextServiceHolder;
1521
import ch.elexis.core.services.holder.CoreModelServiceHolder;
22+
import ch.elexis.core.utils.OsgiServiceUtil;
1623

1724
public class MailTextTemplateTest {
1825

26+
private ITextReplacementService textReplacement;
27+
1928
@Before
2029
public void before() {
2130
IQuery<ITextTemplate> query = CoreModelServiceHolder.get().getQuery(ITextTemplate.class);
2231
query.execute().forEach(t -> CoreModelServiceHolder.get().remove(t));
32+
33+
textReplacement = OsgiServiceUtil.getService(ITextReplacementService.class).get();
34+
}
35+
36+
@After
37+
public void after() {
38+
OsgiServiceUtil.ungetService(textReplacement);
2339
}
2440

2541
@Test
@@ -37,4 +53,26 @@ public void saveAndLoadAll() {
3753
loadedTemplate = MailTextTemplate.load("testTemplate");
3854
assertTrue(loadedTemplate.isPresent());
3955
}
56+
57+
@Test
58+
public void imageTemplates() {
59+
ContextServiceHolder.get().setNamed("ch.elexis.core.mail.image.elexismailappointmentqr",
60+
new Supplier<IImage>() {
61+
@Override
62+
public IImage get() {
63+
IImage ret = CoreModelServiceHolder.get().create(IImage.class);
64+
ret.setImage(new byte[1]);
65+
ret.setTitle("test");
66+
return ret;
67+
}
68+
});
69+
70+
String text = "text\n[Image.MailAppointmentQr]\n\n[Image.MailPraxisLogo]";
71+
String replacedText = textReplacement.performReplacement(ContextServiceHolder.get().getRootContext(), text);
72+
73+
MailMessage message = new MailMessage().to("receiver@there.com").subject("subject").text(replacedText);
74+
assertTrue(message.hasImage());
75+
assertEquals(2, message.getImageStrings().size());
76+
assertNotNull(message.getImage("cid:elexismailappointmentqr"));
77+
}
4078
}

0 commit comments

Comments
 (0)