EN · DE · RU · FR · ES

#292: GroovyEngineTest.java

plugins/org.projectforge.plugins.todo/src/test/java/org/projectforge/plugins/todo/GroovyEngineTest.java Typ: Java · Rolle: Test · Quelle: plugins/org.projectforge.plugins.todo/src/test/java/org/projectforge/plugins/todo/GroovyEngineTest.java 87 Zeilen · 56 Code · 22 Kommentare · 9 leer
Unit-/Integrationstest für GroovyEngine. Validiert die Korrektheit des entsprechenden Produktionsklassenverhaltens.

Codestruktur

Paket: org.projectforge.plugins.todo

Klassen: GroovyEngineTest

Erweitert: AbstractTestBase

Methoden (3): renderTest, mailTemplateTest, preprocesTest

Felder (1): configurationService

Importe: 13 Pakete

Quellcode (gekürzt)

package org.projectforge.plugins.todo;

import org.junit.jupiter.api.Test;
import org.projectforge.ProjectForgeVersion;
import org.projectforge.business.configuration.ConfigurationService;
import org.projectforge.business.scripting.GroovyEngine;
import org.projectforge.common.i18n.Priority;
import org.projectforge.framework.persistence.history.FlatDisplayHistoryEntry;
import org.projectforge.framework.persistence.user.entities.PFUserDO;
import org.projectforge.business.test.AbstractTestBase;
import org.springframework.beans.factory.annotation.Autowired;

import java.util.ArrayList;
import java.util.Locale;
import java.util.TimeZone;

import static org.junit.jupiter.api.Assertions.*;

public class GroovyEngineTest extends AbstractTestBase {
  @Autowired
  private ConfigurationService configurationService;

  @Test
  public void renderTest() {
    final GroovyEngine engine = new GroovyEngine(configurationService, Locale.GERMAN, TimeZone.getTimeZone("UTC"));
    engine.putVariable("name", "Kai");

    final String res = engine.executeTemplate("Hallo $name, Ihre Locale ist '<%= pf.getI18nString(\"locale.de\") %>'.");
    assertEquals("Hallo Kai, Ihre Locale ist 'Deutsch'.", res);
    assertEquals("Hallo Kai, Ihre Locale ist 'Deutsch'. " + ProjectForgeVersion.APP_ID + "\n Fertig: Englisch", engine
            .executeTemplateFile("scripting/template.txt"));
  }

  @Test
  public void mailTemplateTest() {
    final GroovyEngine engine = new GroovyEngine(configurationService, Locale.GERMAN, TimeZone.getTimeZone("UTC"));
    PFUserDO user = new PFUserDO();
    user.setFirstname("Kai");
    user.setLastname("Reinhard");
    user.setLocale(Locale.GERMAN);
    engine.putVariable("recipient", user);
    ToDoDO todo = new ToDoDO();
    todo.setType(ToDoType.IMPROVEMENT);
    todo.setPriority(Priority.HIGH);
    todo.setReporter(user);
    todo.setAssignee(user);
    engine.putVariable("todo", todo);
    engine.putVariable("title", "ToDo");
    engine.putVariable("history", new ArrayList<FlatDisplayHistoryEntry>());
    engine.putVariable("requestUrl", "https://localhost:8443/wa/toDoEditPage/id/42");
    final String result = engine.executeTemplateFile("mail/todoChangeNotification.html");
    assertTrue(result.contains("hoch"), "I18n-Priorität erwartet.");
    assertTrue(result.contains("Verbesserung"), "I18n-Schlüssel für Typ Verbesserung erwartet.");
  }

  @Test
  public void preprocesTest() {
    final GroovyEngine engine = new GroovyEngine(configurationService, Locale.GERMAN, TimeZone.getTimeZone("UTC"));
    assertNull(engine.preprocessGroovyXml(null));
    assertEquals("", engine.preprocessGroovyXml(""));
    assertEquals("<% if (value != null) { %>", engine.preprocessGroovyXml("<groovy>if (value != null) {</groovy>"));
    assertEquals("<%= value %>", engine.preprocessGroovyXml("<groovy-out>value</groovy-out>"));
  }
}

Git-Verlauf

868d6abb7 2025 -> 2026
63081666f Quellcode-Dateiköpfe: 2024 -> 2025.
176cb32d7 WIP: Gradle
d18c899b5 Refactoring der Verlaufseinträge, FlatDisplayHistoryEntries und DisplayHistoryEntries...
b6092df09 Copyright 2023 -> 2024