Skip to content

Commit 3e0ee87

Browse files
committed
Testing
1 parent dde53e9 commit 3e0ee87

File tree

50 files changed

+964
-1
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

50 files changed

+964
-1
lines changed

Generator.Tests.Integration/SingleDatabaseTestSqlServer.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,7 @@ public void ReverseEngineerSqlServer(string database, string singleDbContextSubN
8888
}
8989

9090
[Test]
91+
[NonParallelizable]
9192
[TestCase(TemplateType.EfCore6, ".V4TestE6")]
9293
[TestCase(TemplateType.EfCore7, ".V4TestE7")]
9394
public void NonPascalCased(TemplateType templateType, string singleDbContextSubNamespace)

Tester.Integration.EFCore6/ContextHasSameNameAsDb/EfrpgTest.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
3232
if (!optionsBuilder.IsConfigured)
3333
{
3434
optionsBuilder.UseSqlServer(@"Data Source=(local);Initial Catalog=EfrpgTest;Integrated Security=True;MultipleActiveResultSets=True;Encrypt=false;TrustServerCertificate=true");
35+
optionsBuilder.UseLazyLoadingProxies();
3536
}
3637
}
3738

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
// <auto-generated>
2+
3+
using Microsoft.EntityFrameworkCore;
4+
using Microsoft.EntityFrameworkCore.Metadata.Builders;
5+
using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
6+
7+
namespace V6EfrpgTest
8+
{
9+
// ThisIsMemoryOptimised
10+
public class ThisIsMemoryOptimisedConfiguration : IEntityTypeConfiguration<ThisIsMemoryOptimised>
11+
{
12+
public void Configure(EntityTypeBuilder<ThisIsMemoryOptimised> builder)
13+
{
14+
builder.ToTable("ThisIsMemoryOptimised", "dbo");
15+
builder.HasKey(x => x.Id).HasName("PK_ThisIsMemoryOptimised");
16+
17+
builder.Property(x => x.Id).HasColumnName(@"Id").HasColumnType("int").IsRequired().ValueGeneratedOnAdd().UseIdentityColumn();
18+
builder.Property(x => x.Description).HasColumnName(@"Description").HasColumnType("varchar(20)").IsRequired().IsUnicode(false).HasMaxLength(20);
19+
}
20+
}
21+
22+
}
23+
// </auto-generated>
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
// <auto-generated>
2+
3+
using System;
4+
using System.Collections.Generic;
5+
6+
namespace V6EfrpgTest
7+
{
8+
public class ColumnNameAndTypesProcReturnModel
9+
{
10+
public DateTime someDate { get; set; }
11+
public string Obs { get; set; }
12+
public int? @static { get; set; }
13+
public int? @readonly { get; set; }
14+
public Single? areal { get; set; }
15+
public double? afloat { get; set; }
16+
public Single? afloat8 { get; set; }
17+
public Single? afloat20 { get; set; }
18+
public Single? afloat24 { get; set; }
19+
public double? afloat53 { get; set; }
20+
public decimal? adecimal { get; set; }
21+
public decimal? adecimal_19_4 { get; set; }
22+
public decimal? adecimal_10_3 { get; set; }
23+
public decimal? anumeric { get; set; }
24+
public decimal? anumeric_5_2 { get; set; }
25+
public decimal? anumeric_11_3 { get; set; }
26+
public decimal? amoney { get; set; }
27+
public decimal? asmallmoney { get; set; }
28+
public NetTopologySuite.Geometries.Point GeographyType { get; set; }
29+
public NetTopologySuite.Geometries.Geometry GeometryType { get; set; }
30+
}
31+
32+
}
33+
// </auto-generated>
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
// <auto-generated>
2+
3+
using System;
4+
using System.Collections.Generic;
5+
using System.Threading;
6+
using System.Threading.Tasks;
7+
8+
namespace V6EfrpgTest
9+
{
10+
// ThisIsMemoryOptimised
11+
public class ThisIsMemoryOptimised
12+
{
13+
public int Id { get; set; } // Id (Primary key)
14+
public string Description { get; set; } // Description (length: 20)
15+
}
16+
17+
}
18+
// </auto-generated>

