dev.azure.com/aidainnovazione0090/DeviceManager/_git/go-mod-core-contracts@v1.0.2/models/alarm_test.go (about)

     1  package models_test
     2  
     3  import (
     4  	"testing"
     5  
     6  	"github.com/stretchr/testify/assert"
     7  
     8  	"dev.azure.com/aidainnovazione0090/DeviceManager/_git/go-mod-core-contracts/models"
     9  )
    10  
    11  func TestToAlarmSeverity(t *testing.T) {
    12  	tests := []struct {
    13  		name     string
    14  		input    string
    15  		expected models.AlarmSeverity
    16  	}{
    17  		{"Critical", "Critical", models.AlarmCritical},
    18  		{"Major", "Major", models.AlarmMajor},
    19  		{"Minor", "Minor", models.AlarmMinor},
    20  		{"Warning", "Warning", models.AlarmWarning},
    21  		{"Offline", "Offline", models.AlarmOffline},
    22  		{"None", "None", models.AlarmNone},
    23  		{"Unknown", "Unknown", ""}, // Add a test case for unknown severity
    24  	}
    25  
    26  	for _, tt := range tests {
    27  		t.Run(tt.name, func(t *testing.T) {
    28  			result := models.ToAlarmSeverity(tt.input)
    29  			assert.Equal(t, tt.expected, result)
    30  		})
    31  	}
    32  }
    33  
    34  func TestNewDeviceAlarm(t *testing.T) {
    35  	deviceName := "TestDevice"
    36  	msg := "TestMessage"
    37  	severity := models.AlarmCritical
    38  	job := "TestJob"
    39  
    40  	alarm := models.NewDeviceAlarm(deviceName, msg, severity, job)
    41  
    42  	assert.NotEmpty(t, alarm.Id)
    43  	assert.Equal(t, deviceName, alarm.DeviceName)
    44  	assert.NotZero(t, alarm.Origin)
    45  	assert.Equal(t, msg, alarm.Alarm.Message)
    46  	assert.Equal(t, severity, alarm.Alarm.Severity)
    47  	assert.Equal(t, job, alarm.Alarm.Job)
    48  }