Skip to content

Commit aa2bbed

Browse files
committed
Marked EnumerableUtils.One as obsolete to not be in use
There are three dotnet alternatives which work better - Repeat, Append and Prepend, which cover all the possible scenarios and track actual number of items in result sequence
1 parent 0955181 commit aa2bbed

File tree

24 files changed

+44
-40
lines changed

24 files changed

+44
-40
lines changed

Orm/Xtensive.Orm.Tests.Core/Collections/EnumerableExtensionsTest.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -112,7 +112,7 @@ private static IEnumerable<Node> Flatten(Node root, bool rootFirst)
112112

113113
private static IEnumerable<Node> Flatten(Node root, bool rootFirst, Action<Node> exitAction)
114114
{
115-
return EnumerableUtils.One(root).Flatten(n => n != null ? n.Children : null, exitAction, rootFirst);
115+
return Enumerable.Repeat(root, 1).Flatten(n => n != null ? n.Children : null, exitAction, rootFirst);
116116
}
117117

118118
[Test]

Orm/Xtensive.Orm.Tests.Core/Collections/TopologicalSorterTest.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ public void SelfReferenceTest()
7070
{
7171
var node = new Node<int>(1);
7272
var edge = new Edge<int>(node, node, 1);
73-
var graph = new Graph<Node<int>, Edge<int>>(EnumerableUtils.One(node));
73+
var graph = new Graph<Node<int>, Edge<int>>(Enumerable.Repeat(node, 1));
7474

7575
var result = TopologicalSorter.Sort(graph, e => e.Source==e.Target);
7676
Assert.AreEqual(1, result.SortedNodes.Count);

Orm/Xtensive.Orm.Tests.Core/Helpers/TopologicalSorterTest.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -126,13 +126,13 @@ public void SelfReferenceTest()
126126
var connection2 = new NodeConnection<int, string>(node2, node2, "ConnectionItem");
127127
connection2.BindToNodes();
128128

129-
var result = TopologicalSorter.SortToList(EnumerableUtils.One(node1), out var removedEdges1);
129+
var result = TopologicalSorter.SortToList(Enumerable.Repeat(node1, 1), out var removedEdges1);
130130
Assert.AreEqual(1, result.Count);
131131
Assert.AreEqual(node1.Item, result[0]);
132132
Assert.AreEqual(1, removedEdges1.Count);
133133
Assert.AreEqual(connection1, removedEdges1[0]);
134134

135-
result = TopologicalSorter.Sort(EnumerableUtils.One(node2), out var removedEdges2).ToList(1);
135+
result = TopologicalSorter.Sort(Enumerable.Repeat(node2, 1), out var removedEdges2).ToList(1);
136136
Assert.AreEqual(1, result.Count);
137137
Assert.AreEqual(node2.Item, result[0]);
138138
Assert.AreEqual(1, removedEdges2.Count);

Orm/Xtensive.Orm.Tests.Sql/MySQL/MiscTests.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -353,7 +353,7 @@ public void FreeTextTest()
353353
{
354354
SqlSelect select = SqlDml.Select();
355355
var table = Catalog.DefaultSchema.Tables["Address"];
356-
select.From = SqlDml.QueryRef(SqlDml.FreeTextTable(table, "How can I make my own beers and ales?", EnumerableUtils.One(table.Columns[0].Name).ToList(), EnumerableUtils.One(table.Columns[0].Name).ToList()));
356+
select.From = SqlDml.QueryRef(SqlDml.FreeTextTable(table, "How can I make my own beers and ales?", new[] { table.Columns[0].Name }, new[] { table.Columns[0].Name }));
357357
select.Columns.Add(select.From.Asterisk);
358358
Console.WriteLine(SqlDriver.Compile(select).GetCommandText());
359359
}

Orm/Xtensive.Orm.Tests.Sql/SqlServer/MiscTests.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -360,7 +360,7 @@ public void FreeTextTest()
360360
{
361361
SqlSelect select = SqlDml.Select();
362362
var table = Catalog.Schemas["Person"].Tables["Address"];
363-
select.From = SqlDml.QueryRef(SqlDml.FreeTextTable(table, "How can I make my own beers and ales?", EnumerableUtils.One(table.Columns[0].Name).ToList(), EnumerableUtils.One(table.Columns[0].Name).ToList()));
363+
select.From = SqlDml.QueryRef(SqlDml.FreeTextTable(table, "How can I make my own beers and ales?", new[] { table.Columns[0].Name }, new[] { table.Columns[0].Name }));
364364
select.Columns.Add(select.From.Asterisk);
365365
Console.WriteLine(sqlDriver.Compile(select).GetCommandText());
366366
}
@@ -372,7 +372,7 @@ public void FreeTextTopNByRankTest()
372372
var table = Catalog.Schemas["Person"].Tables["Address"];
373373
select.From = SqlDml.QueryRef( SqlDml.FreeTextTable(table,
374374
"How can I make my own beers",
375-
EnumerableUtils.One(table.Columns[0].Name).ToList(),
375+
new[] { table.Columns[0].Name },
376376
(SqlLiteral)5));
377377
Console.WriteLine(sqlDriver.Compile(select).GetCommandText());
378378
}

