Skip to content

Commit 0dd6098

Browse files
committed
Sequence extraction tests
1 parent bcfef98 commit 0dd6098

File tree

1 file changed

+147
-42
lines changed

1 file changed

+147
-42
lines changed

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

Lines changed: 147 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -19,13 +19,13 @@ namespace Xtensive.Orm.Tests.Sql.SqlServer
1919
[TestFixture]
2020
public class ExtractorTest : SqlTest
2121
{
22-
private List<string> dropOperations = new List<string>();
22+
private readonly List<string> dropOperations = new List<string>();
2323

2424
protected override void TestFixtureTearDown()
2525
{
2626
foreach (var dropOperation in dropOperations) {
2727
try {
28-
ExecuteNonQuery(dropOperation);
28+
_ = ExecuteNonQuery(dropOperation);
2929
}
3030
catch (Exception exception) {
3131
Console.Write("Operation '{0}' wasn't performed correctly", dropOperation);
@@ -62,8 +62,8 @@ CREATE TABLE [Table1] (
6262
var dropScript = "IF OBJECT_ID('Table1') IS NOT NULL DROP TABLE [Table1]";
6363

6464
RegisterDropForLater(dropScript);
65-
ExecuteNonQuery(dropScript);
66-
ExecuteNonQuery(createScript);
65+
_ = ExecuteNonQuery(dropScript);
66+
_ = ExecuteNonQuery(createScript);
6767

6868
#endregion
6969

@@ -112,8 +112,8 @@ CREATE TABLE [Table1] (
112112
var dropScript = @"IF OBJECT_ID('Table1') IS NOT NULL DROP TABLE [Table1]";
113113

114114
RegisterDropForLater(dropScript);
115-
ExecuteNonQuery(dropScript);
116-
ExecuteNonQuery(createScript);
115+
_ = ExecuteNonQuery(dropScript);
116+
_ = ExecuteNonQuery(createScript);
117117

118118
#endregion
119119

@@ -187,8 +187,8 @@ CREATE TABLE Table2 (
187187
IF OBJECT_ID('Table2') IS NOT NULL DROP TABLE [Table2];";
188188

189189
RegisterDropForLater(dropScript);
190-
ExecuteNonQuery(dropScript);
191-
ExecuteNonQuery(createScript);
190+
_ = ExecuteNonQuery(dropScript);
191+
_ = ExecuteNonQuery(createScript);
192192

193193
#endregion
194194

@@ -268,8 +268,8 @@ CREATE TABLE [Table2] (
268268
IF OBJECT_ID('Table2') IS NOT NULL DROP TABLE [Table2];";
269269

270270
RegisterDropForLater(dropScript);
271-
ExecuteNonQuery(dropScript);
272-
ExecuteNonQuery(createScript);
271+
_ = ExecuteNonQuery(dropScript);
272+
_ = ExecuteNonQuery(createScript);
273273

274274
#endregion
275275

@@ -333,8 +333,8 @@ CREATE TABLE [Table2] (
333333
IF OBJECT_ID('Table2') IS NOT NULL DROP TABLE [Table2];";
334334

335335
RegisterDropForLater(dropScript);
336-
ExecuteNonQuery(dropScript);
337-
ExecuteNonQuery(createScript);
336+
_ =ExecuteNonQuery(dropScript);
337+
_ = ExecuteNonQuery(createScript);
338338

339339
#endregion
340340

@@ -381,15 +381,15 @@ CREATE TABLE [Table2] (
381381
[Test]
382382
public void ExtractDomainsTest()
383383
{
384-
string createTable =
384+
var createTable =
385385
"create table table_with_domained_columns (id int primary key, value test_type)";
386-
string dropTable =
386+
var dropTable =
387387
"if object_id('table_with_domained_columns') is not null drop table table_with_domained_columns";
388388

389-
ExecuteNonQuery(dropTable);
389+
_ = ExecuteNonQuery(dropTable);
390390
DropDomain();
391391
CreateDomain();
392-
ExecuteNonQuery(createTable);
392+
_ = ExecuteNonQuery(createTable);
393393

394394
var schema = ExtractCatalog().DefaultSchema;
395395
var definedDomain = schema.Domains.Single(domain => domain.Name=="test_type");
@@ -403,13 +403,13 @@ public void ExtractDomainsTest()
403403
[Test]
404404
public void ExtractDefaultConstraintTest()
405405
{
406-
string createTable =
406+
var createTable =
407407
"create table table_with_default_constraint (id int default 0)";
408-
string dropTable =
408+
var dropTable =
409409
"if object_id('table_with_default_constraint') is not null drop table table_with_default_constraint";
410410

411-
ExecuteNonQuery(dropTable);
412-
ExecuteNonQuery(createTable);
411+
_ = ExecuteNonQuery(dropTable);
412+
_ = ExecuteNonQuery(createTable);
413413

414414
var schema = ExtractCatalog().DefaultSchema;
415415
var table = schema.Tables["table_with_default_constraint"];
@@ -420,35 +420,35 @@ public void ExtractDefaultConstraintTest()
420420
[Test]
421421
public void ExtractComputedColumnTest()
422422
{
423-
string createTable = @"
423+
var createTable = @"
424424
CREATE TABLE Tmp ( [Value] [int] NOT NULL, [Sum] AS ([Value]+(1)) PERSISTED ) ON [PRIMARY]
425425
CREATE NONCLUSTERED INDEX [IX_Sum] ON Tmp ( [Sum] ASC ) ON [PRIMARY]";
426-
string createView = @"
426+
var createView = @"
427427
CREATE VIEW Tmp_View WITH SCHEMABINDING AS SELECT Value, Sum FROM dbo.Tmp";
428-
string createIndex = @"
428+
var createIndex = @"
429429
CREATE UNIQUE CLUSTERED INDEX [x] ON Tmp_View ( [Value] ASC )";
430-
string drop = @"
430+
var drop = @"
431431
if object_id('Tmp_View') is not null drop view Tmp_View
432432
if object_id('Tmp') is not null drop table Tmp";
433433

434-
ExecuteNonQuery(drop);
435-
ExecuteNonQuery(createTable);
436-
ExecuteNonQuery(createView);
434+
_ = ExecuteNonQuery(drop);
435+
_ = ExecuteNonQuery(createTable);
436+
_ = ExecuteNonQuery(createView);
437437

438-
ExtractDefaultSchema();
439-
ExecuteNonQuery(drop);
438+
_ = ExtractDefaultSchema();
439+
_ = ExecuteNonQuery(drop);
440440
}
441441

442442
[Test]
443443
public void ExtractUDTTest()
444444
{
445445
Require.ProviderVersionAtLeast(StorageProviderVersion.SqlServer2008);
446-
string create = "CREATE TYPE GuidList AS TABLE ( Id UNIQUEIDENTIFIER NULL )";
447-
string drop = "if type_id('GuidList') is not null drop type GuidList";
446+
var create = "CREATE TYPE GuidList AS TABLE ( Id UNIQUEIDENTIFIER NULL )";
447+
var drop = "if type_id('GuidList') is not null drop type GuidList";
448448

449-
ExecuteNonQuery(drop);
450-
ExecuteNonQuery(create);
451-
ExtractDefaultSchema();
449+
_ = ExecuteNonQuery(drop);
450+
_ = ExecuteNonQuery(create);
451+
_ = ExtractDefaultSchema();
452452
}
453453

454454
[Test]
@@ -479,36 +479,141 @@ CONSTRAINT PK_FullTextTestTable PRIMARY KEY (Id)
479479
cases[3] = new Pair<string, ChangeTrackingMode>(createOffNoPopulationIndex, ChangeTrackingMode.OffWithNoPopulation);
480480

481481
foreach (var @case in cases) {
482-
ExecuteNonQuery(dropTable);
483-
ExecuteNonQuery(createTable);
484-
ExecuteNonQuery(@case.First);
482+
_ = ExecuteNonQuery(dropTable);
483+
_ = ExecuteNonQuery(createTable);
484+
_ = ExecuteNonQuery(@case.First);
485485
var schema = ExtractDefaultSchema();
486486
var table = schema.Tables["FullTextTestTable"];
487487
var ftIndex = table.Indexes.OfType<FullTextIndex>().FirstOrDefault();
488488
Assert.That(ftIndex, Is.Not.Null);
489489
Assert.That(ftIndex.ChangeTrackingMode, Is.EqualTo(@case.Second));
490490
}
491-
ExecuteNonQuery(dropTable);
491+
_ = ExecuteNonQuery(dropTable);
492492
}
493493

494-
#region Helpers
494+
[Test]
495+
public void ExtractInt64SequenceTest()
496+
{
497+
var createSequence = @"CREATE SEQUENCE dbo.BigIntSeq
498+
AS bigint
499+
START WITH 12 INCREMENT BY 3
500+
MINVALUE 10 MAXVALUE 200
501+
CYCLE CACHE 3;";
502+
503+
var dropSequence = @"IF OBJECT_ID('dbo.BigIntSeq', 'SO') IS NOT NULL
504+
DROP SEQUENCE dbo.BigIntSeq;";
505+
506+
_ = ExecuteNonQuery(dropSequence);
507+
_ = ExecuteNonQuery(createSequence);
508+
var schema = ExtractDefaultSchema();
509+
var sequence = schema.Sequences.FirstOrDefault(s => s.Name == "BigIntSeq");
510+
Assert.That(sequence, Is.Not.Null);
511+
var descriptor = sequence.SequenceDescriptor;
512+
Assert.That(descriptor.StartValue, Is.EqualTo(12));
513+
Assert.That(descriptor.Increment, Is.EqualTo(3));
514+
Assert.That(descriptor.MinValue, Is.EqualTo(10));
515+
Assert.That(descriptor.MaxValue, Is.EqualTo(200));
516+
517+
_ = ExecuteNonQuery(dropSequence);
518+
}
519+
520+
[Test]
521+
public void ExtractInt32SequenceTest()
522+
{
523+
var createSequence = @"CREATE SEQUENCE dbo.IntSeq
524+
AS int
525+
START WITH 12 INCREMENT BY 3
526+
MINVALUE 10 MAXVALUE 200
527+
CYCLE CACHE 3;";
528+
529+
var dropSequence = @"IF OBJECT_ID('dbo.IntSeq', 'SO') IS NOT NULL
530+
DROP SEQUENCE dbo.IntSeq;";
531+
532+
_ = ExecuteNonQuery(dropSequence);
533+
_ = ExecuteNonQuery(createSequence);
534+
var schema = ExtractDefaultSchema();
535+
var sequence = schema.Sequences.FirstOrDefault(s => s.Name == "IntSeq");
536+
Assert.That(sequence, Is.Not.Null);
537+
var descriptor = sequence.SequenceDescriptor;
538+
Assert.That(descriptor.StartValue, Is.EqualTo(12));
539+
Assert.That(descriptor.Increment, Is.EqualTo(3));
540+
Assert.That(descriptor.MinValue, Is.EqualTo(10));
541+
Assert.That(descriptor.MaxValue, Is.EqualTo(200));
542+
543+
_ = ExecuteNonQuery(dropSequence);
544+
}
545+
546+
[Test]
547+
public void ExtractInt16SequenceTest()
548+
{
549+
var createSequence = @"CREATE SEQUENCE dbo.SmallIntSeq
550+
AS smallint
551+
START WITH 12 INCREMENT BY 3
552+
MINVALUE 10 MAXVALUE 200
553+
CYCLE CACHE 3;";
554+
555+
var dropSequence = @"IF OBJECT_ID('dbo.SmallIntSeq', 'SO') IS NOT NULL
556+
DROP SEQUENCE dbo.SmallIntSeq;";
557+
558+
_ = ExecuteNonQuery(dropSequence);
559+
_ = ExecuteNonQuery(createSequence);
560+
var schema = ExtractDefaultSchema();
561+
var sequence = schema.Sequences.FirstOrDefault(s => s.Name == "SmallIntSeq");
562+
Assert.That(sequence, Is.Not.Null);
563+
var descriptor = sequence.SequenceDescriptor;
564+
Assert.That(descriptor.StartValue, Is.EqualTo(12));
565+
Assert.That(descriptor.Increment, Is.EqualTo(3));
566+
Assert.That(descriptor.MinValue, Is.EqualTo(10));
567+
Assert.That(descriptor.MaxValue, Is.EqualTo(200));
568+
569+
_ = ExecuteNonQuery(dropSequence);
570+
}
571+
572+
[Test]
573+
public void ExtractByteSequenceTest()
574+
{
575+
var createSequence = @"CREATE SEQUENCE dbo.TinyIntSeq
576+
AS tinyint
577+
START WITH 12 INCREMENT BY 3
578+
MINVALUE 10 MAXVALUE 200
579+
CYCLE CACHE 3;";
580+
581+
var dropSequence = @"IF OBJECT_ID('dbo.TinyIntSeq', 'SO') IS NOT NULL
582+
DROP SEQUENCE dbo.TinyIntSeq;";
583+
584+
_ = ExecuteNonQuery(dropSequence);
585+
_ = ExecuteNonQuery(createSequence);
586+
var schema = ExtractDefaultSchema();
587+
var sequence = schema.Sequences.FirstOrDefault(s => s.Name == "TinyIntSeq");
588+
Assert.That(sequence, Is.Not.Null);
589+
var descriptor = sequence.SequenceDescriptor;
590+
Assert.That(descriptor.StartValue, Is.EqualTo(12));
591+
Assert.That(descriptor.Increment, Is.EqualTo(3));
592+
Assert.That(descriptor.MinValue, Is.EqualTo(10));
593+
Assert.That(descriptor.MaxValue, Is.EqualTo(200));
594+
595+
_ = ExecuteNonQuery(dropSequence);
596+
}
597+
598+
599+
#region Helpers
495600

496601
private void CreateDomain()
497602
{
498603
var schema = ExtractCatalog().DefaultSchema;
499604
var domain = schema.CreateDomain("test_type", new SqlValueType(SqlType.Int64));
500605
var commandText = Driver.Compile(SqlDdl.Create(domain)).GetCommandText();
501-
ExecuteNonQuery(commandText);
606+
_ = ExecuteNonQuery(commandText);
502607
}
503608

504609
private void DropDomain()
505610
{
506611
var schema = ExtractCatalog().DefaultSchema;
507612
var domain = schema.Domains["test_type"];
508-
if (domain==null)
613+
if (domain == null)
509614
return;
510615
var commandText = Driver.Compile(SqlDdl.Drop(domain)).GetCommandText();
511-
ExecuteNonQuery(commandText);
616+
_ =ExecuteNonQuery(commandText);
512617
}
513618

514619
private void RegisterDropForLater(string dropScript)

0 commit comments

Comments
 (0)