Przeglądaj źródła

Start of the integration tests

Nick Babcock 6 lat temu
rodzic
commit
21670e31db

+ 1 - 1
OhmGraphite.Test/OhmGraphite.Test.csproj

@@ -8,7 +8,7 @@
     <PackageReference Include="Microsoft.NET.Test.Sdk" Version="15.9.0" />
     <PackageReference Include="xunit" Version="2.4.0" />
     <PackageReference Include="xunit.runner.visualstudio" Version="2.4.0" />
-    <DotNetCliToolReference Include="dotnet-xunit" Version="2.3.1" />
+    <PackageReference Include="xunit.runner.console" Version="2.4.0" />
   </ItemGroup>
 
   <ItemGroup>

+ 15 - 0
OhmGraphite.Test/TestSensorCreator.cs

@@ -0,0 +1,15 @@
+using System.Collections.Generic;
+using OpenHardwareMonitor.Hardware;
+
+namespace OhmGraphite.Test
+{
+    class TestSensorCreator
+    {
+        public static IEnumerable<ReportedValue> Values()
+        {
+            yield return new ReportedValue("/intelcpu/0/temperature/0", "CPU Core #1", 20, SensorType.Temperature, "Intel Core i7-6700K", HardwareType.CPU, 0);
+            yield return new ReportedValue("/intelcpu/0/temperature/1", "CPU Core #2", 15, SensorType.Temperature, "Intel Core i7-6700K", HardwareType.CPU, 1);
+            yield return new ReportedValue("/intelcpu/0/temperature/2", "CPU Core #3", 10, SensorType.Temperature, "Intel Core i7-6700K", HardwareType.CPU, 2);
+        }
+    }
+}

+ 26 - 0
OhmGraphite.Test/TimescaleTest.cs

@@ -0,0 +1,26 @@
+using System;
+using Npgsql;
+using Xunit;
+
+namespace OhmGraphite.Test
+{
+    public class TimescaleTest
+    {
+        [Fact, Trait("Category", "integration")]
+        public async void CanSetupTimescale()
+        {
+            const string connStr = "Host=localhost;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()));
+                }
+            }
+        }
+    }
+}

+ 1 - 1
OhmGraphite/TimescaleWriter.cs

@@ -9,7 +9,7 @@ using OpenHardwareMonitor.Hardware;
 
 namespace OhmGraphite
 {
-    class TimescaleWriter : IWriteMetrics
+    public class TimescaleWriter : IWriteMetrics
     {
         private static readonly Logger Logger = LogManager.GetCurrentClassLogger();
 

+ 5 - 2
appveyor.yml

@@ -1,6 +1,9 @@
 image: 'Visual Studio 2017'
 install:
   - git submodule update --init --recursive
-  - dotnet restore
+  - msbuild /t:restore
 build:
-  project: OhmGraphite.sln
+  project: OhmGraphite.sln
+
+before_test:
+  - docker run --rm -e POSTGRES_PASSWORD=123456 -p 5432:5432 -ti timescale/timescaledb