예제 #1
0
        public void TestSimpleGetters()
        {
            var dict = new JsonDictionary();

            dict.Add("name", "TestName");
            dict.Add("version", "v1");
            dict.Add("description", "Test Description");
            dict.Add("documentationLink", "https://www.google.com/");
            dict.Add("features", new List <object> {
                "feature1", "feature2"
            });
            dict.Add("labels", new List <object> {
                "label1", "label2"
            });
            dict.Add("id", "TestId");
            dict.Add("title", "Test API");

            IService impl = new ConcreteClass(dict);

            Assert.AreEqual("Test Description", impl.Description);
            Assert.AreEqual("https://www.google.com/", impl.DocumentationLink);
            MoreAsserts.ContentsEqualAndInOrder(new List <string> {
                "feature1", "feature2"
            }, impl.Features);
            MoreAsserts.ContentsEqualAndInOrder(new List <string> {
                "label1", "label2"
            }, impl.Labels);
            Assert.AreEqual("TestId", impl.Id);
            Assert.AreEqual("Test API", impl.Title);
        }
예제 #2
0
        public void TestCase()
        {
            var actual = new List <string> {
                "a", "b", "c", "d"
            };

            MoreAsserts.ContentsEqualAndInOrder(actual.Select(x => x.ToString()), actual);
            Assert.Throws <AssertionException>(
                () => MoreAsserts.ContentsEqualAndInOrder(actual.Select(x => x).Reverse(), actual));
            Assert.Throws <AssertionException>(
                () => MoreAsserts.ContentsEqualAndInOrder(new List <string> {
                "a", "b", "c"
            }, actual));
            Assert.Throws <AssertionException>(
                () => MoreAsserts.ContentsEqualAndInOrder(new List <string> {
                "b", "c", "d"
            }, actual));
            Assert.Throws <AssertionException>(
                () => MoreAsserts.ContentsEqualAndInOrder(new List <string> {
                "a", "b", "c", "d", "e"
            }, actual));
            Assert.Throws <AssertionException>(
                () => MoreAsserts.ContentsEqualAndInOrder(new List <string> {
                "a", "b", "c", "e"
            }, actual));
            Assert.Throws <AssertionException>(
                () => MoreAsserts.ContentsEqualAndInOrder(new List <string> {
                "b", "b", "c", "d"
            }, actual));
        }
예제 #3
0
        public virtual void TestInitFirstVerifyStopInvokedImmediately()
        {
            DefaultMetricsSystem.Shutdown();
            new ConfigBuilder().Add("*.period", 8).Add("test.sink.test.class", typeof(TestMetricsSystemImpl.TestSink
                                                                                      ).FullName).Add("test.*.source.filter.exclude", "s0").Add("test.source.s1.metric.filter.exclude"
                                                                                                                                                , "X*").Add("test.sink.sink1.metric.filter.exclude", "Y*").Add("test.sink.sink2.metric.filter.exclude"
                                                                                                                                                                                                               , "Y*").Save(TestMetricsConfig.GetTestFilename("hadoop-metrics2-test"));
            //.add("test.sink.plugin.urls", getPluginUrlsAsString())
            MetricsSystemImpl ms = new MetricsSystemImpl("Test");

            ms.Start();
            ms.Register("s0", "s0 desc", new TestMetricsSystemImpl.TestSource("s0rec"));
            TestMetricsSystemImpl.TestSource s1 = ms.Register("s1", "s1 desc", new TestMetricsSystemImpl.TestSource
                                                                  ("s1rec"));
            s1.c1.Incr();
            s1.xxx.Incr();
            s1.g1.Set(2);
            s1.yyy.Incr(2);
            s1.s1.Add(0);
            MetricsSink sink1 = Org.Mockito.Mockito.Mock <MetricsSink>();
            MetricsSink sink2 = Org.Mockito.Mockito.Mock <MetricsSink>();

            ms.RegisterSink("sink1", "sink1 desc", sink1);
            ms.RegisterSink("sink2", "sink2 desc", sink2);
            ms.PublishMetricsNow();
            // publish the metrics
            ms.Stop();
            ms.Shutdown();
            //When we call stop, at most two sources will be consumed by each sink thread.
            Org.Mockito.Mockito.Verify(sink1, Org.Mockito.Mockito.AtMost(2)).PutMetrics(r1.Capture
                                                                                            ());
            IList <MetricsRecord> mr1 = r1.GetAllValues();

            Org.Mockito.Mockito.Verify(sink2, Org.Mockito.Mockito.AtMost(2)).PutMetrics(r2.Capture
                                                                                            ());
            IList <MetricsRecord> mr2 = r2.GetAllValues();

            if (mr1.Count != 0 && mr2.Count != 0)
            {
                CheckMetricsRecords(mr1);
                MoreAsserts.AssertEquals("output", mr1, mr2);
            }
            else
            {
                if (mr1.Count != 0)
                {
                    CheckMetricsRecords(mr1);
                }
                else
                {
                    if (mr2.Count != 0)
                    {
                        CheckMetricsRecords(mr2);
                    }
                }
            }
        }
