Skip to content

Commit 17d9cac

Browse files
committed
Cleanup
1 parent 35926d7 commit 17d9cac

File tree

2 files changed

+26
-54
lines changed

2 files changed

+26
-54
lines changed

tests/Foundatio.Parsers.SqlQueries.Tests/SqlQueryParserTests.cs

Lines changed: 2 additions & 54 deletions
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,7 @@ public async Task CanSearchDefaultFields()
7979
sqlActual = db.Employees.Where(parser.ParsingConfig, sql).ToQueryString();
8080
Assert.Equal(sqlExpected, sqlActual);
8181

82-
await WaitForFullTextIndexAsync(db, "ftCatalog");
82+
await SqlWaiter.WaitForFullTextIndexAsync(db, "ftCatalog");
8383

8484
var results = await db.Employees.Where(parser.ParsingConfig, sql).ToListAsync();
8585
Assert.Single(results);
@@ -114,7 +114,7 @@ public async Task CanSearchWithTokenizer()
114114
_logger.LogInformation(sql);
115115
Assert.Equal(sqlExpected, sqlActual);
116116

117-
await WaitForFullTextIndexAsync(db, "ftCatalog");
117+
await SqlWaiter.WaitForFullTextIndexAsync(db, "ftCatalog");
118118

119119
sqlActual = db.Employees.Where(parser.ParsingConfig, sql).ToQueryString();
120120
var results = await db.Employees.Where(parser.ParsingConfig, sql).ToListAsync();
@@ -540,58 +540,6 @@ ON ftCatalog
540540
return db;
541541
}
542542

543-
private static bool _checked;
544-
private static readonly object _lock = new();
545-
546-
private static void WaitForSql(
547-
string connectionString,
548-
int maxRetries = 90,
549-
int delayMs = 1000)
550-
{
551-
for (int i = 0; i < maxRetries; i++)
552-
{
553-
try
554-
{
555-
using var conn = new SqlConnection(connectionString);
556-
conn.Open();
557-
558-
using var cmd = conn.CreateCommand();
559-
cmd.CommandText = "SELECT 1";
560-
cmd.ExecuteScalar();
561-
562-
return;
563-
}
564-
catch
565-
{
566-
if (i == maxRetries - 1)
567-
throw;
568-
569-
Thread.Sleep(delayMs);
570-
}
571-
}
572-
}
573-
574-
private async Task WaitForFullTextIndexAsync(DbContext db, string catalogName, int timeoutSeconds = 30)
575-
{
576-
var end = DateTime.UtcNow.AddSeconds(timeoutSeconds);
577-
578-
while (DateTime.UtcNow < end)
579-
{
580-
string sql = "SELECT FULLTEXTCATALOGPROPERTY(@catalogName, 'PopulateStatus') AS Value";
581-
582-
int status = await db.Database
583-
.SqlQueryRaw<int>(sql, new SqlParameter("@catalogName", catalogName))
584-
.SingleAsync();
585-
586-
if (status == 0)
587-
return;
588-
589-
await Task.Delay(500);
590-
}
591-
592-
throw new TimeoutException($"Full-text catalog '{catalogName}' didn't finish populating in time.");
593-
}
594-
595543
private async Task ParseAndValidateQuery(string query, string expected, bool isValid)
596544
{
597545
#if ENABLE_TRACING

tests/Foundatio.Parsers.SqlQueries.Tests/SqlWaiter.cs

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
using System;
22
using System.Threading;
3+
using System.Threading.Tasks;
34
using Microsoft.Data.SqlClient;
5+
using Microsoft.EntityFrameworkCore;
46

57
namespace Foundatio.Parsers.SqlQueries.Tests;
68

@@ -51,6 +53,28 @@ public static void Wait(
5153
}
5254
}
5355

56+
57+
public static async Task WaitForFullTextIndexAsync(DbContext db, string catalogName, int timeoutSeconds = 30)
58+
{
59+
var end = DateTime.UtcNow.AddSeconds(timeoutSeconds);
60+
61+
while (DateTime.UtcNow < end)
62+
{
63+
string sql = "SELECT FULLTEXTCATALOGPROPERTY(@catalogName, 'PopulateStatus') AS Value";
64+
65+
int status = await db.Database
66+
.SqlQueryRaw<int>(sql, new SqlParameter("@catalogName", catalogName))
67+
.SingleAsync();
68+
69+
if (status == 0)
70+
return;
71+
72+
await Task.Delay(500);
73+
}
74+
75+
throw new TimeoutException($"Full-text catalog '{catalogName}' didn't finish populating in time.");
76+
}
77+
5478
private static string BuildMasterConnectionString(string cs)
5579
{
5680
var builder = new SqlConnectionStringBuilder(cs)

0 commit comments

Comments
 (0)