github.com/stakater/IngressMonitorController@v1.0.103/pkg/monitors/uptime/uptime-mappers_test.go (about) 1 package uptime 2 3 import ( 4 "reflect" 5 "strconv" 6 "testing" 7 8 "github.com/stakater/IngressMonitorController/pkg/models" 9 ) 10 11 func TestUptimeMonitorMonitorToBaseMonitorMapper(t *testing.T) { 12 uptimeMonitorObject := UptimeMonitorMonitor{Name: "Test Monitor", 13 PK: 124, 14 MspAddress: "https://stakater.com", 15 MspInterval: 5, 16 CheckType: "HTTP"} 17 18 monitorObject := UptimeMonitorMonitorToBaseMonitorMapper(uptimeMonitorObject) 19 20 if monitorObject.ID != strconv.Itoa(uptimeMonitorObject.PK) || 21 monitorObject.Name != uptimeMonitorObject.Name || 22 monitorObject.URL != uptimeMonitorObject.MspAddress || 23 "5" != monitorObject.Annotations["uptime.monitor.stakater.com/interval"] || 24 "HTTP" != monitorObject.Annotations["uptime.monitor.stakater.com/check_type"] { 25 t.Error("Correct: \n", 26 uptimeMonitorObject.Name, 27 uptimeMonitorObject.PK, 28 uptimeMonitorObject.MspAddress, 29 uptimeMonitorObject.MspInterval, 30 uptimeMonitorObject.CheckType) 31 t.Error("Parsed: \n", monitorObject.Name, 32 monitorObject.ID, 33 monitorObject.URL, 34 monitorObject.Annotations["uptime.monitor.stakater.com/interval"], 35 monitorObject.Annotations["uptime.monitor.stakater.com/check_type"], 36 ) 37 t.Error("Mapper did not map the values correctly") 38 } 39 } 40 41 func TestUptimeMonitorMonitorsToBaseMonitorsMapper(t *testing.T) { 42 uptimeMonitorObject1 := UptimeMonitorMonitor{ 43 Name: "Test Monitor", 44 PK: 124, 45 MspAddress: "https://stakater.com", 46 MspInterval: 5, 47 CheckType: "HTTP", 48 Locations: []string{"US-Central"}, 49 ContactGroups: []string{"Default"}} 50 uptimeMonitorObject2 := UptimeMonitorMonitor{ 51 Name: "Test Monitor 2", 52 PK: 125, 53 MspAddress: "https://facebook.com", 54 MspInterval: 10, 55 CheckType: "ICMP", 56 Locations: []string{"US-Central"}, 57 ContactGroups: []string{"Default"}} 58 59 var annotations1 = map[string]string{ 60 "uptime.monitor.stakater.com/interval": "5", 61 "uptime.monitor.stakater.com/check_type": "HTTP", 62 "uptime.monitor.stakater.com/locations": "US-Central", 63 "uptime.monitor.stakater.com/contacts": "Default", 64 } 65 var annotations2 = map[string]string{ 66 "uptime.monitor.stakater.com/interval": "10", 67 "uptime.monitor.stakater.com/check_type": "ICMP", 68 "uptime.monitor.stakater.com/locations": "US-Central", 69 "uptime.monitor.stakater.com/contacts": "Default", 70 } 71 72 correctMonitors := []models.Monitor{ 73 models.Monitor{ 74 Name: "Test Monitor", 75 ID: "124", 76 URL: "https://stakater.com", 77 Annotations: annotations1}, 78 models.Monitor{ 79 Name: "Test Monitor 2", 80 ID: "125", 81 URL: "https://facebook.com", 82 Annotations: annotations2}} 83 84 var uptimeMonitors []UptimeMonitorMonitor 85 uptimeMonitors = append(uptimeMonitors, uptimeMonitorObject1) 86 uptimeMonitors = append(uptimeMonitors, uptimeMonitorObject2) 87 88 monitors := UptimeMonitorMonitorsToBaseMonitorsMapper(uptimeMonitors) 89 90 for index := 0; index < len(monitors); index++ { 91 if !reflect.DeepEqual(correctMonitors[index], monitors[index]) { 92 t.Error("Correct: ", correctMonitors[index], "Parsed", monitors[index]) 93 t.Error("Monitor object should be the same") 94 } 95 } 96 }