Skip to content

Commit d283892

Browse files
committed
Apply TransactionContext patch
1 parent b355e72 commit d283892

10 files changed

Lines changed: 137 additions & 110 deletions

File tree

Orm/Xtensive.Orm.Tests/Linq/TagTest.cs

Lines changed: 76 additions & 82 deletions
Original file line numberDiff line numberDiff line change
@@ -159,13 +159,14 @@ public void VariousPlacements(TagsLocation tagsLocation)
159159

160160
using (var domain = Domain.Build(config))
161161
using (var session = domain.OpenSession())
162+
using (var tagScope = session.Tag("sessionTag"))
162163
using (var tx = session.OpenTransaction()) {
163164
var query = session.Query.All<Book>().Tag("simpleTag");
164165
var queryFormatter = session.Services.Demand<QueryFormatter>();
165166
var queryString = queryFormatter.ToSqlString(query);
166167
Console.WriteLine(queryString);
167168

168-
Assert.IsTrue(CheckTag(queryString, $"/*simpleTag*/", tagsLocation));
169+
Assert.IsTrue(CheckTag(queryString, "/*simpleTag sessionTag*/", tagsLocation));
169170
Assert.DoesNotThrow(() => query.Run());
170171
}
171172
}
@@ -175,6 +176,7 @@ public void LatestTagWins()
175176
{
176177
var session = Session.Demand();
177178

179+
using (var tagScope = session.Tag("sessionTag"))
178180
using (var innerTx = session.OpenTransaction(TransactionOpenMode.New)) {
179181
var query = session.Query.All<Book>()
180182
.Tag("firstTag")
@@ -185,7 +187,7 @@ public void LatestTagWins()
185187
var queryString = queryFormatter.ToSqlString(query);
186188
Console.WriteLine(queryString);
187189

188-
Assert.IsTrue(queryString.StartsWith("/*firstTag secondTag*/"));
190+
Assert.IsTrue(queryString.StartsWith("/*firstTag secondTag sessionTag*/"));
189191
Assert.DoesNotThrow(() => query.Run());
190192
}
191193
}
@@ -214,6 +216,7 @@ public void TagInSubquery()
214216
{
215217
var session = Session.Demand();
216218

219+
using(var tagScope = session.Tag("sessionTag"))
217220
using (var innerTx = session.OpenTransaction(TransactionOpenMode.New)) {
218221
var query = session.Query.All<Author>()
219222
.Tag("superCoolTag")
@@ -223,7 +226,7 @@ public void TagInSubquery()
223226
var queryString = queryFormatter.ToSqlString(query);
224227
Console.WriteLine(queryString);
225228

226-
Assert.IsTrue(queryString.StartsWith("/*superCoolTag evenCoolerTag*/"));
229+
Assert.IsTrue(queryString.StartsWith("/*superCoolTag sessionTag evenCoolerTag*/"));
227230
Assert.DoesNotThrow(() => query.Run());
228231
}
229232
}
@@ -233,6 +236,7 @@ public void TagInJoin()
233236
{
234237
var session = Session.Demand();
235238

239+
using (var tagScope = session.Tag("sessionTag"))
236240
using (var innerTx = session.OpenTransaction(TransactionOpenMode.New)) {
237241
var inner = session.Query.All<BusinessUnit>().Tag("inner");
238242
var outer = session.Query.All<Property>().Tag("outer");
@@ -243,7 +247,7 @@ public void TagInJoin()
243247
var queryString = queryFormatter.ToSqlString(query);
244248
Console.WriteLine(queryString);
245249

246-
Assert.IsTrue(queryString.StartsWith("/*outer inner*/"));
250+
Assert.IsTrue(queryString.StartsWith("/*outer inner sessionTag*/"));
247251
Assert.DoesNotThrow(() => query.Run());
248252
}
249253
}
@@ -253,6 +257,7 @@ public void TagInUnion()
253257
{
254258
var session = Session.Demand();
255259

260+
using (var tagScope = session.Tag("sessionTag"))
256261
using (var innerTx = session.OpenTransaction(TransactionOpenMode.New)) {
257262
var left = session.Query.All<BusinessUnit>().Tag("left");
258263
var right = session.Query.All<BusinessUnit>().Tag("right");
@@ -263,7 +268,7 @@ public void TagInUnion()
263268
var queryString = queryFormatter.ToSqlString(query);
264269
Console.WriteLine(queryString);
265270

266-
Assert.IsTrue(queryString.StartsWith("/*final left right*/"));
271+
Assert.IsTrue(queryString.StartsWith("/*final sessionTag left right*/"));
267272
Assert.DoesNotThrow(() => query.Run());
268273
}
269274
}
@@ -273,6 +278,7 @@ public void TagInConcat()
273278
{
274279
var session = Session.Demand();
275280

281+
using (var tagScope = session.Tag("sessionTag"))
276282
using (var innerTx = session.OpenTransaction(TransactionOpenMode.New)) {
277283
var left = session.Query.All<BusinessUnit>().Tag("left");
278284
var right = session.Query.All<BusinessUnit>().Tag("right");
@@ -283,7 +289,7 @@ public void TagInConcat()
283289
var queryString = queryFormatter.ToSqlString(query);
284290
Console.WriteLine(queryString);
285291

286-
Assert.IsTrue(queryString.StartsWith("/*final left right*/"));
292+
Assert.IsTrue(queryString.StartsWith("/*final sessionTag left right*/"));
287293
Assert.DoesNotThrow(() => query.Run());
288294
}
289295
}
@@ -293,6 +299,7 @@ public void TagInExcept()
293299
{
294300
var session = Session.Demand();
295301

302+
using (var tagScope = session.Tag("sessionTag"))
296303
using (var innerTx = session.OpenTransaction(TransactionOpenMode.New)) {
297304
var left = session.Query.All<BusinessUnit>().Tag("left");
298305
var right = session.Query.All<BusinessUnit>().Tag("right");
@@ -303,7 +310,7 @@ public void TagInExcept()
303310
var queryString = queryFormatter.ToSqlString(query);
304311
Console.WriteLine(queryString);
305312

306-
Assert.IsTrue(queryString.StartsWith("/*final left right*/"));
313+
Assert.IsTrue(queryString.StartsWith("/*final sessionTag left right*/"));
307314
Assert.DoesNotThrow(() => query.Run());
308315
}
309316
}
@@ -313,6 +320,7 @@ public void TagInIntersect()
313320
{
314321
var session = Session.Demand();
315322

323+
using (var tagScope = session.Tag("sessionTag"))
316324
using (var innerTx = session.OpenTransaction(TransactionOpenMode.New)) {
317325
var left = session.Query.All<BusinessUnit>().Tag("left");
318326
var right = session.Query.All<BusinessUnit>().Tag("right");
@@ -323,7 +331,7 @@ public void TagInIntersect()
323331
var queryString = queryFormatter.ToSqlString(query);
324332
Console.WriteLine(queryString);
325333

326-
Assert.IsTrue(queryString.StartsWith("/*final left right*/"));
334+
Assert.IsTrue(queryString.StartsWith("/*final sessionTag left right*/"));
327335
Assert.DoesNotThrow(() => query.Run());
328336
}
329337
}
@@ -358,9 +366,6 @@ where realSession.Query.All<BusinessUnit>().Tag("BU0003")
358366
[Test]
359367
public void TagInGrouping()
360368
{
361-
// no checks so far, something will change probably
362-
// for now it is just to see who it goes.
363-
364369
var session = Session.Demand();
365370
var allCommands = new List<string>();
366371

@@ -385,16 +390,18 @@ public void TagInGrouping()
385390
.GroupBy(b => b.Active)
386391
.Select(g => new { g.Key, Items = g });
387392

388-
session.Events.DbCommandExecuting += SqlCapturer;
389-
foreach (var group in query)
390-
foreach (var groupItem in group.Items)
391-
;
392-
session.Events.DbCommandExecuting -= SqlCapturer;
393+
using (var tagScope = session.Tag("sessionTag1")) {
394+
session.Events.DbCommandExecuting += SqlCapturer;
395+
foreach (var group in query)
396+
foreach (var groupItem in group.Items)
397+
;
398+
session.Events.DbCommandExecuting -= SqlCapturer;
399+
}
393400

394401
PrintList(allCommands);
395-
Assert.That(allCommands[0].StartsWith("/*BeforeGroupBy*/"));
402+
Assert.That(allCommands[0].StartsWith("/*BeforeGroupBy sessionTag1*/"));
396403
Assert.That(allCommands.Skip(1)
397-
.All(command => command.StartsWith("/*BeforeGroupBy Root query tags -> BeforeGroupBy*/")));
404+
.All(command => command.StartsWith("/*BeforeGroupBy (Root query tags -> BeforeGroupBy sessionTag1)*/")));
398405