Orm/Xtensive.Orm.Tests/Linq/QueryMethodTests.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -190,9 +190,9 @@ public async Task Store2AsyncTest()
190190
private IEnumerable<Customer> GetExpectedCustomerAsSequence()
191191
{
192192
if (StorageProviderInfo.Instance.CheckProviderIs(StorageProvider.Firebird)) {
193-
return EnumerableUtils.One(Session.Query.All<Customer>().OrderBy(c => c.CustomerId).AsEnumerable().First());
193+
return Session.Query.All<Customer>().OrderBy(c => c.CustomerId).AsEnumerable().Take(1);
194194
}
195-
return EnumerableUtils.One(Customers.First());
195+
return Enumerable.Repeat(Customers.First(), 1);
196196
}
197197
}
198198
}

Orm/Xtensive.Orm.Tests/Storage/Multinode/QueryCachingTest.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -426,7 +426,7 @@ private int[] GetUnexpectedTypeIds(string nodeId)
426426
return (nodeId == WellKnown.DefaultNodeId)
427427
? CustomUpgradeHandler.TypeIdPerNode.Values.ToArray()
428428
: CustomUpgradeHandler.TypeIdPerNode.Where(i => i.Key != nodeId)
429-
.Select(i => i.Value).Union(EnumerableUtils.One(100)).ToArray();
429+
.Select(i => i.Value).Union(Enumerable.Repeat(100, 1)).ToArray();
430430
}
431431

432432
private List<BaseTestEntity> ExecuteSimpleQueryCaching(Session session) =>

Orm/Xtensive.Orm.Tests/Storage/Prefetch/PrefetchManagerBasicTest.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -951,9 +951,9 @@ private void OpenSessionsAndRunPrefetches()
951951
var newOrder = new Order();
952952
var orderDetail = new OrderDetail {Product = new Product()};
953953
session.SaveChanges();
954-
var order = EnumerableUtils.One(newOrder).Prefetch(o => o.Details).First();
954+
var order = Enumerable.Repeat(newOrder, 1).Prefetch(o => o.Details).First();
955955
Assert.That(order, Is.Not.Null);
956-
var product = EnumerableUtils.One(orderDetail).Prefetch(d => d.Product).First();
956+
var product = Enumerable.Repeat(orderDetail, 1).Prefetch(d => d.Product).First();
957957
Assert.That(product, Is.Not.Null);
958958
//Query.All<Order>().Prefetch(o => o.Details).First();
959959
t.Complete();

