EN · DE · RU · FR · ES

#292: GroovyEngineTest.java

plugins/org.projectforge.plugins.todo/src/test/java/org/projectforge/plugins/todo/GroovyEngineTest.java Tipo: Java · Rol: Prueba · Fuente: plugins/org.projectforge.plugins.todo/src/test/java/org/projectforge/plugins/todo/GroovyEngineTest.java 87 líneas · 56 código · 22 comentarios · 9 en blanco
Prueba unitaria/de integración para GroovyEngine. Valida la corrección del comportamiento de la clase de producción correspondiente.

Estructura del código

Paquete: org.projectforge.plugins.todo

Clases: GroovyEngineTest

>Extiende: AbstractTestBase

Métodos (3): renderTest, mailTemplateTest, preprocesTest

Campos (1): configurationService

Importaciones: 13 paquetes

Código fuente (resumido)

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, your locale is '<%= pf.getI18nString(\"locale.de\") %>'.");
    assertEquals("Hallo Kai, your locale is 'Deutsch'.", res);
    assertEquals("Hallo Kai, your locale is 'Deutsch'. " + ProjectForgeVersion.APP_ID + "\n Finished: 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"), "Se esperaba prioridad I18n.");
    assertTrue(result.contains("Verbesserung"), "Se esperaba clave I18n para tipo mejora.");
  }

  @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>"));
  }
}

Historial de Git

868d6abb7 2025 -> 2026
63081666f Encabezados de archivos fuente: 2024 -> 2025.
176cb32d7 WIP: Gradle
d18c899b5 Refactorización de entradas de historial, FlatDisplayHistoryEntries y DisplayHistoryEntries...
b6092df09 Derechos de autor 2023 -> 2024