399406
allCommands.Clear();
400407

@@ -403,16 +410,18 @@ public void TagInGrouping()
403410
.Tag("AfterGroupBy")
404411
.Select(g => new { g.Key, Items = g });
405412

406-
session.Events.DbCommandExecuting += SqlCapturer;
407-
foreach (var group in query)
408-
foreach (var groupItem in group.Items)
409-
;
410-
session.Events.DbCommandExecuting -= SqlCapturer;
413+
using (var tagScope = session.Tag("sessionTag2")) {
414+
session.Events.DbCommandExecuting += SqlCapturer;
415+
foreach (var group in query)
416+
foreach (var groupItem in group.Items)
417+
;
418+
session.Events.DbCommandExecuting -= SqlCapturer;
419+
}
411420

412421
PrintList(allCommands);
413-
Assert.That(allCommands[0].StartsWith("/*AfterGroupBy*/"));
422+
Assert.That(allCommands[0].StartsWith("/*AfterGroupBy sessionTag2*/"));
414423
Assert.That(allCommands.Skip(1)
415-
.All(command => command.StartsWith("/*Root query tags -> AfterGroupBy*/")));
424+
.All(command => command.StartsWith("/*(Root query tags -> AfterGroupBy sessionTag2)*/")));
416425

417426
allCommands.Clear();
418427

