コード例 #1
0
        public void TestFailQuery()
        {
            var connection = new ElasticSearchConnection();

            connection.ConnectionString = ConnectionString;
            connection.Open();

            var command = connection.CreateCommand();

            command.CommandText = "SELECT DISTINCT real_ip FROM \"logstash-stats-apps-*\" WHERE \"@timestamp\" > NOW() - INTERVAL 7 DAYS";

            Trace.WriteLine("Results:");
            int linesRead = 0;

            Assert.ThrowsException <DataException>(() =>
            {
                using (var reader = command.ExecuteReader())
                {
                    while (reader.Read())
                    {
                        var boolField = reader.IsDBNull(0) ? "null" : reader.GetBoolean(0).ToString();
                        var dtField   = reader.IsDBNull(1) ? "null" : reader.GetDateTime(1).ToString();
                        var longField = reader.IsDBNull(2) ? "null" : reader.GetInt64(2).ToString();

                        Trace.WriteLine($"{boolField}, {dtField}, {longField}");
                        linesRead++;
                    }
                }
            });
        }
コード例 #2
0
        public void TestReader()
        {
            var connection = new ElasticSearchConnection();

            connection.ConnectionString = ConnectionString;
            connection.Open();

            var command = connection.CreateCommand();

            command.CommandText = "SELECT action, mac FROM \"logstash-stats-apps-*\" LIMIT 10";

            Trace.WriteLine("Results:");
            int linesRead = 0;

            using (var reader = command.ExecuteReader())
            {
                while (reader.Read())
                {
                    Trace.WriteLine($"{reader.GetString(0)}, {reader.GetString(1)}");
                    linesRead++;
                }
            }

            Assert.AreEqual(10, linesRead);
        }
コード例 #3
0
        public void TestFieldsMapping()
        {
            var connection = new ElasticSearchConnection();

            connection.ConnectionString = ConnectionString;
            connection.Open();

            var command = connection.CreateCommand();

            command.CommandText = "SELECT is_ott, \"@timestamp\" ts, dev_id FROM \"logstash-stats-apps-*\" ORDER BY \"@timestamp\" DESC LIMIT 10";

            Trace.WriteLine("Results:");
            int linesRead = 0;

            using (var reader = command.ExecuteReader())
            {
                while (reader.Read())
                {
                    var boolField = reader.IsDBNull(0) ? "null" : reader.GetBoolean(0).ToString();
                    var dtField   = reader.IsDBNull(1) ? "null" : reader.GetDateTime(1).ToString();
                    var longField = reader.IsDBNull(2) ? "null" : reader.GetInt64(2).ToString();

                    Trace.WriteLine($"{boolField}, {dtField}, {longField}");
                    linesRead++;
                }
            }

            Assert.AreEqual(10, linesRead);
        }
コード例 #4
0
        public void TestPaginatedQuery()
        {
            var connection = new ElasticSearchConnection();

            connection.ConnectionString = ConnectionString;
            connection.Open();

            var command = connection.CreateCommand();

            command.CommandText = "SELECT real_ip FROM \"logstash-stats-apps-*\" WHERE \"@timestamp\" > NOW() - INTERVAL 7 DAYS GROUP BY real_ip";

            int linesRead = 0;

            using (var reader = command.ExecuteReader())
            {
                while (reader.Read())
                {
                    linesRead++;
                }
            }
            Trace.WriteLine($"Lines read: {linesRead}");
            Assert.IsTrue(linesRead > 1000);
        }