Tester.Integration.EFCore6/EfrpgTestData/FakeV6EfrpgTestDbContext.cs

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -102,6 +102,7 @@ public class FakeV6EfrpgTestDbContext : IV6EfrpgTestDbContext
102102
public DbSet<TblOrderError> TblOrderErrors { get; set; } // tblOrderErrors
103103
public DbSet<TblOrderErrorsAb> TblOrderErrorsAbs { get; set; } // tblOrderErrorsAB_
104104
public DbSet<TblOrderLine> TblOrderLines { get; set; } // tblOrderLines
105+
public DbSet<ThisIsMemoryOptimised> ThisIsMemoryOptimiseds { get; set; } // ThisIsMemoryOptimised
105106
public DbSet<Ticket> Tickets { get; set; } // Ticket
106107
public DbSet<TimestampNotNull> TimestampNotNulls { get; set; } // TimestampNotNull
107108
public DbSet<TimestampNullable> TimestampNullables { get; set; } // TimestampNullable
@@ -207,6 +208,7 @@ public FakeV6EfrpgTestDbContext()
207208
TblOrderErrors = new FakeDbSet<TblOrderError>("Id");
208209
TblOrderErrorsAbs = new FakeDbSet<TblOrderErrorsAb>("Id");
209210
TblOrderLines = new FakeDbSet<TblOrderLine>("Id");
211+
ThisIsMemoryOptimiseds = new FakeDbSet<ThisIsMemoryOptimised>("Id");
210212
Tickets = new FakeDbSet<Ticket>("Id");
211213
TimestampNotNulls = new FakeDbSet<TimestampNotNull>("Id");
212214
TimestampNullables = new FakeDbSet<TimestampNullable>("Id");
@@ -519,6 +521,25 @@ public Task<List<ColourPivotReturnModel>> ColourPivotAsync()
519521
return Task.FromResult(ColourPivot(out procResult));
520522
}
521523

