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

더 자세히 ...

Public 멤버 함수

void SetState_UpdatesStateAndFiresEvent ()
void Update_AppliesTransformAndFiresEvent ()
void Subscribe_ReturnsDisposableThatUnsubscribes ()
void Dispose_IsIdempotent ()
async Task SetState_ConcurrentCalls_AllEventsDelivered ()
async Task Update_ConcurrentCalls_StateRemainsConsistent ()

상세한 설명

Hybrid State Store Tests 기능과 관련 상태를 캡슐화합니다.

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

멤버 함수 문서화

◆ Dispose_IsIdempotent()

void Dreamine.FullKit.Tests.Hybrid.HybridStateStoreTests.Dispose_IsIdempotent ( )
inline

이 인스턴스가 소유한 리소스를 해제합니다.

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

92 {
93 var store = new HybridStateStore<int>(0);
94 var count = 0;
95 var sub = store.Subscribe((_, _) => count++);
96
97 sub.Dispose();
98 sub.Dispose(); // second dispose must not throw or re-unsubscribe
99
100 store.SetState(1);
101 Assert.Equal(0, count);
102 }

◆ SetState_ConcurrentCalls_AllEventsDelivered()

async Task Dreamine.FullKit.Tests.Hybrid.HybridStateStoreTests.SetState_ConcurrentCalls_AllEventsDelivered ( )
inline

State Concurrent Calls All Events Delivered 값을 설정합니다.

반환값
Set State Concurrent Calls All Events Delivered 작업에서 생성한 Task 결과입니다.

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

122 {
123 const int iterations = 200;
124 var store = new HybridStateStore<int>(0);
125 var eventCount = 0;
126
127 store.StateChanged += (_, _) => Interlocked.Increment(ref eventCount);
128
129 var tasks = Enumerable.Range(1, iterations)
130 .Select(i => Task.Run(() => store.SetState(i)));
131
132 await Task.WhenAll(tasks);
133
134 // Every SetState must fire exactly one event — no event may be lost.
135 Assert.Equal(iterations, eventCount);
136 }

◆ SetState_UpdatesStateAndFiresEvent()

void Dreamine.FullKit.Tests.Hybrid.HybridStateStoreTests.SetState_UpdatesStateAndFiresEvent ( )
inline

State Updates State And Fires Event 값을 설정합니다.

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

26 {
27 var store = new HybridStateStore<int>(0);
28 var received = new List<int>();
29 store.StateChanged += (_, e) => received.Add(e.State);
30
31 store.SetState(1);
32 store.SetState(2);
33
34 Assert.Equal(2, store.State);
35 Assert.Equal(new[] { 1, 2 }, received);
36 }

◆ Subscribe_ReturnsDisposableThatUnsubscribes()

void Dreamine.FullKit.Tests.Hybrid.HybridStateStoreTests.Subscribe_ReturnsDisposableThatUnsubscribes ( )
inline

Subscribe Returns Disposable That Unsubscribes 작업을 수행합니다.

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

70 {
71 var store = new HybridStateStore<int>(0);
72 var count = 0;
73 var sub = store.Subscribe((_, _) => count++);
74
75 store.SetState(1);
76 sub.Dispose();
77 store.SetState(2);
78
79 Assert.Equal(1, count);
80 }

◆ Update_AppliesTransformAndFiresEvent()

void Dreamine.FullKit.Tests.Hybrid.HybridStateStoreTests.Update_AppliesTransformAndFiresEvent ( )
inline

Update Applies Transform And Fires Event 작업을 수행합니다.

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

48 {
49 var store = new HybridStateStore<int>(10);
50 var received = new List<int>();
51 store.StateChanged += (_, e) => received.Add(e.State);
52
53 store.Update(x => x + 5);
54
55 Assert.Equal(15, store.State);
56 Assert.Single(received);
57 Assert.Equal(15, received[0]);
58 }

◆ Update_ConcurrentCalls_StateRemainsConsistent()

async Task Dreamine.FullKit.Tests.Hybrid.HybridStateStoreTests.Update_ConcurrentCalls_StateRemainsConsistent ( )
inline

Update Concurrent Calls State Remains Consistent 작업을 수행합니다.

반환값
Update Concurrent Calls State Remains Consistent 작업에서 생성한 Task 결과입니다.

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

156 {
157 var store = new HybridStateStore<int>(0);
158
159 var tasks = Enumerable.Range(0, 100)
160 .Select(_ => Task.Run(() => store.Update(x => x + 1)));
161
162 await Task.WhenAll(tasks);
163
164 Assert.Equal(100, store.State);
165 }

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