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  }