예제 #4
0
        public void TestNoThrowOnFieldsMissing()
        {
            IService impl = CreateV1Service();

            Assert.AreEqual("v1", impl.Version);
            Assert.IsNull(impl.Id);
            Assert.IsNotNull(impl.Labels);
            MoreAsserts.IsEmpty(impl.Labels);
            Assert.AreEqual("TestName", impl.Name);
            Assert.IsNull(impl.Protocol);
            Assert.IsNull(impl.Title);
        }
예제 #5
0
        private void CheckMetricsRecords(IList <MetricsRecord> recs)
        {
            Log.Debug(recs);
            MetricsRecord r = recs[0];

            Assert.Equal("name", "s1rec", r.Name());
            MoreAsserts.AssertEquals("tags", new MetricsTag[] { Interns.Tag(MsInfo.Context, "test"
                                                                            ), Interns.Tag(MsInfo.Hostname, hostname) }, r.Tags());
            MoreAsserts.AssertEquals("metrics", ((MetricsRecordBuilderImpl)((MetricsRecordBuilderImpl
                                                                             )((MetricsRecordBuilderImpl)((MetricsRecordBuilderImpl)MetricsLists.Builder(string.Empty
                                                                                                                                                         ).AddCounter(Interns.Info("C1", "C1 desc"), 1L)).AddGauge(Interns.Info("G1", "G1 desc"
                                                                                                                                                                                                                                ), 2L)).AddCounter(Interns.Info("S1NumOps", "Number of ops for s1"), 1L)).AddGauge
                                                     (Interns.Info("S1AvgTime", "Average time for s1"), 0.0)).Metrics(), r.Metrics());
            r = recs[1];
            Assert.True("NumActiveSinks should be 3", Iterables.Contains(r.
                                                                         Metrics(), new MetricGaugeInt(MsInfo.NumActiveSinks, 3)));
        }
예제 #6
0
        public void GetValueAsStringListOrEmpty()
        {
            IDictionary <string, object> dict = null;

            dict = new Dictionary <string, object>();
            var result = dict.GetValueAsStringListOrEmpty("Fish");

            Assert.IsNotNull(result);
            MoreAsserts.IsEmpty(result);

            dict.Add("Number", 1);
            dict.Add("String", "abc");
            dict.Add("Anon", new { A = "A", B = "B" });

            var list = new List <object>();

            list.Add("string");
            list.Add(123);
            list.Add(null);
            list.Add(new StringBuilder("StringBuilder"));
            dict.Add("List", list);

            result = dict.GetValueAsStringListOrEmpty("Number");
            Assert.IsNotNull(result);
            MoreAsserts.IsEmpty(result);

            result = dict.GetValueAsStringListOrEmpty("String");
            Assert.IsNotNull(result);

            result = dict.GetValueAsStringListOrEmpty("Number");
            Assert.IsNotNull(result);
            MoreAsserts.IsEmpty(result);

            result = dict.GetValueAsStringListOrEmpty("Anon");
            Assert.IsNotNull(result);
            MoreAsserts.IsEmpty(result);

            List <string> resultAsList = dict.GetValueAsStringListOrEmpty("List").ToList();

            Assert.IsNotNull(resultAsList);
            MoreAsserts.ContentsEqualAndInOrder(
                new List <string> {
                "string", "123", null, "StringBuilder"
            }, resultAsList);
        }
        public void TestPropertiesCase()
        {
            JsonDictionary dict = new JsonDictionary();
            string         name = "TestName";

            dict.Add("location", "path");
            dict.Add("required", true);
            dict.Add("description", "A string description");
            dict.Add("default", "A default value");
            dict.Add("type", "string");
            dict.Add("repeated", true);
            dict.Add("enum", new List <string> {
                "atom", "json"
            });
            dict.Add("enumDescriptions", new List <string> {
                "atom are small particals", "json is my friend"
            });
            dict.Add("minimum", "43");
            dict.Add("maximum", "53");
            dict.Add("pattern", "[1-9][0-9]*");
            var impl = ServiceFactory.Default.CreateParameter(name, dict);

            Assert.AreEqual("TestName", impl.Name);
            Assert.AreEqual("path", impl.ParameterType);
            Assert.AreEqual("A string description", impl.Description);
            Assert.AreEqual("string", impl.ValueType);
            Assert.AreEqual(true, impl.IsRequired);
            Assert.AreEqual(true, impl.IsRepeatable);
            Assert.AreEqual("A default value", impl.DefaultValue);
            MoreAsserts.ContentsEqualAndInOrder(new List <string> {
                "atom", "json"
            }, impl.EnumValues);
            MoreAsserts.ContentsEqualAndInOrder(
                new List <string> {
                "atom are small particals", "json is my friend"
            }, impl.EnumValueDescriptions);
            Assert.AreEqual("53", impl.Maximum);
            Assert.AreEqual("43", impl.Minimum);
            Assert.AreEqual("[1-9][0-9]*", impl.Pattern);
        }