Dreamine.FullKit.Tests 1.0.0.0
Dreamine.FullKit.Tests 기능을 검증하는 자동화 테스트 프로젝트입니다.
로딩중...
검색중...
일치하는것 없음
Dreamine.FullKit.Tests.Database.SqliteDatabaseProviderTests 클래스 참조sealed

더 자세히 ...

클래스

class  TemporarySqliteDatabase
class  SampleUser

Public 멤버 함수

void SqliteProvider_CreatesTableAndRunsCrud ()
void SqliteProvider_SqlCache_ProducesDeterministicSqlForSameEntityType ()
async Task SqliteProvider_SupportsAsyncOperations ()

상세한 설명

Sqlite Database Provider Tests 기능과 관련 상태를 캡슐화합니다.

SqliteDatabaseProviderTests.cs 파일의 14 번째 라인에서 정의되었습니다.

멤버 함수 문서화

◆ SqliteProvider_CreatesTableAndRunsCrud()

void Dreamine.FullKit.Tests.Database.SqliteDatabaseProviderTests.SqliteProvider_CreatesTableAndRunsCrud ( )
inline

Sqlite Provider Creates Table And Runs Crud 작업을 수행합니다.

SqliteDatabaseProviderTests.cs 파일의 25 번째 라인에서 정의되었습니다.

26 {
27 using var database = TemporarySqliteDatabase.Create();
28 var provider = new SqliteDatabaseProvider(database.ConnectionString);
29
30 provider.EnsureDatabaseExists();
31 provider.CreateTable<SampleUser>();
32
33 Assert.True(provider.IsTableExists<SampleUser>());
34
35 Assert.True(provider.Insert(new SampleUser
36 {
37 Id = 1,
38 Name = "Minsu",
39 Age = 30,
40 Ignored = "not persisted"
41 }));
42
43 var inserted = provider.Query<SampleUser>("SELECT Id, Name, Age FROM SampleUsers WHERE Id = @Id", new { Id = 1 })
44 .Single();
45
46 Assert.Equal("Minsu", inserted.Name);
47 Assert.Equal(30, inserted.Age);
48
49 inserted.Name = "Dreamine";
50 inserted.Age = 31;
51
52 Assert.True(provider.Update(inserted));
53 Assert.Equal("Dreamine", provider.ExecuteScalar<string>("SELECT Name FROM SampleUsers WHERE Id = @Id", new { Id = 1 }));
54
55 Assert.True(provider.Delete(inserted));
56 Assert.Equal(0, provider.ExecuteScalar<long>("SELECT COUNT(1) FROM SampleUsers"));
57 }

다음을 참조함 : Dreamine.FullKit.Tests.Database.SqliteDatabaseProviderTests.TemporarySqliteDatabase.Create().

이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:

◆ SqliteProvider_SqlCache_ProducesDeterministicSqlForSameEntityType()

void Dreamine.FullKit.Tests.Database.SqliteDatabaseProviderTests.SqliteProvider_SqlCache_ProducesDeterministicSqlForSameEntityType ( )
inline

Sqlite Provider Sql Cache Produces Deterministic Sql For Same Entity Type 작업을 수행합니다.

SqliteDatabaseProviderTests.cs 파일의 68 번째 라인에서 정의되었습니다.

69 {
70 // Two separate provider instances that share the same static SQL cache.
71 // The observable contract is that the same entity type always produces identical SQL
72 // regardless of which provider instance triggers the build.
73 using var db1 = TemporarySqliteDatabase.Create();
74 using var db2 = TemporarySqliteDatabase.Create();
75 var p1 = new SqliteDatabaseProvider(db1.ConnectionString);
76 var p2 = new SqliteDatabaseProvider(db2.ConnectionString);
77
78 var method = typeof(SqliteDatabaseProvider)
79 .BaseType!
80 .GetMethod("BuildInsertSql", System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance)!;
81
82 var map = Dreamine.Database.Core.Mapping.DatabaseEntityMap.Create<SampleUser>();
83 var sql1 = (string)method.Invoke(p1, [map])!;
84 var sql2 = (string)method.Invoke(p2, [map])!;
85
86 Assert.NotEmpty(sql1);
87 Assert.Equal(sql1, sql2);
88 Assert.Contains("INSERT INTO", sql1);
89 Assert.Contains("SampleUsers", sql1);
90 }

다음을 참조함 : Dreamine.FullKit.Tests.Database.SqliteDatabaseProviderTests.TemporarySqliteDatabase.Create().

이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:

◆ SqliteProvider_SupportsAsyncOperations()

async Task Dreamine.FullKit.Tests.Database.SqliteDatabaseProviderTests.SqliteProvider_SupportsAsyncOperations ( )
inline

Sqlite Provider Supports Async Operations 작업을 수행합니다.

반환값
Sqlite Provider Supports Async Operations 작업에서 생성한 Task 결과입니다.

SqliteDatabaseProviderTests.cs 파일의 109 번째 라인에서 정의되었습니다.

110 {
111 using var database = TemporarySqliteDatabase.Create();
112 var provider = new SqliteDatabaseProvider(database.ConnectionString);
113
114 await provider.EnsureDatabaseExistsAsync();
115 await provider.CreateTableAsync<SampleUser>();
116
117 Assert.True(await provider.IsTableExistsAsync<SampleUser>());
118
119 var inserted = await provider.InsertAsync(new SampleUser
120 {
121 Id = 2,
122 Name = "Async",
123 Age = 7
124 });
125
126 Assert.True(inserted);
127
128 var rows = await provider.QueryAsync<SampleUser>(
129 "SELECT Id, Name, Age FROM SampleUsers WHERE Name = @Name",
130 new { Name = "Async" });
131
132 Assert.Single(rows);
133 Assert.Equal(7, rows[0].Age);
134
135 rows[0].Age = 8;
136 Assert.True(await provider.UpdateAsync(rows[0]));
137 Assert.Equal(8, await provider.ExecuteScalarAsync<int>("SELECT Age FROM SampleUsers WHERE Id = @Id", new { Id = 2 }));
138 }

다음을 참조함 : Dreamine.FullKit.Tests.Database.SqliteDatabaseProviderTests.SampleUser.Age, Dreamine.FullKit.Tests.Database.SqliteDatabaseProviderTests.TemporarySqliteDatabase.Create().

이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:

이 클래스에 대한 문서화 페이지는 다음의 파일로부터 생성되었습니다.: