ONOS-4380 Refactor AlarmId and Alarm construction and update

Change-Id: I0117afda723ba27aadb1db306f7ce15b666f102d
diff --git a/incubator/api/src/test/java/org/onosproject/incubator/net/faultmanagement/alarm/AlarmIdTest.java b/incubator/api/src/test/java/org/onosproject/incubator/net/faultmanagement/alarm/AlarmIdTest.java
index bfb56d6..e9522c4 100644
--- a/incubator/api/src/test/java/org/onosproject/incubator/net/faultmanagement/alarm/AlarmIdTest.java
+++ b/incubator/api/src/test/java/org/onosproject/incubator/net/faultmanagement/alarm/AlarmIdTest.java
@@ -16,14 +16,13 @@
 package org.onosproject.incubator.net.faultmanagement.alarm;
 
 import com.google.common.testing.EqualsTester;
-import static org.hamcrest.Matchers.containsString;
 import org.junit.Test;
+import org.onosproject.net.DeviceId;
 
 import static org.hamcrest.Matchers.is;
 import static org.hamcrest.Matchers.not;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertThat;
-import static org.junit.Assert.fail;
 import static org.onlab.junit.ImmutableClassChecker.assertThatClassIsImmutable;
 
 /**
@@ -31,9 +30,16 @@
  */
 public class AlarmIdTest {
 
-    private static final long ID_A = 1L;
-    private static final long ID_B = 2L;
-    private static final long ID_Z = 987654321L;
+    private static final DeviceId DEVICE_ID = DeviceId.deviceId("foo:bar");
+    private static final String UNIQUE_ID_1 = "unique_id_1";
+    private static final AlarmId ID_A = AlarmId.alarmId(DEVICE_ID, UNIQUE_ID_1);
+
+    private static final String UNIQUE_ID_2 = "unique_id_2";
+
+    private static final String UNIQUE_ID_3 = "unique_id_3";
+    private static final AlarmId ID_Z = AlarmId.alarmId(DEVICE_ID, UNIQUE_ID_3);
+
+    private static final String ID_STRING = "foo:bar:unique_id_3";
 
     /**
      * Tests the immutability of {@link AlarmId}.
@@ -48,8 +54,8 @@
      */
     @Test
     public void testEquality() {
-        final AlarmId id1 = AlarmId.alarmId(ID_A);
-        final AlarmId id2 = AlarmId.alarmId(ID_A);
+        final AlarmId id1 = AlarmId.alarmId(DEVICE_ID, UNIQUE_ID_1);
+        final AlarmId id2 = AlarmId.alarmId(DEVICE_ID, UNIQUE_ID_1);
 
         assertThat(id1, is(id2));
     }
@@ -59,16 +65,16 @@
      */
     @Test
     public void testNonEquality() {
-        final AlarmId id1 = AlarmId.alarmId(ID_A);
-        final AlarmId id2 = AlarmId.alarmId(ID_B);
+        final AlarmId id1 = AlarmId.alarmId(DEVICE_ID, UNIQUE_ID_1);
+        final AlarmId id2 = AlarmId.alarmId(DEVICE_ID, UNIQUE_ID_2);
 
         assertThat(id1, is(not(id2)));
     }
 
     @Test
     public void valueOf() {
-        final AlarmId id = AlarmId.alarmId(0xdeadbeefL);
-        assertEquals("incorrect valueOf", id, AlarmId.alarmId(0xdeadbeefL));
+        final AlarmId id = AlarmId.alarmId(DEVICE_ID, UNIQUE_ID_1);
+        assertEquals("incorrect valueOf", id, ID_A);
     }
 
     /**
@@ -76,9 +82,9 @@
      */
     @Test
     public void testEquals() {
-        final AlarmId id1 = AlarmId.alarmId(11111L);
-        final AlarmId sameAsId1 = AlarmId.alarmId(11111L);
-        final AlarmId id2 = AlarmId.alarmId(22222L);
+        final AlarmId id1 = AlarmId.alarmId(DEVICE_ID, UNIQUE_ID_1);
+        final AlarmId sameAsId1 = AlarmId.alarmId(DEVICE_ID, UNIQUE_ID_1);
+        final AlarmId id2 = AlarmId.alarmId(DEVICE_ID, UNIQUE_ID_2);
 
         new EqualsTester()
                 .addEqualityGroup(id1, sameAsId1)
@@ -91,18 +97,11 @@
      */
     @Test
     public void testConstruction() {
-        final AlarmId id1 = AlarmId.alarmId(ID_Z);
-        assertEquals(id1.fingerprint(), ID_Z);
+        final AlarmId id1 = AlarmId.alarmId(DEVICE_ID, UNIQUE_ID_3);
+        assertEquals(id1.toString(), ID_Z.toString());
 
-        // No default constructor so no need to test it !
-        assertEquals(0L, AlarmId.NONE.fingerprint());
-        try {
-            final AlarmId bad = AlarmId.alarmId(0L);
-            fail("0 is a Reserved value but we created " + bad);
-        } catch (IllegalArgumentException ex) {
-            assertThat(ex.getMessage(),
-                    containsString("id must be non-zero"));
-        }
+        final AlarmId idString = AlarmId.alarmId(ID_STRING);
+        assertEquals(id1, idString);
 
     }
 }
diff --git a/incubator/api/src/test/java/org/onosproject/incubator/net/faultmanagement/alarm/DefaultAlarmTest.java b/incubator/api/src/test/java/org/onosproject/incubator/net/faultmanagement/alarm/DefaultAlarmTest.java
index 60bb330..7e4c3a9 100644
--- a/incubator/api/src/test/java/org/onosproject/incubator/net/faultmanagement/alarm/DefaultAlarmTest.java
+++ b/incubator/api/src/test/java/org/onosproject/incubator/net/faultmanagement/alarm/DefaultAlarmTest.java
@@ -15,17 +15,23 @@
  */
 package org.onosproject.incubator.net.faultmanagement.alarm;
 
-import static org.hamcrest.MatcherAssert.assertThat;
-import static org.hamcrest.Matchers.is;
-import static org.hamcrest.Matchers.notNullValue;
-import static org.hamcrest.Matchers.greaterThan;
 import org.junit.Test;
-import static org.junit.Assert.*;
-import static org.onlab.junit.ImmutableClassChecker.assertThatClassIsImmutable;
 import org.onosproject.net.DeviceId;
 
+import static org.hamcrest.MatcherAssert.assertThat;
+import static org.hamcrest.Matchers.*;
+import static org.junit.Assert.*;
+import static org.onlab.junit.ImmutableClassChecker.assertThatClassIsImmutable;
+
 public class DefaultAlarmTest {
 
+    private static final AlarmEntityId ALARM_ENTITY_ID = AlarmEntityId.alarmEntityId("port:bar");
+    private static final DeviceId DEVICE_ID = DeviceId.deviceId("foo:bar");
+    private static final String UNIQUE_ID_1 = "unique_id_1";
+    private static final AlarmId ALARM_ID = AlarmId.alarmId(DEVICE_ID, UNIQUE_ID_1);
+    private static final String UNIQUE_ID_2 = "unique_id_1";
+    private static final AlarmId ALARM_ID_2 = AlarmId.alarmId(DEVICE_ID, UNIQUE_ID_2);
+
     @Test
     public void testImmutability() {
         assertThatClassIsImmutable(DefaultAlarm.class);
@@ -44,11 +50,11 @@
 
     @Test
     public void testEquals() {
-        final DefaultAlarm a = new DefaultAlarm.Builder(
+        final DefaultAlarm a = new DefaultAlarm.Builder(ALARM_ID_2,
                 DeviceId.NONE, "desc", Alarm.SeverityLevel.MINOR, 3).build();
-        final DefaultAlarm b = new DefaultAlarm.Builder(
-                DeviceId.NONE, "desc", Alarm.SeverityLevel.MINOR, a.timeRaised() + 1).
-                withId(ALARM_ID).withTimeUpdated(a.timeUpdated() + 1).build();
+        final DefaultAlarm b = new DefaultAlarm.Builder(ALARM_ID,
+                DeviceId.NONE, "desc", Alarm.SeverityLevel.MINOR, a.timeRaised() + 1)
+                .withTimeUpdated(a.timeUpdated() + 1).build();
         assertEquals("id or timeRaised or timeUpdated may differ", a, b);
 
         assertNotEquals(a, new DefaultAlarm.Builder(a).withAcknowledged(!a.acknowledged()).build());
@@ -73,20 +79,17 @@
     @Test
     public void testId() {
         final DefaultAlarm a = generate();
-        assertThat(a.id(), is(AlarmId.NONE));
-        final DefaultAlarm b = new DefaultAlarm.Builder(a).withId(ALARM_ID).build();
+        final DefaultAlarm b = new DefaultAlarm.Builder(a).build();
 
         assertEquals("id ignored in equals", a, b);
-        assertNotEquals(ALARM_ID, a.id());
+        assertEquals(ALARM_ID, a.id());
         assertEquals(ALARM_ID, b.id());
         assertEquals(ALARM_ENTITY_ID, b.source());
 
     }
-    private static final AlarmEntityId ALARM_ENTITY_ID = AlarmEntityId.alarmEntityId("port:bar");
-    private static final AlarmId ALARM_ID = AlarmId.alarmId(888L);
 
     private static DefaultAlarm generate() {
-        return new DefaultAlarm.Builder(
+        return new DefaultAlarm.Builder(ALARM_ID,
                 DeviceId.NONE, "desc", Alarm.SeverityLevel.MINOR, 3).forSource(ALARM_ENTITY_ID).build();
     }
 }