github.com/stakater/IngressMonitorController@v1.0.103/pkg/monitors/uptimerobot/uptime-mappers_test.go (about) 1 package uptimerobot 2 3 import ( 4 "reflect" 5 "strconv" 6 "strings" 7 "testing" 8 9 "github.com/stakater/IngressMonitorController/pkg/models" 10 "github.com/stakater/IngressMonitorController/pkg/util" 11 ) 12 13 func TestUptimeMonitorMonitorToBaseMonitorMapper(t *testing.T) { 14 uptimeMonitorObject := UptimeMonitorMonitor{FriendlyName: "Test Monitor", ID: 124, URL: "https://stakater.com", Interval: 900} 15 16 monitorObject := UptimeMonitorMonitorToBaseMonitorMapper(uptimeMonitorObject) 17 18 if monitorObject.ID != strconv.Itoa(uptimeMonitorObject.ID) || monitorObject.Name != uptimeMonitorObject.FriendlyName || monitorObject.URL != uptimeMonitorObject.URL || "900" != monitorObject.Annotations["uptimerobot.monitor.stakater.com/interval"] { 19 t.Error("Mapper did not map the values correctly") 20 } 21 } 22 23 func TestUptimeMonitorMonitorsToBaseMonitorsMapper(t *testing.T) { 24 uptimeMonitorObject1 := UptimeMonitorMonitor{FriendlyName: "Test Monitor 1", ID: 124, URL: "https://stakater.com", Interval: 900} 25 uptimeMonitorObject2 := UptimeMonitorMonitor{FriendlyName: "Test Monitor 2", ID: 125, URL: "https://stackator.com", Interval: 600} 26 27 var annotations1 = map[string]string{ 28 "uptimerobot.monitor.stakater.com/interval": "900", 29 } 30 var annotations2 = map[string]string{ 31 "uptimerobot.monitor.stakater.com/interval": "600", 32 } 33 34 correctMonitors := []models.Monitor{models.Monitor{Name: "Test Monitor 1", ID: "124", URL: "https://stakater.com", Annotations: annotations1}, models.Monitor{Name: "Test Monitor 2", ID: "125", URL: "https://stackator.com", Annotations: annotations2}} 35 36 var uptimeMonitors []UptimeMonitorMonitor 37 uptimeMonitors = append(uptimeMonitors, uptimeMonitorObject1) 38 uptimeMonitors = append(uptimeMonitors, uptimeMonitorObject2) 39 40 monitors := UptimeMonitorMonitorsToBaseMonitorsMapper(uptimeMonitors) 41 42 for index := 0; index < len(monitors); index++ { 43 if !reflect.DeepEqual(correctMonitors[index], monitors[index]) { 44 t.Error("Monitor object should be the same") 45 } 46 } 47 } 48 49 func TestUptimeStatusPageToBaseStatusPageMapper(t *testing.T) { 50 uptimePublicStatusPageObject := UptimePublicStatusPage{FriendlyName: "Test Status Page", ID: 124, Monitors: []int{1234, 5678}} 51 52 uptimeStatusPageObject := UptimeStatusPageToBaseStatusPageMapper(uptimePublicStatusPageObject) 53 54 if uptimeStatusPageObject.ID != "124" { 55 t.Error("Mapper did not map ID correctly, expected: 124, but was: " + uptimeStatusPageObject.ID) 56 } 57 if uptimeStatusPageObject.Name != uptimePublicStatusPageObject.FriendlyName { 58 t.Error("Mapper did not map the name correctly, expected: " + uptimePublicStatusPageObject.FriendlyName + ", but was: " + uptimeStatusPageObject.Name) 59 } 60 if !util.ContainsString(uptimeStatusPageObject.Monitors, "1234") || !util.ContainsString(uptimeStatusPageObject.Monitors, "5678") { 61 t.Error("Mapper the monitors array correctly, expected: 1234-5678, but got: " + strings.Join(uptimeStatusPageObject.Monitors, "-")) 62 } 63 }