524+
public DbSet<ColumnNameAndTypesProcReturnModel> ColumnNameAndTypesProcReturnModel { get; set; }
525+
public List<ColumnNameAndTypesProcReturnModel> ColumnNameAndTypesProc()
526+
{
527+
int procResult;
528+
return ColumnNameAndTypesProc(out procResult);
529+
}
530+
531+
public List<ColumnNameAndTypesProcReturnModel> ColumnNameAndTypesProc(out int procResult)
532+
{
533+
procResult = 0;
534+
return new List<ColumnNameAndTypesProcReturnModel>();
535+
}
536+
537+
public Task<List<ColumnNameAndTypesProcReturnModel>> ColumnNameAndTypesProcAsync()
538+
{
539+
int procResult;
540+
return Task.FromResult(ColumnNameAndTypesProc(out procResult));
541+
}
542+
522543
public int ConvertToString(int? someValue, out string someString)
523544
{
524545
someString = default(string);

Tester.Integration.EFCore6/EfrpgTestData/Interface/IV6EfrpgTestDbContext.cs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -102,6 +102,7 @@ public interface IV6EfrpgTestDbContext : IDisposable
102102
DbSet<TblOrderError> TblOrderErrors { get; set; } // tblOrderErrors
103103
DbSet<TblOrderErrorsAb> TblOrderErrorsAbs { get; set; } // tblOrderErrorsAB_
104104
DbSet<TblOrderLine> TblOrderLines { get; set; } // tblOrderLines
105+
DbSet<ThisIsMemoryOptimised> ThisIsMemoryOptimiseds { get; set; } // ThisIsMemoryOptimised
105106
DbSet<Ticket> Tickets { get; set; } // Ticket
106107
DbSet<TimestampNotNull> TimestampNotNulls { get; set; } // TimestampNotNull
107108
DbSet<TimestampNullable> TimestampNullables { get; set; } // TimestampNullable
@@ -189,6 +190,10 @@ public interface IV6EfrpgTestDbContext : IDisposable
189190
List<ColourPivotReturnModel> ColourPivot(out int procResult);
190191
Task<List<ColourPivotReturnModel>> ColourPivotAsync();
191192

193+
List<ColumnNameAndTypesProcReturnModel> ColumnNameAndTypesProc();
194+
List<ColumnNameAndTypesProcReturnModel> ColumnNameAndTypesProc(out int procResult);
195+
Task<List<ColumnNameAndTypesProcReturnModel>> ColumnNameAndTypesProcAsync();
196+
192197
int ConvertToString(int? someValue, out string someString);
193198
// ConvertToStringAsync() cannot be created due to having out parameters, or is relying on the procedure result (int)
194199

Tester.Integration.EFCore6/EfrpgTestData/V6EfrpgTestDbContext.cs

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -111,6 +111,7 @@ public V6EfrpgTestDbContext(DbContextOptions<V6EfrpgTestDbContext> options)
111111
public DbSet<TblOrderError> TblOrderErrors { get; set; } // tblOrderErrors
112112
public DbSet<TblOrderErrorsAb> TblOrderErrorsAbs { get; set; } // tblOrderErrorsAB_
113113
public DbSet<TblOrderLine> TblOrderLines { get; set; } // tblOrderLines
114+
public DbSet<ThisIsMemoryOptimised> ThisIsMemoryOptimiseds { get; set; } // ThisIsMemoryOptimised
114115
public DbSet<Ticket> Tickets { get; set; } // Ticket
115116
public DbSet<TimestampNotNull> TimestampNotNulls { get; set; } // TimestampNotNull
116117
public DbSet<TimestampNullable> TimestampNullables { get; set; } // TimestampNullable
@@ -130,6 +131,7 @@ protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
130131
if (!optionsBuilder.IsConfigured)
131132
{
132133
optionsBuilder.UseSqlServer(@"Data Source=(local);Initial Catalog=EfrpgTest;Integrated Security=True;Application Name=EntityFramework Reverse POCO Generator", x => x.UseNetTopologySuite().UseHierarchyId());
134+
optionsBuilder.UseLazyLoadingProxies();
133135
}
134136
}
135137

@@ -240,6 +242,7 @@ protected override void OnModelCreating(ModelBuilder modelBuilder)
240242
modelBuilder.ApplyConfiguration(new TblOrderErrorConfiguration());
241243
modelBuilder.ApplyConfiguration(new TblOrderErrorsAbConfiguration());
242244
modelBuilder.ApplyConfiguration(new TblOrderLineConfiguration());
245+
modelBuilder.ApplyConfiguration(new ThisIsMemoryOptimisedConfiguration());
243246
modelBuilder.ApplyConfiguration(new TicketConfiguration());
244247
modelBuilder.ApplyConfiguration(new TimestampNotNullConfiguration());
245248
modelBuilder.ApplyConfiguration(new TimestampNullableConfiguration());
@@ -255,6 +258,7 @@ protected override void OnModelCreating(ModelBuilder modelBuilder)
255258
modelBuilder.ApplyConfiguration(new БрендытовараConfiguration());
256259

257260
modelBuilder.Entity<ColourPivotReturnModel>().HasNoKey();
261+
modelBuilder.Entity<ColumnNameAndTypesProcReturnModel>().HasNoKey();
258262
modelBuilder.Entity<DboProcDataFromFfrsReturnModel>().HasNoKey();
259263
modelBuilder.Entity<DboProcDataFromFfrsAndDboReturnModel>().HasNoKey();
260264
modelBuilder.Entity<DsOpeProcReturnModel>().HasNoKey();
@@ -434,6 +438,34 @@ public async Task<List<ColourPivotReturnModel>> ColourPivotAsync()
434438
return procResultData;
435439
}
436440

