Skip to content

using system diagnostics for logging #59

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Draft
wants to merge 5 commits into
base: main
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 7 additions & 4 deletions RelationalAI.Test/DatabaseTest.cs
Original file line number Diff line number Diff line change
Expand Up @@ -2,25 +2,28 @@
using System.Collections.Generic;
using System.Threading.Tasks;
using Xunit;
using Xunit.Abstractions;

namespace RelationalAI.Test
{
[Collection("RelationalAI.Test")]
public class DatabaseTests : UnitTest
{
private readonly EngineFixture engineFixture;
private readonly ITestOutputHelper outputHelper;
public static string Uuid = Guid.NewGuid().ToString();
public static string Dbname = $"csharp-sdk-{Uuid}";

public DatabaseTests(EngineFixture fixture)
public DatabaseTests(EngineFixture fixture, ITestOutputHelper output)
{
outputHelper = output;
engineFixture = fixture;
}

[Fact]
public async Task DatabaseTest()
{
var client = CreateClient();
var client = CreateClient(outputHelper);
await engineFixture.CreateEngineWaitAsync();

await Assert.ThrowsAsync<HttpError>(async () => await client.DeleteDatabaseAsync(Dbname));
Expand Down Expand Up @@ -77,7 +80,7 @@ await Assert.ThrowsAsync<ArgumentOutOfRangeException>(() =>
[Fact]
public async Task DatabaseCloneTest()
{
var client = CreateClient();
var client = CreateClient(outputHelper);

await engineFixture.CreateEngineWaitAsync();
await Assert.ThrowsAsync<HttpError>(async () => await client.DeleteDatabaseAsync(Dbname));
Expand Down Expand Up @@ -145,7 +148,7 @@ public async Task DatabaseCloneTest()

public override async Task DisposeAsync()
{
var client = CreateClient();
var client = CreateClient(outputHelper);

try
{
Expand Down
8 changes: 5 additions & 3 deletions RelationalAI.Test/EngineTest.cs
Original file line number Diff line number Diff line change
@@ -1,24 +1,26 @@
using System;
using System.Threading.Tasks;
using Xunit;
using Xunit.Abstractions;

namespace RelationalAI.Test
{
[Collection("RelationalAI.Test")]
public class EngineTests : UnitTest
{

private readonly ITestOutputHelper outputHelper;
private readonly EngineFixture engineFixture;

public EngineTests(EngineFixture fixture)
public EngineTests(EngineFixture fixture, ITestOutputHelper output)
{
outputHelper = output;
engineFixture = fixture;
}

[Fact]
public async Task EngineTest()
{
var client = CreateClient();
var client = CreateClient(outputHelper);

await engineFixture.CreateEngineWaitAsync();

Expand Down
9 changes: 6 additions & 3 deletions RelationalAI.Test/ExecuteAsync.cs
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
using Relationalai.Protocol;
using Xunit;
using System.Threading.Tasks;
using Xunit.Abstractions;

namespace RelationalAI.Test
{
Expand All @@ -13,17 +14,19 @@ public class ExecuteAsyncTests : UnitTest

public static string Uuid = Guid.NewGuid().ToString();
public static string Dbname = $"csharp-sdk-{Uuid}";
private readonly ITestOutputHelper outputHelper;
private readonly EngineFixture engineFixture;

public ExecuteAsyncTests(EngineFixture fixture)
public ExecuteAsyncTests(EngineFixture fixture, ITestOutputHelper output)
{
outputHelper = output;
engineFixture = fixture;
}

[Fact]
public async Task ExecuteAsyncTest()
{
var client = CreateClient();
var client = CreateClient(outputHelper);

await engineFixture.CreateEngineWaitAsync();
await client.CreateDatabaseAsync(Dbname, engineFixture.Engine.Name);
Expand All @@ -50,7 +53,7 @@ public async Task ExecuteAsyncTest()

public override async Task DisposeAsync()
{
var client = CreateClient();
var client = CreateClient(outputHelper);

try
{
Expand Down
9 changes: 6 additions & 3 deletions RelationalAI.Test/ExecuteV1Test.cs
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
using System;
using System.Threading.Tasks;
using Xunit;
using Xunit.Abstractions;

namespace RelationalAI.Test
{
Expand All @@ -9,17 +10,19 @@ public class ExecuteTests : UnitTest
{
public static string Uuid = Guid.NewGuid().ToString();
public static string Dbname = $"csharp-sdk-{Uuid}";
private readonly ITestOutputHelper outputHelper;
private readonly EngineFixture engineFixture;

public ExecuteTests(EngineFixture fixture)
public ExecuteTests(EngineFixture fixture, ITestOutputHelper output)
{
outputHelper = output;
engineFixture = fixture;
}

[Fact]
public async Task ExecuteV1Test()
{
var client = CreateClient();
var client = CreateClient(outputHelper);

await engineFixture.CreateEngineWaitAsync();
await client.CreateDatabaseAsync(Dbname, engineFixture.Engine.Name);
Expand Down Expand Up @@ -49,7 +52,7 @@ public async Task ExecuteV1Test()

public override async Task DisposeAsync()
{
var client = CreateClient();
var client = CreateClient(outputHelper);

try
{
Expand Down
15 changes: 9 additions & 6 deletions RelationalAI.Test/LoadCsvTest.cs
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
using System.Collections.Generic;
using System.Threading.Tasks;
using Xunit;
using Xunit.Abstractions;

namespace RelationalAI.Test
{
Expand All @@ -18,17 +19,19 @@ public class LoadCsvTests : UnitTest
"\"cosmopolitan\",4,11.00,\"2020-03-03\"\n" +
"\"bellini\",3,12.25,\"2020-04-04\"\n";

private readonly ITestOutputHelper outputHelper;
private readonly EngineFixture engineFixture;

public LoadCsvTests(EngineFixture fixture)
public LoadCsvTests(EngineFixture fixture, ITestOutputHelper output)
{
outputHelper = output;
engineFixture = fixture;
}

[Fact]
public async Task LoadCsvtTest()
{
var client = CreateClient();
var client = CreateClient(outputHelper);

await engineFixture.CreateEngineWaitAsync();
await client.CreateDatabaseAsync(Dbname, engineFixture.Engine.Name);
Expand Down Expand Up @@ -98,7 +101,7 @@ public async Task LoadCsvtTest()
[Fact]
public async Task LoadCsvNoHeaderTest()
{
var client = CreateClient();
var client = CreateClient(outputHelper);

await engineFixture.CreateEngineWaitAsync();
await client.CreateDatabaseAsync(Dbname, engineFixture.Engine.Name);
Expand Down Expand Up @@ -171,7 +174,7 @@ public async Task LoadCsvNoHeaderTest()
[Fact]
public async Task LoadCsvAltSyntaxTest()
{
var client = CreateClient();
var client = CreateClient(outputHelper);

await engineFixture.CreateEngineWaitAsync();
await client.CreateDatabaseAsync(Dbname, engineFixture.Engine.Name);
Expand Down Expand Up @@ -236,7 +239,7 @@ public async Task LoadCsvAltSyntaxTest()
[Fact]
public async Task LoadCsvWithSchemaTest()
{
var client = CreateClient();
var client = CreateClient(outputHelper);

await engineFixture.CreateEngineWaitAsync();
await client.CreateDatabaseAsync(Dbname, engineFixture.Engine.Name);
Expand Down Expand Up @@ -316,7 +319,7 @@ public async Task LoadCsvWithSchemaTest()

public override async Task DisposeAsync()
{
var client = CreateClient();
var client = CreateClient(outputHelper);
try
{
await client.DeleteDatabaseAsync(Dbname);
Expand Down
9 changes: 6 additions & 3 deletions RelationalAI.Test/LoadJsonTest.cs
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
using System;
using System.Threading.Tasks;
using Xunit;
using Xunit.Abstractions;

namespace RelationalAI.Test
{
Expand All @@ -15,17 +16,19 @@ public class LoadJsonTests : UnitTest
"\"height\":null,\n" +
"\"pets\":[\"dog\",\"rabbit\"]}";

private readonly ITestOutputHelper outputHelper;
private readonly EngineFixture engineFixture;

public LoadJsonTests(EngineFixture fixture)
public LoadJsonTests(EngineFixture fixture, ITestOutputHelper output)
{
outputHelper = output;
engineFixture = fixture;
}

[Fact]
public async Task LoadJsontTest()
{
var client = CreateClient();
var client = CreateClient(outputHelper);

await engineFixture.CreateEngineWaitAsync();
await client.CreateDatabaseAsync(Dbname, engineFixture.Engine.Name);
Expand Down Expand Up @@ -60,7 +63,7 @@ public async Task LoadJsontTest()

public override async Task DisposeAsync()
{
var client = CreateClient();
var client = CreateClient(outputHelper);

try
{
Expand Down
9 changes: 6 additions & 3 deletions RelationalAI.Test/ModelsTest.cs
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
using System.Collections.Generic;
using System.Threading.Tasks;
using Xunit;
using Xunit.Abstractions;

namespace RelationalAI.Test
{
Expand All @@ -12,17 +13,19 @@ public class ModelsTests : UnitTest
public static string Dbname = $"csharp-sdk-{Uuid}";
private readonly Dictionary<string, string> TestModel = new Dictionary<string, string> { { "test_model", "def R = \"hello\", \"world\"" } };

private readonly ITestOutputHelper outputHelper;
private readonly EngineFixture engineFixture;

public ModelsTests(EngineFixture fixture)
public ModelsTests(EngineFixture fixture, ITestOutputHelper output)
{
outputHelper = output;
engineFixture = fixture;
}

[Fact]
public async Task ModelsTest()
{
var client = CreateClient();
var client = CreateClient(outputHelper);

await engineFixture.CreateEngineWaitAsync();
await client.CreateDatabaseAsync(Dbname, engineFixture.Engine.Name);
Expand Down Expand Up @@ -51,7 +54,7 @@ public async Task ModelsTest()

public override async Task DisposeAsync()
{
var client = CreateClient();
var client = CreateClient(outputHelper);

try
{
Expand Down
7 changes: 7 additions & 0 deletions RelationalAI.Test/OAuthClientTest.cs
Original file line number Diff line number Diff line change
@@ -1,13 +1,20 @@
using System;
using System.Threading.Tasks;
using Xunit;
using Xunit.Abstractions;

namespace RelationalAI.Test
{
public class OAuthClientTests : UnitTest
{
public static string Uuid = Guid.NewGuid().ToString();
public static string OAuthClientName = $"csharp-sdk-{Uuid}";
private readonly ITestOutputHelper outputHelper;

public OAuthClientTests(ITestOutputHelper output)
{
outputHelper = output;
}

[Fact]
public async Task OAuthClientTest()
Expand Down
27 changes: 27 additions & 0 deletions RelationalAI.Test/RAITestTraceListener.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
using System.Diagnostics;
using Xunit.Abstractions;

namespace RelationalAI.Test
{
public class RAITestTraceListener : TraceListener
{
private readonly ITestOutputHelper testOutputHelper;

public RAITestTraceListener(ITestOutputHelper testOutputHelper)
{
this.testOutputHelper = testOutputHelper;
}
public override void Write(string message)
{
// ITestOutputHelper has no Write function
// using WriteLine for the moment until we figure
// out a better way to this
testOutputHelper.WriteLine(message);
}

public override void WriteLine(string message)
{
testOutputHelper.WriteLine(message);
}
}
}
13 changes: 12 additions & 1 deletion RelationalAI.Test/UnitTest.cs
Original file line number Diff line number Diff line change
@@ -1,17 +1,19 @@
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;
using Xunit;
using Xunit.Abstractions;

namespace RelationalAI.Test
{
public class UnitTest : IAsyncLifetime
{
public Client CreateClient()
public Client CreateClient(ITestOutputHelper testOutputHelper = null)
{
Dictionary<string, object> config;

Expand Down Expand Up @@ -52,6 +54,15 @@ public Client CreateClient()
{
httpClient.DefaultRequestHeaders.Add(header.Key, header.Value);
}

// Logging configuration
if (testOutputHelper != null)
{
var logger = testClient.Logger as RAITraceSourceLogger;
logger.AddListener(new RAITestTraceListener(testOutputHelper));
logger.SwitchLogLevel(TraceEventType.Verbose);
}

return testClient;
}

Expand Down
Loading