[ONOS-4650][ONOS-4726][ONOS-4727] [ONOS-4728]Implement must parser + when parser + feature + if-feature + revision defect fix

Change-Id: I0a3aee6c1c6b72ef7da7f7f565fd0f149fe3fd42
diff --git a/plugin/src/test/java/org/onosproject/yangutils/parser/impl/listeners/RevisionListenerTest.java b/plugin/src/test/java/org/onosproject/yangutils/parser/impl/listeners/RevisionListenerTest.java
index a5eeb04..fbeacc8 100644
--- a/plugin/src/test/java/org/onosproject/yangutils/parser/impl/listeners/RevisionListenerTest.java
+++ b/plugin/src/test/java/org/onosproject/yangutils/parser/impl/listeners/RevisionListenerTest.java
@@ -16,14 +16,15 @@
 
 package org.onosproject.yangutils.parser.impl.listeners;
 
+import java.io.IOException;
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
 import org.junit.Test;
 import org.onosproject.yangutils.datamodel.YangModule;
 import org.onosproject.yangutils.datamodel.YangNode;
 import org.onosproject.yangutils.parser.exceptions.ParserException;
 import org.onosproject.yangutils.parser.impl.YangUtilsParserManager;
 
-import java.io.IOException;
-
 import static org.hamcrest.core.Is.is;
 import static org.hamcrest.core.IsNull.notNullValue;
 import static org.junit.Assert.assertThat;
@@ -34,18 +35,19 @@
 public class RevisionListenerTest {
 
     private final YangUtilsParserManager manager = new YangUtilsParserManager();
+    private static final String DATE_FORMAT = "yyyy-MM-dd";
+    private final SimpleDateFormat simpleDateFormat = new SimpleDateFormat(DATE_FORMAT);
 
     /**
      * Checks if revision doesn't have optional parameters "revision and
      * description".
      */
     @Test
-    public void processRevisionNoOptionalParameter() throws IOException, ParserException {
+    public void processRevisionNoOptionalParameter() throws IOException, ParserException, ParseException {
 
         YangNode node = manager.getDataModel("src/test/resources/RevisionNoOptionalParameter.yang");
-
         // Checks for the version value in data model tree.
-        assertThat(((YangModule) node).getRevision().getRevDate(), is("2016-02-03"));
+        assertThat(((YangModule) node).getRevision().getRevDate(), is(simpleDateFormat.parse("2016-02-03")));
     }
 
     /**
@@ -75,4 +77,14 @@
         YangNode node = manager.getDataModel("src/test/resources/RevisionAbsence.yang");
         assertThat(((YangModule) node).getRevision().getRevDate(), notNullValue());
     }
+
+    /**
+     * Checks latest date is stored when there are multiple revisions.
+     */
+    @Test
+    public void processWithMultipleRevision() throws IOException, ParserException, ParseException {
+
+        YangNode node = manager.getDataModel("src/test/resources/MultipleRevision.yang");
+        assertThat(((YangModule) node).getRevision().getRevDate(), is(simpleDateFormat.parse("2013-07-15")));
+    }
 }
\ No newline at end of file