You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@struts.apache.org by ku...@apache.org on 2023/08/18 03:17:34 UTC
[struts] 05/05: WW-5334 Add basic unit tests for VelocityManager
This is an automated email from the ASF dual-hosted git repository.
kusal pushed a commit to branch WW-5334-velocity-manager
in repository https://gitbox.apache.org/repos/asf/struts.git
commit 1ca83e8b8e7c556c5e6db2182db0336bf15109ef
Author: Kusal Kithul-Godage <gi...@kusal.io>
AuthorDate: Fri Aug 18 13:17:19 2023 +1000
WW-5334 Add basic unit tests for VelocityManager
---
.../views/velocity/VelocityManagerTest.java | 65 ++++++++++++++++++++++
1 file changed, 65 insertions(+)
diff --git a/plugins/velocity/src/test/java/org/apache/struts2/views/velocity/VelocityManagerTest.java b/plugins/velocity/src/test/java/org/apache/struts2/views/velocity/VelocityManagerTest.java
new file mode 100644
index 000000000..692d7d57b
--- /dev/null
+++ b/plugins/velocity/src/test/java/org/apache/struts2/views/velocity/VelocityManagerTest.java
@@ -0,0 +1,65 @@
+package org.apache.struts2.views.velocity;
+
+import com.opensymphony.xwork2.ActionContext;
+import com.opensymphony.xwork2.util.ValueStack;
+import org.apache.struts2.junit.StrutsJUnit4TestCase;
+import org.apache.struts2.views.jsp.ui.OgnlTool;
+import org.apache.velocity.context.Context;
+import org.junit.Before;
+import org.junit.Test;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.util.Properties;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertThrows;
+import static org.junit.Assert.assertTrue;
+
+public class VelocityManagerTest extends StrutsJUnit4TestCase {
+
+ VelocityManager velocityManager = new VelocityManager();
+
+ @Before
+ public void inject() throws Exception {
+ container.inject(velocityManager);
+ }
+
+ @Test
+ public void testProperties() {
+ Properties props = new Properties();
+ velocityManager.setVelocityProperties(props);
+
+ assertEquals(props, velocityManager.getVelocityProperties());
+ }
+
+ @Test
+ public void testInitSuccess() {
+ velocityManager.init(servletContext);
+
+ assertNotNull(velocityManager.getVelocityEngine());
+ }
+
+ @Test
+ public void testCreateContext() {
+ velocityManager.init(servletContext);
+
+ Context context = velocityManager.createContext(ActionContext.getContext().getValueStack(), request, response);
+
+ assertNotNull(context);
+ assertTrue(context.get("struts") instanceof VelocityStrutsUtil);
+ assertTrue(context.get("ognl") instanceof OgnlTool);
+ assertTrue(context.get("stack") instanceof ValueStack);
+ assertTrue(context.get("request") instanceof HttpServletRequest);
+ assertTrue(context.get("response") instanceof HttpServletResponse);
+ }
+
+ @Test
+ public void testInitFailsWithInvalidToolBoxLocation() {
+ velocityManager.setToolBoxLocation("nonexistent");
+
+ Exception e = assertThrows(Exception.class, () -> velocityManager.init(servletContext));
+ assertTrue(e.getMessage().contains("Could not find any configuration at nonexistent"));
+ }
+}