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

더 자세히 ...

클래스

interface  IClock
class  FixedClock
class  AlternateClock
class  SlowSingleton
class  IndependentA
class  IndependentB
class  ReportService
class  CircularA
class  CircularB
class  AutoRegistrationViewModel
class  DisposableSingleton

Public 멤버 함수

void Resolve_CreatesRegisteredTransientWithConstructorDependencies ()
void Resolve_ReusesRegisteredSingletonImplementation ()
void Resolve_CreatesUnregisteredConcreteType ()
void Resolve_ThrowsForUnregisteredInterface ()
void Resolve_DetectsCircularDependencies ()
async Task Resolve_CreatesSingletonOnlyOnceAcrossConcurrentCalls ()
async Task Resolve_DoesNotShareCircularStateAcrossConcurrentCalls ()
void Register_ReplacesPreviousSingletonCache ()
void DreamineAutoRegistrar_RegisterAll_SingleAssemblyOverload_RegistersInDMContainer ()
void DMContainer_ResetClearsStaticFacadeRegistrations ()
void DreamineContainer_Dispose_DisposesIDisposableSingletons ()
void DreamineContainer_Dispose_IsIdempotent ()
void DMContainer_Reset_DisposesOldContainerSingletons ()

상세한 설명

Dreamine Container Tests 기능과 관련 상태를 캡슐화합니다.

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

멤버 함수 문서화

◆ DMContainer_Reset_DisposesOldContainerSingletons()

void Dreamine.FullKit.Tests.Core.DreamineContainerTests.DMContainer_Reset_DisposesOldContainerSingletons ( )
inline

DM Container Reset Disposes Old Container Singletons 작업을 수행합니다.

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

427 {
428 DMContainer.Reset();
429 var disposable = new DisposableSingleton();
430 DMContainer.RegisterSingleton(disposable);
431
432 _ = DMContainer.Resolve<DisposableSingleton>();
433 Assert.False(disposable.IsDisposed);
434
435 DMContainer.Reset();
436
437 Assert.True(disposable.IsDisposed);
438 }

◆ DMContainer_ResetClearsStaticFacadeRegistrations()

void Dreamine.FullKit.Tests.Core.DreamineContainerTests.DMContainer_ResetClearsStaticFacadeRegistrations ( )
inline

DM Container Reset Clears Static Facade Registrations 작업을 수행합니다.

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

362 {
363 DMContainer.Reset();
364 DMContainer.Register<IClock, FixedClock>();
365
366 Assert.True(DMContainer.IsRegistered<IClock>());
367
368 DMContainer.Reset();
369
370 Assert.False(DMContainer.IsRegistered<IClock>());
371 }

◆ DreamineAutoRegistrar_RegisterAll_SingleAssemblyOverload_RegistersInDMContainer()

void Dreamine.FullKit.Tests.Core.DreamineContainerTests.DreamineAutoRegistrar_RegisterAll_SingleAssemblyOverload_RegistersInDMContainer ( )
inline

Dreamine Auto Registrar Register All Single Assembly Overload Registers In DM Container 작업을 수행합니다.

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

342 {
343 DMContainer.Reset();
344
345 // The no-registry overload scans the given assembly and registers into DMContainer directly.
346 Dreamine.MVVM.Core.DreamineAutoRegistrar.RegisterAll(typeof(DreamineContainerTests).Assembly);
347
348 // AutoRegistrationViewModel matches the naming convention filter used by DreamineAutoRegistrar.
349 Assert.True(DMContainer.IsRegistered<AutoRegistrationViewModel>());
350 }

◆ DreamineContainer_Dispose_DisposesIDisposableSingletons()

void Dreamine.FullKit.Tests.Core.DreamineContainerTests.DreamineContainer_Dispose_DisposesIDisposableSingletons ( )
inline

Dreamine Container Dispose Disposes I Disposable Singletons 작업을 수행합니다.

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

383 {
384 var container = new DreamineContainer();
385 var disposable = new DisposableSingleton();
386 container.RegisterSingleton<DisposableSingleton>(disposable);
387
388 _ = container.Resolve<DisposableSingleton>();
389 Assert.False(disposable.IsDisposed);
390
391 container.Dispose();
392
393 Assert.True(disposable.IsDisposed);
394 }

다음을 참조함 : Dreamine.FullKit.Tests.Core.DreamineContainerTests.DisposableSingleton.Dispose().

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

◆ DreamineContainer_Dispose_IsIdempotent()

void Dreamine.FullKit.Tests.Core.DreamineContainerTests.DreamineContainer_Dispose_IsIdempotent ( )
inline

Dreamine Container Dispose Is Idempotent 작업을 수행합니다.

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

406 {
407 var container = new DreamineContainer();
408 var disposable = new DisposableSingleton();
409 container.RegisterSingleton<DisposableSingleton>(disposable);
410
411 container.Dispose();
412 container.Dispose();
413
414 Assert.Equal(1, disposable.DisposeCount);
415 }

다음을 참조함 : Dreamine.FullKit.Tests.Core.DreamineContainerTests.DisposableSingleton.Dispose().

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

◆ Register_ReplacesPreviousSingletonCache()

void Dreamine.FullKit.Tests.Core.DreamineContainerTests.Register_ReplacesPreviousSingletonCache ( )
inline

Register Replaces Previous Singleton Cache 작업을 수행합니다.

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