Orm/Xtensive.Orm.Tests/Storage/Prefetch/PrefetchTest.cs

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -619,7 +619,7 @@ public void ArgumentsTest()
619619
AssertEx.Throws<KeyNotFoundException>(() => session.Query.All<Track>()
620620
.Prefetch(t => t.PersistenceState)
621621
.ToList());
622-
var d = session.Query.Many<Model.OfferContainer>(EnumerableUtils.One(Key.Create<Model.OfferContainer>(Domain, 1)))
622+
var d = session.Query.Many<Model.OfferContainer>(Enumerable.Repeat(Key.Create<Model.OfferContainer>(Domain, 1), 1))
623623
.Prefetch(oc => oc.IntermediateOffer.AnotherContainer.RealOffer.Book)
624624
.ToList();
625625
}
@@ -639,7 +639,7 @@ public async Task ArgumentsAsyncTest()
639639
_ = Assert.ThrowsAsync<KeyNotFoundException>(async () => (await session.Query.All<Track>()
640640
.Prefetch(t => t.PersistenceState).ExecuteAsync())
641641
.ToList());
642-
var d = (await session.Query.Many<Model.OfferContainer>(EnumerableUtils.One(Key.Create<Model.OfferContainer>(Domain, 1)))
642+
var d = (await session.Query.Many<Model.OfferContainer>(Enumerable.Repeat(Key.Create<Model.OfferContainer>(Domain, 1), 1))
643643
.Prefetch(oc => oc.IntermediateOffer.AnotherContainer.RealOffer.Book).ExecuteAsync())
644644
.ToList();
645645
}
@@ -699,7 +699,7 @@ public void RootElementIsNullPrefetchTest()
699699
}
700700
using (var tx = session.OpenTransaction()) {
701701
var books = session.Query.All<Model.Book>().AsEnumerable()
702-
.Concat(EnumerableUtils.One<Model.Book>(null)).Prefetch(b => b.Title);
702+
.Concat(Enumerable.Repeat<Model.Book>(null, 1)).Prefetch(b => b.Title);
703703
var titleField = Domain.Model.Types[typeof(Model.Book)].Fields[nameof(Model.Book.Title)];
704704
var titleType = Domain.Model.Types[typeof(Model.Title)];
705705
var count = 0;
@@ -727,7 +727,7 @@ public async Task RootElementIsNullPrefetchAsyncTest()
727727

728728
await using (var tx = session.OpenTransaction()) {
729729
var books = session.Query.All<Model.Book>().AsEnumerable()
730-
.Concat(EnumerableUtils.One<Model.Book>(null)).Prefetch(b => b.Title).AsAsyncEnumerable();
730+
.Concat(Enumerable.Repeat<Model.Book>(null, 1)).Prefetch(b => b.Title).AsAsyncEnumerable();
731731
var titleField = Domain.Model.Types[typeof(Model.Book)].Fields[nameof(Model.Book.Title)];
732732
var titleType = Domain.Model.Types[typeof(Model.Title)];
733733
var count = 0;
@@ -804,7 +804,7 @@ public void NestedPrefetchWhenRootElementIsNullTest()
804804
tx.Complete();
805805
}
806806
using (var tx = session.OpenTransaction()) {
807-
var books = session.Query.All<Model.Book>().AsEnumerable().Concat(EnumerableUtils.One<Model.Book>(null))
807+
var books = session.Query.All<Model.Book>().AsEnumerable().Concat(Enumerable.Repeat<Model.Book>(null, 1))
808808
.Prefetch(b => b.Title.Book);
809809
var titleField = Domain.Model.Types[typeof (Model.Book)].Fields["Title"];
810810
var titleType = Domain.Model.Types[typeof (Model.Title)];
@@ -834,7 +834,7 @@ public async Task NestedPrefetchWhenRootElementIsNullAsyncTest()
834834
}
835835

836836
await using (var tx = session.OpenTransaction()) {
837-
var books = session.Query.All<Model.Book>().AsEnumerable().Concat(EnumerableUtils.One<Model.Book>(null))
837+
var books = session.Query.All<Model.Book>().AsEnumerable().Concat(Enumerable.Repeat<Model.Book>(null, 1))
838838
.Prefetch(b => b.Title.Book).AsAsyncEnumerable();
839839
var titleField = Domain.Model.Types[typeof(Model.Book)].Fields[nameof(Model.Book.Title)];
840840
var titleType = Domain.Model.Types[typeof(Model.Title)];
@@ -861,7 +861,7 @@ public void StructureFieldsPrefetchTest()
861861

862862
using (var session = Domain.OpenSession())
863863
using (var tx = session.OpenTransaction()) {
864-
var containers = session.Query.Many<Model.OfferContainer>(EnumerableUtils.One(containerKey))
864+
var containers = session.Query.Many<Model.OfferContainer>(Enumerable.Repeat(containerKey, 1))
865865
.Prefetch(oc => oc.RealOffer.Book)
866866
.Prefetch(oc => oc.IntermediateOffer.RealOffer.BookShop);
867867
foreach (var key in containers) {
@@ -879,7 +879,7 @@ public async Task StructureFieldsPrefetchAsyncTest()
879879

880880
await using (var session = await Domain.OpenSessionAsync())
881881
await using (var tx = session.OpenTransaction()) {
882-
var containers = session.Query.Many<Model.OfferContainer>(EnumerableUtils.One(containerKey))
882+
var containers = session.Query.Many<Model.OfferContainer>(Enumerable.Repeat(containerKey, 1))
883883
.Prefetch(oc => oc.RealOffer.Book)
884884
.Prefetch(oc => oc.IntermediateOffer.RealOffer.BookShop).AsAsyncEnumerable();
885885
await foreach (var key in containers) {
@@ -897,7 +897,7 @@ public void StructurePrefetchTest()
897897

898898
using (var session = Domain.OpenSession())
899899
using (var tx = session.OpenTransaction()) {
900-
var containers = session.Query.Many<Model.OfferContainer>(EnumerableUtils.One(containerKey))
900+
var containers = session.Query.Many<Model.OfferContainer>(Enumerable.Repeat(containerKey, 1))
901901
.Prefetch(oc => oc.IntermediateOffer);
902902
foreach (var key in containers) {
903903
PrefetchTestHelper.AssertOnlySpecifiedColumnsAreLoaded(containerKey, containerKey.TypeInfo, session,
@@ -914,7 +914,7 @@ public async Task StructurePrefetchAsyncTest()
914914

915915
await using (var session = await Domain.OpenSessionAsync())
916916
await using (var tx = session.OpenTransaction()) {
917-
var containers = session.Query.Many<Model.OfferContainer>(EnumerableUtils.One(containerKey))
917+
var containers = session.Query.Many<Model.OfferContainer>(Enumerable.Repeat(containerKey, 1))
918918
.Prefetch(oc => oc.IntermediateOffer).AsAsyncEnumerable();
919919
await foreach (var key in containers) {
920920
PrefetchTestHelper.AssertOnlySpecifiedColumnsAreLoaded(containerKey, containerKey.TypeInfo, session,

Orm/Xtensive.Orm.Tests/Storage/Randomized/Tree.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
using System;
88
using System.Collections;
99
using System.Collections.Generic;
10+
using System.Linq;
1011
using Xtensive.Collections;
1112
using Xtensive.Core;
1213

@@ -33,7 +34,7 @@ public sealed class Tree : Entity,
3334
/// <inheritdoc/>
3435
public IEnumerator<TreeNode> GetEnumerator()
3536
{
36-
return EnumerableUtils.One(Root).Flatten(node => node.Children, null, true).GetEnumerator();
37+
return Enumerable.Repeat(Root, 1).Flatten(node => node.Children, null, true).GetEnumerator();
3738
}
3839

3940
/// <inheritdoc/>

0 commit comments

Comments
 (0)