/// <summary> /// Constructs an actual <see cref="IOpsGenieApiClient"/>. /// </summary> /// <param name="httpHandler">The <see cref="IHttpRequestHandler"/> to use</param> /// <param name="settings">The <see href="https://www.opsgenie.com/">opsgenie</see> API settings</param> public OpsGenieApiClient( IHttpRequestHandler httpHandler, OpsGenieSettings settings) { if (httpHandler == null) { throw new ArgumentNullException(nameof(httpHandler)); } if (settings == null) { throw new ArgumentNullException(nameof(settings)); } if (string.IsNullOrWhiteSpace(settings.ApiKey)) { throw new ArgumentException("settings.ApiKey was not set", nameof(settings.ApiKey)); } if (string.IsNullOrWhiteSpace(settings.HeartbeatName)) { throw new ArgumentException("settings.HeartbeatName was not set", nameof(settings.HeartbeatName)); } this.httpHandler = httpHandler; headerApiKeyValue = $"GenieKey {settings.ApiKey}"; var encodedHeartbeatName = HttpUtility.UrlEncode(settings.HeartbeatName); heartbeatUrl = $"https://api.opsgenie.com/v2/heartbeats/{encodedHeartbeatName}/ping"; }
public override void SetUp() { base.SetUp(); fakeSettings = new OpsGenieSettings { Threshold = NotificationLevel.Error, HeartbeatName = "dummy-heartbeat", TeamName = "dummy-team", ApiKey = "dummy-api-key", }; }
private OpsGenieSettings NewOpsGenieSettingsWith(Action <OpsGenieSettings> modify) { var settings = new OpsGenieSettings { ApiKey = "dummy-api-key", HeartbeatName = "dummy-hearbeat", TeamName = "dummy-teamname", }; modify(settings); return(settings); }
public void Setup() { settings = new OpsGenieSettings { Threshold = NotificationLevel.Error, HeartbeatName = "dummy-heartbeat", TeamName = "dummy-team", ApiKey = "dummy-api-key", }; sut = new OpsGenieAlertConverter(settings); }
/// <summary> /// Constructs a settings based <see cref="IOpsGenieAlertConverter"/>. /// </summary> /// <param name="settings">Settings for the alert</param> public OpsGenieAlertConverter(OpsGenieSettings settings) { if (settings == null) { throw new ArgumentNullException(nameof(settings)); } if (string.IsNullOrWhiteSpace(settings.TeamName)) { throw new ArgumentException("settings.TeamName was not set", nameof(settings.TeamName)); } this.settings = settings; }
public void Setup() { httpHandler = new Mock <IHttpRequestHandler>(); settings = new OpsGenieSettings { Threshold = NotificationLevel.Error, HeartbeatName = "dummy-heartbeat", TeamName = "dummy-team", ApiKey = "dummy-api-key", }; sut = new OpsGenieApiClient(httpHandler.Object, settings); }
public void Setup() { client = new Mock <IOpsGenieApiClient>(); converter = new Mock <IOpsGenieAlertConverter>(); settings = new OpsGenieSettings { Threshold = NotificationLevel.Error, HeartbeatName = "dummy-heartbeat", TeamName = "dummy-team", ApiKey = "dummy-api-key", }; sut = new OpsGenieNotifier(client.Object, converter.Object, settings); }
public OpsGenieNotifier(OpsGenieSettings settings) { if (settings == null) { throw new ArgumentNullException(nameof(settings)); } if (string.IsNullOrWhiteSpace(settings.ApiKey)) { throw new ArgumentException("settings.ApiKey was not set", nameof(settings)); } if (string.IsNullOrWhiteSpace(settings.HeartbeatName)) { throw new ArgumentException("settings.HeartbeatName was not set", nameof(settings)); } if (string.IsNullOrWhiteSpace(settings.TeamName)) { throw new ArgumentException("settings.TeamName was not set", nameof(settings)); } this.settings = settings; }
/// <summary> /// Construct an <see cref="INotifier"/> for <see href="https://www.opsgenie.com/">opsgenie</see>. /// </summary> /// <param name="client">Api client</param> /// <param name="converter">From <see cref="INimatorResult"/> to <see cref="OpsGenieAlertRequest"/></param> /// <param name="settings">For threshold configuration</param> public OpsGenieNotifier( IOpsGenieApiClient client, IOpsGenieAlertConverter converter, OpsGenieSettings settings) { if (client == null) { throw new ArgumentNullException(nameof(client)); } if (converter == null) { throw new ArgumentNullException(nameof(converter)); } if (settings == null) { throw new ArgumentNullException(nameof(settings)); } this.client = client; this.converter = converter; this.settings = settings; }