@@ -421,16 +430,18 @@ public void TagInGrouping()
421430
.Tag("AfterGrouping")
422431
.Select(g => new { g.Key, Items = g });
423432

424-
session.Events.DbCommandExecuting += SqlCapturer;
425-
foreach (var group in query)
426-
foreach (var groupItem in group.Items)
427-
;
428-
session.Events.DbCommandExecuting -= SqlCapturer;
433+
using (var sessionTag = session.Tag("sessionTag3")) {
434+
session.Events.DbCommandExecuting += SqlCapturer;
435+
foreach (var group in query)
436+
foreach (var groupItem in group.Items)
437+
;
438+
session.Events.DbCommandExecuting -= SqlCapturer;
439+
}
429440

430441
PrintList(allCommands);
431-
Assert.That(allCommands[0].StartsWith("/*BeforeGrouping AfterGrouping*/"));
442+
Assert.That(allCommands[0].StartsWith("/*BeforeGrouping AfterGrouping sessionTag3*/"));
432443
Assert.That(allCommands.Skip(1)
433-
.All(command => command.StartsWith("/*BeforeGrouping Root query tags -> BeforeGrouping AfterGrouping*/")));
444+
.All(command => command.StartsWith("/*BeforeGrouping (Root query tags -> BeforeGrouping AfterGrouping sessionTag3)*/")));
434445

435446
allCommands.Clear();
436447

@@ -440,16 +451,18 @@ public void TagInGrouping()
440451
.Select(g => new { g.Key, Items = g })
441452
.Tag("AtTheEnd");
442453

443-
session.Events.DbCommandExecuting += SqlCapturer;
444-
foreach (var group in query)
445-
foreach (var groupItem in group.Items)
446-
;
447-
session.Events.DbCommandExecuting -= SqlCapturer;
454+
using (var sessionTag = session.Tag("sessionTag4")) {
455+
session.Events.DbCommandExecuting += SqlCapturer;
456+
foreach (var group in query)
457+
foreach (var groupItem in group.Items)
458+
;
459+
session.Events.DbCommandExecuting -= SqlCapturer;
460+
}
448461

449462
PrintList(allCommands);
450-
Assert.That(allCommands[0].StartsWith("/*AfterGrouping AtTheEnd*/"));
463+
Assert.That(allCommands[0].StartsWith("/*AfterGrouping AtTheEnd sessionTag4*/"));
451464
Assert.That(allCommands.Skip(1)
452-
.All(command => command.StartsWith("/*Root query tags -> AfterGrouping AtTheEnd*/")));
465+
.All(command => command.StartsWith("/*(Root query tags -> AfterGrouping AtTheEnd sessionTag4)*/")));
453466

454467
allCommands.Clear();
455468

@@ -459,16 +472,18 @@ public void TagInGrouping()
459472
.Select(g => new { g.Key, Items = g })
460473
.Tag("AtTheEnd");
461474

462-
session.Events.DbCommandExecuting += SqlCapturer;
463-
foreach (var group in query)
464-
foreach (var groupItem in group.Items)
465-
;
466-
session.Events.DbCommandExecuting -= SqlCapturer;
475+
using (var tagScope = session.Tag("sessionTag5")) {
476+
session.Events.DbCommandExecuting += SqlCapturer;
477+
foreach (var group in query)
478+
foreach (var groupItem in group.Items)
479+
;
480+
session.Events.DbCommandExecuting -= SqlCapturer;
481+
}
467482

468483
PrintList(allCommands);
469-
Assert.That(allCommands[0].StartsWith("/*BeforeGrouping AfterGrouping AtTheEnd*/"));
484+
Assert.That(allCommands[0].StartsWith("/*BeforeGrouping AfterGrouping AtTheEnd sessionTag5*/"));
470485
Assert.That(allCommands.Skip(1)
471-
.All(command => command.StartsWith("/*BeforeGrouping Root query tags -> BeforeGrouping AfterGrouping AtTheEnd*/")));
486+
.All(command => command.StartsWith("/*BeforeGrouping (Root query tags -> BeforeGrouping AfterGrouping AtTheEnd sessionTag5)*/")));
472487

