Update models package tests

This commit is contained in:
Łukasz Mierzwa
2017-06-25 10:49:19 -07:00
parent 4ecc0f199d
commit 6311f9edc7
2 changed files with 116 additions and 0 deletions

54
models/alert_test.go Normal file
View File

@@ -0,0 +1,54 @@
package models_test
import (
"testing"
"github.com/cloudflare/unsee/models"
)
type alertStateTest struct {
alert models.Alert
isSilenced bool
isInhibited bool
isActive bool
}
var alertStateTests = []alertStateTest{
alertStateTest{
alert: models.Alert{
State: models.AlertStateActive,
},
isActive: true,
},
alertStateTest{
alert: models.Alert{
State: models.AlertStateSuppressed,
InhibitedBy: []string{"1234"},
},
isInhibited: true,
},
alertStateTest{
alert: models.Alert{
State: models.AlertStateSuppressed,
SilencedBy: []string{"1234"},
},
isSilenced: true,
},
}
func TestAlertState(t *testing.T) {
for _, testCase := range alertStateTests {
if testCase.alert.IsActive() != testCase.isActive {
t.Errorf("alert.IsActive() returned %t while %t was expected for alert %v",
testCase.alert.IsActive(), testCase.isActive, testCase.alert)
}
if testCase.alert.IsInhibited() != testCase.isInhibited {
t.Errorf("alert.IsInhibited() returned %t while %t was expected for alert %v",
testCase.alert.IsInhibited(), testCase.isInhibited, testCase.alert)
}
if testCase.alert.IsSilenced() != testCase.isSilenced {
t.Errorf("alert.IsSilenced() returned %t while %t was expected for alert %v",
testCase.alert.IsSilenced(), testCase.isSilenced, testCase.alert)
}
}
}

View File

@@ -76,3 +76,65 @@ func TestUnseeAlertListSort(t *testing.T) {
t.Errorf("%d sort failures for %d checks", failures, iterations*len(al))
}
}
type agFPTest struct {
ag models.AlertGroup
fingerprint string
}
var agFPTests = []agFPTest{
// empty group fingerprint
agFPTest{
ag: models.AlertGroup{},
fingerprint: "da39a3ee5e6b4b0d3255bfef95601890afd80709",
},
// different Receiver shouldn't change content fingerprint
agFPTest{
ag: models.AlertGroup{
Receiver: "default",
},
fingerprint: "da39a3ee5e6b4b0d3255bfef95601890afd80709",
},
// different StateCount shouldn't change content fingerprint
agFPTest{
ag: models.AlertGroup{
Receiver: "default",
StateCount: map[string]int{"default": 0},
},
fingerprint: "da39a3ee5e6b4b0d3255bfef95601890afd80709",
},
// different Labels shouldn't change content fingerprint
agFPTest{
ag: models.AlertGroup{
Receiver: "default",
Labels: map[string]string{"foo": "bar"},
StateCount: map[string]int{"default": 0},
},
fingerprint: "da39a3ee5e6b4b0d3255bfef95601890afd80709",
},
// different set of alerts should change content fingerprint
agFPTest{
ag: models.AlertGroup{
Receiver: "default",
Labels: map[string]string{"foo": "bar"},
Alerts: models.AlertList{
models.Alert{
Labels: map[string]string{"foo1": "bar"},
State: models.AlertStateActive,
Fingerprint: "xxx",
},
},
StateCount: map[string]int{"default": 0},
},
fingerprint: "b60d121b438a380c343d5ec3c2037564b82ffef3",
},
}
func TestAlertGroupContentFingerprint(t *testing.T) {
for _, testCase := range agFPTests {
if testCase.ag.ContentFingerprint() != testCase.fingerprint {
t.Errorf("Invalid AlertGroup ContentFingerprint(), expected '%s', got '%s', AlertGroup: %v",
testCase.fingerprint, testCase.ag.ContentFingerprint(), testCase.ag)
}
}
}