TimescaleTest.cs 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. using System;
  2. using Npgsql;
  3. using Xunit;
  4. namespace OhmGraphite.Test
  5. {
  6. public class TimescaleTest
  7. {
  8. [Fact, Trait("Category", "integration")]
  9. public async void CanSetupTimescale()
  10. {
  11. const string connStr = "Host=timescale;Username=postgres;Password=123456";
  12. var writer = new TimescaleWriter(connStr, true, "my-pc");
  13. var epoch = new DateTime(2001, 1, 13);
  14. await writer.ReportMetrics(epoch, TestSensorCreator.Values());
  15. using (var conn = new NpgsqlConnection(connStr))
  16. {
  17. conn.Open();
  18. using (var cmd = new NpgsqlCommand("SELECT COUNT(*) FROM ohm_stats", conn))
  19. {
  20. Assert.Equal(3, Convert.ToInt32(cmd.ExecuteScalar()));
  21. }
  22. }
  23. }
  24. [Fact, Trait("Category", "integration")]
  25. public async void InsertOnlyTimescale()
  26. {
  27. const string selectStr = "Host=timescale;Username=postgres;Password=123456;Database=timescale_built";
  28. const string connStr = "Host=timescale;Username=ohm;Password=itsohm;Database=timescale_built";
  29. var writer = new TimescaleWriter(connStr, false, "my-pc");
  30. var epoch = new DateTime(2001, 1, 13);
  31. await writer.ReportMetrics(epoch, TestSensorCreator.Values());
  32. using (var conn = new NpgsqlConnection(selectStr))
  33. {
  34. conn.Open();
  35. using (var cmd = new NpgsqlCommand("SELECT COUNT(*) FROM ohm_stats", conn))
  36. {
  37. Assert.Equal(3, Convert.ToInt32(cmd.ExecuteScalar()));
  38. }
  39. }
  40. }
  41. }
  42. }