Пример #1
0
        public void JsonDeserialization_WhenGivenNoThreshold_InitializesToErrorByDefault(NotificationLevel expectedThreshold, string type)
        {
            var json     = "{ \"Notifiers\": [{ \"$type\": \" " + type + "\" }] }";
            var settings = NimatorSettings.FromJson(json);

            Assert.That(settings.Notifiers, Is.Not.Empty);
            Assert.That(settings.Notifiers.Single().Threshold, Is.EqualTo(expectedThreshold));
        }
Пример #2
0
        public void JsonDeserialization_WhenGivenBasicJson_CanInstantiateSettings()
        {
            var json     = "{ \"Notifiers\": [] }";
            var settings = NimatorSettings.FromJson(json);

            Assert.That(settings, Is.Not.Null);
            Assert.That(settings.Notifiers, Is.Empty);
        }
Пример #3
0
        public void FromJson_ForBasicJsonString_ReturnsBasicSettings()
        {
            var json = "{}";
            var sut  = NimatorSettings.FromJson(json);

            Assert.That(sut, Is.Not.Null);
            CollectionAssert.IsEmpty(sut.Notifiers);
        }
Пример #4
0
        public void Serialization_WhenGivenDefaultExample_CanDoRoundTrip()
        {
            var settings = NimatorSettings.GetExample();

            var json = settings.ToJson();
            var roundTripSettings = NimatorSettings.FromJson(json);
            var roundTripJson     = roundTripSettings.ToJson();

            Assert.That(json, Is.EqualTo(roundTripJson));
        }
Пример #5
0
        public void JsonDeserialization_WhenGivenNameOfEnum_CanInstantiateSettings()
        {
            var json     = @"{ ""Notifiers"": [{  
                ""$type"": ""Nimator.Settings.ConsoleSettings, Nimator"",
                ""Threshold"": ""Critical""
            }] }";
            var settings = NimatorSettings.FromJson(json);

            Assert.That(settings.Notifiers, Is.Not.Empty);
            Assert.That(settings.Notifiers.Single().Threshold, Is.EqualTo(NotificationLevel.Critical));
        }
Пример #6
0
        public void Serialization_WhenGivenCustomExample_CanDoRoundTrip()
        {
            var settings = new NimatorSettings
            {
                Notifiers = new NotifierSettings[]
                {
                    new OpsGenieSettings
                    {
                        Threshold     = NotificationLevel.Error,
                        ApiKey        = "abc-123",
                        HeartbeatName = "heartbeat",
                        TeamName      = "A-Team"
                    },
                    new SlackSettings
                    {
                        Threshold = NotificationLevel.Warning,
                        Url       = "http://www.cp.nl/dummy/url",
                    },
                    new ConsoleSettings
                    {
                        Threshold = NotificationLevel.Warning,
                    }
                },
                Layers = new LayerSettings[]
                {
                    new LayerSettings {
                        Name   = "Layer A",
                        Checks = new ICheckSettings[]
                        {
                            new NoopCheckSettings
                            {
                                DelayResultInMs = 500,
                                LevelToSimulate = NotificationLevel.Error,
                            },
                        }
                    }
                },
            };

            var json = settings.ToJson();
            var roundTripSettings = NimatorSettings.FromJson(json);
            var roundTripJson     = roundTripSettings.ToJson();

            Assert.That(json, Is.EqualTo(roundTripJson));
        }