473488
allCommands.Clear();
474489

@@ -481,16 +496,18 @@ public void TagInGrouping()
481496
.Tag("AfterWhere")
482497
.LeftJoin(session.Query.All<BusinessUnit>().Tag("WithinJoin"), g => g.Key, bu => bu.Id, (g, bu) => new { Key = bu, Items = g.Items });
483498

484-
session.Events.DbCommandExecuting += SqlCapturer;
485-
foreach (var group in query1)
486-
foreach (var groupItem in group.Items)
487-
;
488-
session.Events.DbCommandExecuting -= SqlCapturer;
499+
using (var tagScope = session.Tag("sessionTag6")) {
500+
session.Events.DbCommandExecuting += SqlCapturer;
501+
foreach (var group in query1)
502+
foreach (var groupItem in group.Items)
503+
;
504+
session.Events.DbCommandExecuting -= SqlCapturer;
505+
}
489506

490507
PrintList(allCommands);
491-
Assert.That(allCommands[0].StartsWith("/*AfterGroup AfterSelect AfterWhere WithinJoin*/"));
508+
Assert.That(allCommands[0].StartsWith("/*AfterGroup AfterSelect AfterWhere WithinJoin sessionTag6*/"));
492509
Assert.That(allCommands.Skip(1)
493-
.All(command => command.StartsWith("/*Root query tags -> AfterGroup AfterSelect AfterWhere WithinJoin*/")));
510+
.All(command => command.StartsWith("/*(Root query tags -> AfterGroup AfterSelect AfterWhere WithinJoin sessionTag6)*/")));
494511

495512
allCommands.Clear();
496513
}
@@ -502,7 +519,7 @@ void SqlCapturer(object sender, DbCommandEventArgs args)
502519
}
503520

504521
[Test]
505-
public void SessionTagInlineQueryTest()
522+
public void SessionTagInlineQuery()
506523
{
507524
var session = Session.Demand();
508525
var allCommands = new List<string>();
@@ -581,7 +598,7 @@ void SqlCapturer(object sender, DbCommandEventArgs args)
581598
}
582599

583600
[Test]
584-
public void SessionTagCachingQueryTest()
601+
public void SessionTagCachingQuery()
585602
{
586603
var session = Session.Demand();
587604
var allCommands = new List<string>();
@@ -639,7 +656,7 @@ void SqlCapturer(object sender, DbCommandEventArgs args)
639656
}
640657

641658
[Test]
642-
public void SessionTagSingleTest()
659+
public void SessionTagSingle()
643660
{
644661
var allCommands = new List<string>();
645662

@@ -712,7 +729,7 @@ void SqlCapturer(object sender, DbCommandEventArgs args)
712729
}
713730

714731
[Test]
715-
public void SessionTagSingleOrDefaultTest()
732+
public void SessionTagSingleOrDefault()
716733
{
717734
var allCommands = new List<string>();
718735
var id = 0L;
@@ -783,7 +800,7 @@ void SqlCapturer(object sender, DbCommandEventArgs args)
783800
}
784801

785802
[Test]
786-
public void SessionTagPrefetchEntityTest()
803+
public void SessionTagPrefetchEntity()
787804
{
788805
var allCommands = new List<string>();
789806

@@ -860,7 +877,7 @@ void SqlCapturer(object sender, DbCommandEventArgs args)
860877
}
861878

862879
[Test]
863-
public void SessionTagPrefetchEntitySetTest()
880+
public void SessionTagPrefetchEntitySet()
864881
{
865882
var allCommands = new List<string>();
866883

@@ -932,29 +949,6 @@ void SqlCapturer(object sender, DbCommandEventArgs args)
932949
}
933950
}
934951

935-
[Test]
936-
public void SessionTagInUnion()
937-
{
938-
var allCommands = new List<string>();
939-
940-
var session = Session.Demand();
941-
using var outermost = session.Tag("outermost");
942-
943-
using (var innerTx = session.OpenTransaction(TransactionOpenMode.New)) {
944-
session.Events.DbCommandExecuting += SqlCapturer;
945-
var left = session.Query.All<BusinessUnit>();
946-
var right = session.Query.All<BusinessUnit>();
947-
var result = left.Union(right).ToArray();
948-
session.Events.DbCommandExecuting -= SqlCapturer;
949-
950-
Assert.That(allCommands.Count, Is.EqualTo(1));
951-
Assert.AreEqual(Regex.Matches(allCommands[0], "outermost").Count, 1);
952-
}
953-
954-
void SqlCapturer(object sender, DbCommandEventArgs args) =>
955-
allCommands.Add(args.Command.CommandText);
956-
}
957-
958952
private static bool CheckTag(string query, string expectedComment, TagsLocation place)
959953
{
960954
return place switch {

0 commit comments

Comments
 (0)