Example #1
0
        public async void InsertOnlyTimescale()
        {
            var image = await new ImageFromDockerfileBuilder()
                        .WithDockerfile("timescale.dockerfile")
                        .WithDockerfileDirectory("docker")
                        .WithDeleteIfExists(true)
                        .WithName("ohm-graphite-insert-only-timescale")
                        .Build();

            var testContainersBuilder = new TestcontainersBuilder <TestcontainersContainer>()
                                        .WithImage(image)
                                        .WithEnvironment("POSTGRES_PASSWORD", "123456")
                                        .WithPortBinding(5432, assignRandomHostPort: true)
                                        .WithWaitStrategy(Wait.ForUnixContainer()
                                                          .UntilCommandIsCompleted("pg_isready -h 'localhost' -p '5432'"));

            await using var container = testContainersBuilder.Build();
            await container.StartAsync();

            string selectStr = $"Host={container.Hostname};Username=postgres;Password=123456;Port={container.GetMappedPublicPort(5432)};Database=timescale_built";
            var    epoch     = new DateTime(2001, 1, 13);

            string connStr = $"Host={container.Hostname};Username=ohm;Password=itsohm;Port={container.GetMappedPublicPort(5432)};Database=timescale_built";

            using var writer     = new TimescaleWriter(connStr, false, "my-pc");
            await using var conn = new NpgsqlConnection(selectStr);
            await writer.ReportMetrics(epoch, TestSensorCreator.Values());

            conn.Open();
            await using var cmd = new NpgsqlCommand("SELECT COUNT(*) FROM ohm_stats", conn);
            Assert.Equal(3, Convert.ToInt32(cmd.ExecuteScalar()));
        }
Example #2
0
        public async void CanSetupTimescale()
        {
            const string connStr = "Host=timescale;Username=postgres;Password=123456";
            var          writer  = new TimescaleWriter(connStr, true, "my-pc");
            var          epoch   = new DateTime(2001, 1, 13);
            await writer.ReportMetrics(epoch, TestSensorCreator.Values());

            using (var conn = new NpgsqlConnection(connStr))
            {
                conn.Open();
                using (var cmd = new NpgsqlCommand("SELECT COUNT(*) FROM ohm_stats", conn))
                {
                    Assert.Equal(3, Convert.ToInt32(cmd.ExecuteScalar()));
                }
            }
        }
Example #3
0
        public async void InsertOnlyTimescale()
        {
            const string selectStr = "Host=timescale;Username=postgres;Password=123456;Database=timescale_built";
            var          epoch     = new DateTime(2001, 1, 13);

            const string connStr = "Host=timescale;Username=ohm;Password=itsohm;Database=timescale_built";

            using (var writer = new TimescaleWriter(connStr, false, "my-pc"))
                using (var conn = new NpgsqlConnection(selectStr))
                {
                    await writer.ReportMetrics(epoch, TestSensorCreator.Values());

                    conn.Open();
                    using (var cmd = new NpgsqlCommand("SELECT COUNT(*) FROM ohm_stats", conn))
                    {
                        Assert.Equal(3, Convert.ToInt32(cmd.ExecuteScalar()));
                    }
                }
        }
Example #4
0
        public async void CanSetupTimescale()
        {
            var testContainersBuilder = new TestcontainersBuilder <TestcontainersContainer>()
                                        .WithDockerEndpoint(DockerUtils.DockerEndpoint())
                                        .WithImage("timescale/timescaledb:latest-pg12")
                                        .WithEnvironment("POSTGRES_PASSWORD", "123456")
                                        .WithPortBinding(5432, assignRandomHostPort: true)
                                        .WithWaitStrategy(Wait.ForUnixContainer()
                                                          .UntilCommandIsCompleted("pg_isready -h 'localhost' -p '5432'"));

            await using var container = testContainersBuilder.Build();
            await container.StartAsync();

            string connStr = $"Host={container.Hostname};Username=postgres;Password=123456;Port={container.GetMappedPublicPort(5432)}";
            var    epoch   = new DateTime(2001, 1, 13);

            using var writer     = new TimescaleWriter(connStr, true, "my-pc");
            await using var conn = new NpgsqlConnection(connStr);
            await writer.ReportMetrics(epoch, TestSensorCreator.Values());

            conn.Open();
            await using var cmd = new NpgsqlCommand("SELECT COUNT(*) FROM ohm_stats", conn);
            Assert.Equal(3, Convert.ToInt32(cmd.ExecuteScalar()));
        }