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  }