Template
chore: deploy initial code base
This commit is contained in:
+56
@@ -0,0 +1,56 @@
|
||||
using Snowflake.Data.Client;
|
||||
using Strata.DecisionSupport.Biz.Parameters;
|
||||
using Strata.DecisionSupport.Biz.Test.Unit;
|
||||
using System.Diagnostics.CodeAnalysis;
|
||||
|
||||
namespace Strata.DecisionSupport.Biz.Test.Integration.IntegrationTests
|
||||
{
|
||||
[ExcludeFromCodeCoverage]
|
||||
[TestFixture, Category("Integration"), Category("DSS")]
|
||||
public class TestSnowflakeQueries : IntegrationTestBase
|
||||
{
|
||||
[TestCaseSource(typeof(SnowflakeTestCases), nameof(SnowflakeTestCases.TestCases))]
|
||||
public async Task VerifyQuery<TI, T>(TI obj, T queryInfo, Func<IEnumerable<TI>, IEnumerable<TI>> orderby) where TI : class where T : class
|
||||
{
|
||||
var query = Query(queryInfo);
|
||||
var lineReader = query.LineReader();
|
||||
await Verifier.Verify(lineReader, verifySettings)
|
||||
.UseDirectory("snapshotQueries")
|
||||
.UseFileName(TestContext.CurrentContext.TestName());
|
||||
var parameters = queryInfo is IWithParameters hasParameters ? hasParameters.Parameters() : null;
|
||||
if (string.IsNullOrEmpty(query)) { return; }
|
||||
try
|
||||
{
|
||||
IEnumerable<TI> result;
|
||||
result = parameters != null
|
||||
? await _databaseContext.QueryAsync<TI>(query, typeof(T).Name, parameters)
|
||||
: await _databaseContext.QueryAsync<TI>(query, typeof(T).Name);
|
||||
if (orderby != null)
|
||||
{
|
||||
result = orderby(result);
|
||||
}
|
||||
await Verify(result, verifySettings)
|
||||
.UseDirectory("snapshotResults")
|
||||
.UseFileName(TestContext.CurrentContext.TestName());
|
||||
}
|
||||
catch (SnowflakeDbException dbex)
|
||||
{
|
||||
var result = dbex.Message + Environment.NewLine + "".PadLeft(40, '-') + Environment.NewLine + lineReader;
|
||||
await Verifier.Verify(query, verifySettings)
|
||||
.UseDirectory("errorQueries")
|
||||
.UseFileName(TestContext.CurrentContext.TestName());
|
||||
await Verifier.Verify(result, verifyErrorSettings)
|
||||
.UseFileName(TestContext.CurrentContext.TestName());
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
|
||||
throw;
|
||||
}
|
||||
}
|
||||
|
||||
protected override string Query<T>(T queryInfo) where T : class
|
||||
=> SnowflakeTestCases.Query(queryInfo);
|
||||
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user