+func TestClearExpiredAlarms(t *testing.T) {
+ xapp.Logger.Info("TestClearExpiredAlarms")
+
+ a := alarm.AlarmMessage{
+ Alarm: alarmer.NewAlarm(8007, alarm.SeverityWarning, "threshold", ""),
+ AlarmAction: alarm.AlarmActionRaise,
+ AlarmTime: time.Now().UnixNano(),
+ }
+ d := alarm.RICAlarmDefinitions[8007]
+ n := AlarmNotification{a, *d}
+ alarmManager.activeAlarms = make([]AlarmNotification, 0)
+ alarmManager.UpdateActiveAlarmList(&n)
+
+ // Unknown SP
+ a.Alarm.SpecificProblem = 1234
+ assert.False(t, alarmManager.ClearExpiredAlarms(n, 0, false), "ClearExpiredAlarms failed")
+
+ // TTL is 0
+ d.TimeToLive = 0
+ assert.False(t, alarmManager.ClearExpiredAlarms(n, 0, false), "ClearExpiredAlarms failed")
+
+ // TTL not expired
+ a.Alarm.SpecificProblem = 8007
+ d.TimeToLive = 2
+ assert.False(t, alarmManager.ClearExpiredAlarms(n, 0, false), "ClearExpiredAlarms failed")
+
+ // TTL expired, alarm should be cleared
+ time.Sleep(time.Duration(3) * time.Second)
+ assert.Equal(t, len(alarmManager.activeAlarms), 1)
+ assert.True(t, alarmManager.ClearExpiredAlarms(n, 0, false), "ClearExpiredAlarms failed")
+ assert.Equal(t, len(alarmManager.activeAlarms), 0)
+}
+