Cisco Ios DeviceDescription

Change-Id: I51561c51fe18a6ee9676a894ec698e2a2fc222b4
diff --git a/drivers/cisco/src/test/java/org/onosproject/drivers/cisco/TextBlockParserCiscoTest.java b/drivers/cisco/src/test/java/org/onosproject/drivers/cisco/TextBlockParserCiscoTest.java
index b9ec739..321704f 100644
--- a/drivers/cisco/src/test/java/org/onosproject/drivers/cisco/TextBlockParserCiscoTest.java
+++ b/drivers/cisco/src/test/java/org/onosproject/drivers/cisco/TextBlockParserCiscoTest.java
@@ -18,21 +18,24 @@
 
 
 import org.junit.Test;
+import org.onlab.packet.ChassisId;
 import org.onosproject.net.AnnotationKeys;
 import org.onosproject.net.DefaultAnnotations;
+import org.onosproject.net.DefaultDevice;
+import org.onosproject.net.DeviceId;
 import org.onosproject.net.Port;
 import org.onosproject.net.PortNumber;
 import org.onosproject.net.device.DefaultPortDescription;
 import org.onosproject.net.device.PortDescription;
-
+import org.onosproject.net.provider.ProviderId;
 import java.io.InputStream;
-import java.util.Scanner;
 import java.util.ArrayList;
 import java.util.List;
-
-
-
+import java.util.Scanner;
 import static org.junit.Assert.assertEquals;
+import static org.onosproject.net.Device.Type.SWITCH;
+import static org.onosproject.net.DeviceId.deviceId;
+
 
 /**
  * Tests the parser for Netconf TextBlock configurations and replies from Cisco devices.
@@ -59,17 +62,47 @@
     private static final long CONNECTION_SPEED_FDDI = 100000;
     private static final boolean IS_ENABLED = true;
     private static final boolean IS_NOT_ENABLED = false;
-    private static final String TEXT_FILE = "/CiscoIosInterfaces.xml";
+    private static final String SHOW_VERSION = "/testShowVersion.xml";
+    private static final String SHOW_INTFS = "/testShowInterfaces.xml";
+    private static final String SW = "IOS C3560E 15.0(2)EJ";
+    private static final String HW = "SM-X-ES3-24-P";
+    private static final String MFR = "Cisco";
+    private static final String SN = "FOC18401Z3R";
+    private static final ProviderId PROVIDERID = new ProviderId("of", "foo");
+    private static final DeviceId DEVICE = deviceId("of:foo");
+    private static final ChassisId CID = new ChassisId();
 
     @Test
-    public void controllersConfig() {
-        InputStream streamOrig = getClass().getResourceAsStream(TEXT_FILE);
+    public void controllersVersion() {
+        InputStream streamOrig = getClass().getResourceAsStream(SHOW_VERSION);
+        String version = new Scanner(streamOrig, "UTF-8").useDelimiter("\\Z").next();
+        version = version.substring(version.indexOf('\n') + 1);
+        String[] actualDetails = TextBlockParserCisco.parseCiscoIosDeviceDetails(version);
+
+        assertEquals("Information could not be retrieved",
+                     getExpectedInfo(), actualInfo(actualDetails));
+    }
+
+    @Test
+    public void controllersIntfs() {
+        InputStream streamOrig = getClass().getResourceAsStream(SHOW_INTFS);
         String rpcReply = new Scanner(streamOrig, "UTF-8").useDelimiter("\\Z").next();
         List<PortDescription> actualIntfs = TextBlockParserCisco.parseCiscoIosPorts(rpcReply);
-        assertEquals("Interfaces were not retrieved from configuration",
+        assertEquals("Information could not be retrieved",
                      getExpectedIntfs(), actualIntfs);
     }
 
+    private DefaultDevice getExpectedInfo() {
+        return new DefaultDevice(PROVIDERID, DEVICE, SWITCH, MFR, HW, SW, SN, CID);
+    }
+
+    private DefaultDevice actualInfo(String[] actualDetails) {
+
+        return new DefaultDevice(PROVIDERID, DEVICE, SWITCH, actualDetails[0],
+                                 actualDetails[1], actualDetails[2],
+                                 actualDetails[3], CID);
+    }
+
     private List<PortDescription> getExpectedIntfs() {
         DefaultAnnotations.Builder int1Annotations = DefaultAnnotations.builder()
                 .set(AnnotationKeys.PORT_NAME, INTF1_NAME);
@@ -99,4 +132,5 @@
                                              int6Annotations.build()));
         return intfs;
     }
+
 }