441+
public List<ColumnNameAndTypesProcReturnModel> ColumnNameAndTypesProc()
442+
{
443+
int procResult;
444+
return ColumnNameAndTypesProc(out procResult);
445+
}
446+
447+
public List<ColumnNameAndTypesProcReturnModel> ColumnNameAndTypesProc(out int procResult)
448+
{
449+
var procResultParam = new SqlParameter { ParameterName = "@procResult", SqlDbType = SqlDbType.Int, Direction = ParameterDirection.Output };
450+
const string sqlCommand = "EXEC @procResult = [dbo].[ColumnNameAndTypesProc]";
451+
var procResultData = Set<ColumnNameAndTypesProcReturnModel>()
452+
.FromSqlRaw(sqlCommand, procResultParam)
453+
.ToList();
454+
455+
procResult = (int) procResultParam.Value;
456+
return procResultData;
457+
}
458+
459+
public async Task<List<ColumnNameAndTypesProcReturnModel>> ColumnNameAndTypesProcAsync()
460+
{
461+
const string sqlCommand = "EXEC [dbo].[ColumnNameAndTypesProc]";
462+
var procResultData = await Set<ColumnNameAndTypesProcReturnModel>()
463+
.FromSqlRaw(sqlCommand)
464+
.ToListAsync();
465+
466+
return procResultData;
467+
}
468+
437469
public int ConvertToString(int? someValue, out string someString)
438470
{
439471
var someValueParam = new SqlParameter { ParameterName = "@someValue", SqlDbType = SqlDbType.Int, Direction = ParameterDirection.Input, Value = someValue.GetValueOrDefault(), Precision = 10, Scale = 0 };

Tester.Integration.EFCore6/EfrpgTest_no_pascal_casing.cs

Lines changed: 81 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -109,6 +109,7 @@ public interface IV6_Efrpg_Test_Db_Context : IDisposable
109109
DbSet<tblOrderError> tblOrderErrors { get; set; } // tblOrderErrors
110110
DbSet<tblOrderErrorsAB> tblOrderErrorsABs { get; set; } // tblOrderErrorsAB_
111111
DbSet<tblOrderLine> tblOrderLines { get; set; } // tblOrderLines
112+
DbSet<ThisIsMemoryOptimised> ThisIsMemoryOptimiseds { get; set; } // ThisIsMemoryOptimised
112113
DbSet<Ticket> Tickets { get; set; } // Ticket
113114
DbSet<TimestampNotNull> TimestampNotNulls { get; set; } // TimestampNotNull
114115
DbSet<TimestampNullable> TimestampNullables { get; set; } // TimestampNullable
@@ -196,6 +197,10 @@ public interface IV6_Efrpg_Test_Db_Context : IDisposable
196197
List<ColourPivotReturnModel> ColourPivot(out int procResult);
197198
Task<List<ColourPivotReturnModel>> ColourPivotAsync();
198199

200+
List<ColumnNameAndTypesProcReturnModel> ColumnNameAndTypesProc();
201+
List<ColumnNameAndTypesProcReturnModel> ColumnNameAndTypesProc(out int procResult);
202+
Task<List<ColumnNameAndTypesProcReturnModel>> ColumnNameAndTypesProcAsync();
203+
199204
int ConvertToString(int? someValue, out string someString);
200205
// ConvertToStringAsync() cannot be created due to having out parameters, or is relying on the procedure result (int)
201206

@@ -437,6 +442,7 @@ public V6_Efrpg_Test_Db_Context(DbContextOptions<V6_Efrpg_Test_Db_Context> optio
437442
public DbSet<tblOrderError> tblOrderErrors { get; set; } // tblOrderErrors
438443
public DbSet<tblOrderErrorsAB> tblOrderErrorsABs { get; set; } // tblOrderErrorsAB_
439444
public DbSet<tblOrderLine> tblOrderLines { get; set; } // tblOrderLines
445+
public DbSet<ThisIsMemoryOptimised> ThisIsMemoryOptimiseds { get; set; } // ThisIsMemoryOptimised
440446
public DbSet<Ticket> Tickets { get; set; } // Ticket
441447
public DbSet<TimestampNotNull> TimestampNotNulls { get; set; } // TimestampNotNull
442448
public DbSet<TimestampNullable> TimestampNullables { get; set; } // TimestampNullable
@@ -456,6 +462,7 @@ protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
456462
if (!optionsBuilder.IsConfigured)
457463
{
458464
optionsBuilder.UseSqlServer(@"Data Source=(local);Initial Catalog=EfrpgTest;Integrated Security=True;Application Name=EntityFramework Reverse POCO Generator", x => x.UseNetTopologySuite().UseHierarchyId());
465+
optionsBuilder.UseLazyLoadingProxies();
459466
}
460467
}
461468

@@ -566,6 +573,7 @@ protected override void OnModelCreating(ModelBuilder modelBuilder)
566573
modelBuilder.ApplyConfiguration(new tblOrderErrorConfiguration());
567574
modelBuilder.ApplyConfiguration(new tblOrderErrorsABConfiguration());
568575
modelBuilder.ApplyConfiguration(new tblOrderLineConfiguration());
576+
modelBuilder.ApplyConfiguration(new ThisIsMemoryOptimisedConfiguration());
569577
modelBuilder.ApplyConfiguration(new TicketConfiguration());
570578
modelBuilder.ApplyConfiguration(new TimestampNotNullConfiguration());
571579
modelBuilder.ApplyConfiguration(new TimestampNullableConfiguration());
@@ -581,6 +589,7 @@ protected override void OnModelCreating(ModelBuilder modelBuilder)
581589
modelBuilder.ApplyConfiguration(new БрендытовараConfiguration());
582590

583591
modelBuilder.Entity<ColourPivotReturnModel>().HasNoKey();
592+
modelBuilder.Entity<ColumnNameAndTypesProcReturnModel>().HasNoKey();
584593
modelBuilder.Entity<dbo_proc_data_from_ffrsReturnModel>().HasNoKey();
585594
modelBuilder.Entity<dbo_proc_data_from_ffrs_and_dboReturnModel>().HasNoKey();
586595
modelBuilder.Entity<DSOpeProcReturnModel>().HasNoKey();
@@ -760,6 +769,34 @@ public async Task<List<ColourPivotReturnModel>> ColourPivotAsync()
760769
return procResultData;
761770
}
762771

