From 5c62ab7cb6385908a9e50303cdb085bf92dcee66 Mon Sep 17 00:00:00 2001
From: srosse <stephane.rosse@frentix.com>
Date: Tue, 26 Mar 2019 08:51:30 +0100
Subject: [PATCH] OO-3988: add some unit tests

---
 .../manager/ReminderRulesXStream.java         |  4 ++
 .../manager/ReminderRulesXStreamTest.java     | 54 +++++++++++++++++++
 .../reminder/manager/reminder_rules_1.xml     | 20 +++++++
 .../java/org/olat/test/AllTestsJunit4.java    |  2 +
 4 files changed, 80 insertions(+)
 create mode 100644 src/test/java/org/olat/modules/reminder/manager/ReminderRulesXStreamTest.java
 create mode 100644 src/test/java/org/olat/modules/reminder/manager/reminder_rules_1.xml

diff --git a/src/main/java/org/olat/modules/reminder/manager/ReminderRulesXStream.java b/src/main/java/org/olat/modules/reminder/manager/ReminderRulesXStream.java
index 317a2cdc3a0..72222603459 100644
--- a/src/main/java/org/olat/modules/reminder/manager/ReminderRulesXStream.java
+++ b/src/main/java/org/olat/modules/reminder/manager/ReminderRulesXStream.java
@@ -48,6 +48,10 @@ public class ReminderRulesXStream {
 		return (ReminderRules)ruleXStream.fromXML(rulesXml);
 	}
 	
+	public static ReminderRules toRules(InputStream in) {
+		return (ReminderRules)ruleXStream.fromXML(in);
+	}
+	
 	public static String toXML(ReminderRules rules) {
 		return ruleXStream.toXML(rules);
 	}
diff --git a/src/test/java/org/olat/modules/reminder/manager/ReminderRulesXStreamTest.java b/src/test/java/org/olat/modules/reminder/manager/ReminderRulesXStreamTest.java
new file mode 100644
index 00000000000..1b153b31cbc
--- /dev/null
+++ b/src/test/java/org/olat/modules/reminder/manager/ReminderRulesXStreamTest.java
@@ -0,0 +1,54 @@
+/**
+ * <a href="http://www.openolat.org">
+ * OpenOLAT - Online Learning and Training</a><br>
+ * <p>
+ * Licensed under the Apache License, Version 2.0 (the "License"); <br>
+ * you may not use this file except in compliance with the License.<br>
+ * You may obtain a copy of the License at the
+ * <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache homepage</a>
+ * <p>
+ * Unless required by applicable law or agreed to in writing,<br>
+ * software distributed under the License is distributed on an "AS IS" BASIS, <br>
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. <br>
+ * See the License for the specific language governing permissions and <br>
+ * limitations under the License.
+ * <p>
+ * Initial code contributed and copyrighted by<br>
+ * frentix GmbH, http://www.frentix.com
+ * <p>
+ */
+package org.olat.modules.reminder.manager;
+
+import java.io.IOException;
+import java.io.InputStream;
+
+import org.junit.Assert;
+import org.junit.Test;
+import org.olat.core.logging.OLog;
+import org.olat.core.logging.Tracing;
+import org.olat.modules.reminder.model.ReminderRules;
+
+/**
+ * 
+ * Initial date: 26 mars 2019<br>
+ * @author srosse, stephane.rosse@frentix.com, http://www.frentix.com
+ *
+ */
+public class ReminderRulesXStreamTest {
+	
+	private static final OLog log = Tracing.createLoggerFor(ReminderRulesXStreamTest.class);
+	
+	@Test
+	public void readXml() {
+		ReminderRules reminderRules = null;
+		try(InputStream input=ReminderRulesXStreamTest.class.getResourceAsStream("reminder_rules_1.xml")) {
+			reminderRules = ReminderRulesXStream.toRules(input);
+		} catch(IOException e) {
+			log.error("", e);
+		}
+		
+		Assert.assertNotNull(reminderRules);
+		Assert.assertNotNull(reminderRules.getRules());
+		Assert.assertEquals(3, reminderRules.getRules().size());
+	}
+}
diff --git a/src/test/java/org/olat/modules/reminder/manager/reminder_rules_1.xml b/src/test/java/org/olat/modules/reminder/manager/reminder_rules_1.xml
new file mode 100644
index 00000000000..f6afabd98f4
--- /dev/null
+++ b/src/test/java/org/olat/modules/reminder/manager/reminder_rules_1.xml
@@ -0,0 +1,20 @@
+<rules>
+  <rules>
+    <rule>
+      <type>DateRuleSPI</type>
+      <operator>&gt;</operator>
+      <rightOperand>2015-05-13T00:00:00</rightOperand>
+    </rule>
+    <rule>
+      <type>BusinessGroupRoleRuleSPI</type>
+      <operator>=</operator>
+      <rightOperand>128286721</rightOperand>
+    </rule>
+    <rule>
+      <type>PassedRuleSPI</type>
+      <leftOperand>91610795686842</leftOperand>
+      <operator>=</operator>
+      <rightOperand>passed</rightOperand>
+    </rule>
+  </rules>
+</rules>
\ No newline at end of file
diff --git a/src/test/java/org/olat/test/AllTestsJunit4.java b/src/test/java/org/olat/test/AllTestsJunit4.java
index f3b064a60ff..9918067f4b9 100644
--- a/src/test/java/org/olat/test/AllTestsJunit4.java
+++ b/src/test/java/org/olat/test/AllTestsJunit4.java
@@ -210,6 +210,7 @@ import org.junit.runners.Suite;
 	org.olat.modules.reminder.ReminderModuleTest.class,
 	org.olat.modules.reminder.manager.ReminderDAOTest.class,
 	org.olat.modules.reminder.manager.ReminderRuleEngineTest.class,
+	org.olat.modules.reminder.manager.ReminderRulesXStreamTest.class,
 	org.olat.modules.taxonomy.manager.TaxonomyDAOTest.class,
 	org.olat.modules.taxonomy.manager.TaxonomyLevelDAOTest.class,
 	org.olat.modules.taxonomy.manager.TaxonomyLevelTypeDAOTest.class,
@@ -329,6 +330,7 @@ import org.junit.runners.Suite;
 	org.olat.restapi.NotificationsSubscribersTest.class,
 	org.olat.restapi.RepositoryEntryLifecycleTest.class,
 	org.olat.restapi.RepositoryEntriesTest.class,
+	org.olat.restapi.RemindersWebServiceTest.class,
 	org.olat.restapi.RepositoryEntryResourceTest.class,
 	org.olat.restapi.RestApiLoginFilterTest.class,
 	org.olat.restapi.UserAuthenticationMgmtTest.class,
-- 
GitLab