319 {
320 var container = new DreamineContainer();
321 container.RegisterSingleton<IClock, FixedClock>();
322
323 _ = container.Resolve<IClock>();
324
325 container.Register<IClock, AlternateClock>();
326
327 var resolved = container.Resolve<IClock>();
328
329 Assert.IsType<AlternateClock>(resolved);
330 }

◆ Resolve_CreatesRegisteredTransientWithConstructorDependencies()

void Dreamine.FullKit.Tests.Core.DreamineContainerTests.Resolve_CreatesRegisteredTransientWithConstructorDependencies ( )
inline

Resolve Creates Registered Transient With Constructor Dependencies 작업을 수행합니다.

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

148 {
149 var container = new DreamineContainer();
150 container.Register<IClock, FixedClock>();
151 container.Register<ReportService>();
152
153 var first = container.Resolve<ReportService>();
154 var second = container.Resolve<ReportService>();
155
156 Assert.NotSame(first, second);
157 Assert.IsType<FixedClock>(first.Clock);
158 Assert.Equal("2026-06-07", first.CreateReportName());
159 }

◆ Resolve_CreatesSingletonOnlyOnceAcrossConcurrentCalls()

async Task Dreamine.FullKit.Tests.Core.DreamineContainerTests.Resolve_CreatesSingletonOnlyOnceAcrossConcurrentCalls ( )
inline

Resolve Creates Singleton Only Once Across Concurrent Calls 작업을 수행합니다.

반환값
Resolve Creates Singleton Only Once Across Concurrent Calls 작업에서 생성한 Task 결과입니다.

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

257 {
258 SlowSingleton.Reset();
259
260 var container = new DreamineContainer();
261 container.RegisterSingleton<SlowSingleton>();
262
263 var tasks = Enumerable.Range(0, 32)
264 .Select(_ => Task.Run(() => container.Resolve<SlowSingleton>()))
265 .ToArray();
266
267 var instances = await Task.WhenAll(tasks);
268
269 Assert.Single(instances.Distinct());
270 Assert.Equal(1, SlowSingleton.CreatedCount);
271 }

다음을 참조함 : Dreamine.FullKit.Tests.Core.DreamineContainerTests.SlowSingleton.CreatedCount, Dreamine.FullKit.Tests.Core.DreamineContainerTests.SlowSingleton.Reset().

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

◆ Resolve_CreatesUnregisteredConcreteType()

void Dreamine.FullKit.Tests.Core.DreamineContainerTests.Resolve_CreatesUnregisteredConcreteType ( )
inline

Resolve Creates Unregistered Concrete Type 작업을 수행합니다.

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

191 {
192 var container = new DreamineContainer();
193
194 var instance = container.Resolve<FixedClock>();
195
196 Assert.Equal(new DateOnly(2026, 6, 7), instance.Today);
197 }

◆ Resolve_DetectsCircularDependencies()

void Dreamine.FullKit.Tests.Core.DreamineContainerTests.Resolve_DetectsCircularDependencies ( )
inline

Resolve Detects Circular Dependencies 작업을 수행합니다.

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

228 {
229 var container = new DreamineContainer();
230 container.Register<CircularA>();
231 container.Register<CircularB>();
232
233 var exception = Assert.Throws<InvalidOperationException>(
234 () => container.Resolve<CircularA>());
235
236 Assert.Contains("Circular dependency", exception.Message);
237 }

◆ Resolve_DoesNotShareCircularStateAcrossConcurrentCalls()

async Task Dreamine.FullKit.Tests.Core.DreamineContainerTests.Resolve_DoesNotShareCircularStateAcrossConcurrentCalls ( )
inline

Resolve Does Not Share Circular State Across Concurrent Calls 작업을 수행합니다.

반환값
Resolve Does Not Share Circular State Across Concurrent Calls 작업에서 생성한 Task 결과입니다.

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

291 {
292 var container = new DreamineContainer();
293 container.Register<IndependentA>();
294 container.Register<IndependentB>();
295
296 var tasks = Enumerable.Range(0, 16)
297 .Select(index => Task.Run<object>(() =>
298 index % 2 == 0
299 ? container.Resolve<IndependentA>()
300 : container.Resolve<IndependentB>()))
301 .ToArray();
302
303 var instances = await Task.WhenAll(tasks);
304
305 Assert.Equal(16, instances.Length);
306 Assert.All(instances, Assert.NotNull);
307 }

◆ Resolve_ReusesRegisteredSingletonImplementation()

void Dreamine.FullKit.Tests.Core.DreamineContainerTests.Resolve_ReusesRegisteredSingletonImplementation ( )
inline

Resolve Reuses Registered Singleton Implementation 작업을 수행합니다.

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

171 {
172 var container = new DreamineContainer();
173 container.RegisterSingleton<IClock, FixedClock>();
174
175 var first = container.Resolve<IClock>();
176 var second = container.Resolve<IClock>();
177
178 Assert.Same(first, second);
179 }

◆ Resolve_ThrowsForUnregisteredInterface()

void Dreamine.FullKit.Tests.Core.DreamineContainerTests.Resolve_ThrowsForUnregisteredInterface ( )
inline

Resolve Throws For Unregistered Interface 작업을 수행합니다.

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

209 {
210 var container = new DreamineContainer();
211
212 var exception = Assert.Throws<InvalidOperationException>(
213 () => container.Resolve<IClock>());
214
215 Assert.Contains("is not registered", exception.Message);
216 }

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