772+
public List<ColumnNameAndTypesProcReturnModel> ColumnNameAndTypesProc()
773+
{
774+
int procResult;
775+
return ColumnNameAndTypesProc(out procResult);
776+
}
777+
778+
public List<ColumnNameAndTypesProcReturnModel> ColumnNameAndTypesProc(out int procResult)
779+
{
780+
var procResultParam = new SqlParameter { ParameterName = "@procResult", SqlDbType = SqlDbType.Int, Direction = ParameterDirection.Output };
781+
const string sqlCommand = "EXEC @procResult = [dbo].[ColumnNameAndTypesProc]";
782+
var procResultData = Set<ColumnNameAndTypesProcReturnModel>()
783+
.FromSqlRaw(sqlCommand, procResultParam)
784+
.ToList();
785+
786+
procResult = (int) procResultParam.Value;
787+
return procResultData;
788+
}
789+
790+
public async Task<List<ColumnNameAndTypesProcReturnModel>> ColumnNameAndTypesProcAsync()
791+
{
792+
const string sqlCommand = "EXEC [dbo].[ColumnNameAndTypesProc]";
793+
var procResultData = await Set<ColumnNameAndTypesProcReturnModel>()
794+
.FromSqlRaw(sqlCommand)
795+
.ToListAsync();
796+
797+
return procResultData;
798+
}
799+
763800
public int ConvertToString(int? someValue, out string someString)
764801
{
765802
var someValueParam = new SqlParameter { ParameterName = "@someValue", SqlDbType = SqlDbType.Int, Direction = ParameterDirection.Input, Value = someValue.GetValueOrDefault(), Precision = 10, Scale = 0 };
@@ -3201,6 +3238,13 @@ public class Test
32013238
public int? ExclusionTest { get; set; } // ExclusionTest
32023239
}
32033240

3241+
// ThisIsMemoryOptimised
3242+
public class ThisIsMemoryOptimised
3243+
{
3244+
public int Id { get; set; } // Id (Primary key)
3245+
public string Description { get; set; } // Description (length: 20)
3246+
}
3247+
32043248
// Ticket
32053249
public class Ticket
32063250
{
@@ -4772,6 +4816,19 @@ public void Configure(EntityTypeBuilder<tblOrderLine> builder)
47724816
}
47734817
}
47744818

4819+
// ThisIsMemoryOptimised
4820+
public class ThisIsMemoryOptimisedConfiguration : IEntityTypeConfiguration<ThisIsMemoryOptimised>
4821+
{
4822+
public void Configure(EntityTypeBuilder<ThisIsMemoryOptimised> builder)
4823+
{
4824+
builder.ToTable("ThisIsMemoryOptimised", "dbo");
4825+
builder.HasKey(x => x.Id).HasName("PK_ThisIsMemoryOptimised");
4826+
4827+
builder.Property(x => x.Id).HasColumnName(@"Id").HasColumnType("int").IsRequired().ValueGeneratedOnAdd().UseIdentityColumn();
4828+
builder.Property(x => x.Description).HasColumnName(@"Description").HasColumnType("varchar(20)").IsRequired().IsUnicode(false).HasMaxLength(20);
4829+
}
4830+
}
4831+
47754832
// Ticket
47764833
public class TicketConfiguration : IEntityTypeConfiguration<Ticket>
47774834
{
@@ -5035,6 +5092,30 @@ public class ColourPivotReturnModel
50355092
public int? Red { get; set; }
50365093
}
50375094

5095+
public class ColumnNameAndTypesProcReturnModel
5096+
{
5097+
public DateTime someDate { get; set; }
5098+
public string Obs { get; set; }
5099+
public int? @static { get; set; }
5100+
public int? @readonly { get; set; }
5101+
public Single? areal { get; set; }
5102+
public double? afloat { get; set; }
5103+
public Single? afloat8 { get; set; }
5104+
public Single? afloat20 { get; set; }
5105+
public Single? afloat24 { get; set; }
5106+
public double? afloat53 { get; set; }
5107+
public decimal? adecimal { get; set; }
5108+
public decimal? adecimal_19_4 { get; set; }
5109+
public decimal? adecimal_10_3 { get; set; }
5110+
public decimal? anumeric { get; set; }
5111+
public decimal? anumeric_5_2 { get; set; }
5112+
public decimal? anumeric_11_3 { get; set; }
5113+
public decimal? amoney { get; set; }
5114+
public decimal? asmallmoney { get; set; }
5115+
public NetTopologySuite.Geometries.Point GeographyType { get; set; }
5116+
public NetTopologySuite.Geometries.Geometry GeometryType { get; set; }
5117+
}
5118+
50385119
public class CsvToIntReturnModel
50395120
{
50405121
public int? IntValue { get; set; }

Tester.Integration.EFCore6/Multi context many files/Contexts/AppleDbContext.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@ protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
4141
if (!optionsBuilder.IsConfigured && _configuration != null)
4242
{
4343
optionsBuilder.UseSqlServer(_configuration.GetConnectionString(@"McmfMultiDatabase"));
44+
optionsBuilder.UseLazyLoadingProxies();
4445
}
4546
}
4647

0 commit comments

Comments
 (0)