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

더 자세히 ...

클래스

class  CpuUsageProvider

Public 멤버 함수

void ThreadOptions_NormalizeRepairsInvalidValues ()
void ThreadJobOptions_NormalizeRepairsInvalidValues ()
void FixedAndOverflowPolicies_ReturnExpectedDelays ()
void AdaptiveCpuPolicy_ReturnsDelayByCpuUsage (double cpuUsage, int expectedDelay)
void CoreAssignmentFactories_ExposeExpectedFlags ()
void ThreadingRegistration_UsesFixedPolicyWhenCpuUsageProviderIsMissing ()
void ThreadOptions_NormalizeRepairsInvalidStopTimeout ()

상세한 설명

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

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

멤버 함수 문서화

◆ AdaptiveCpuPolicy_ReturnsDelayByCpuUsage()

void Dreamine.FullKit.Tests.Threading.ThreadingPolicyTests.AdaptiveCpuPolicy_ReturnsDelayByCpuUsage ( double cpuUsage,
int expectedDelay )
inline

Adaptive Cpu Policy Returns Delay By Cpu Usage 작업을 수행합니다.

매개변수
cpuUsagecpu Usage에 사용할 double 값입니다.
expectedDelayexpected Delay에 사용할 int 값입니다.

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

117 {
118 var policy = new AdaptiveCpuCyclePolicy(new CpuUsageProvider(cpuUsage));
119 var options = new DreamineThreadOptions { IntervalMs = 0, UseAdaptiveCpuDelay = true };
120 var context = new DreamineThreadCycleContext("worker", 1, 1, null, false, DateTimeOffset.UtcNow);
121
122 var delay = policy.GetDelayMs(options, DreamineThreadCoreAssignment.None(), context);
123
124 Assert.Equal(expectedDelay, delay);
125 }

◆ CoreAssignmentFactories_ExposeExpectedFlags()

void Dreamine.FullKit.Tests.Threading.ThreadingPolicyTests.CoreAssignmentFactories_ExposeExpectedFlags ( )
inline

Core Assignment Factories Expose Expected Flags 작업을 수행합니다.

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

137 {
138 Assert.False(DreamineThreadCoreAssignment.None().UseAffinity);
139 Assert.True(DreamineThreadCoreAssignment.Dedicated(2, true).IsDedicatedWorker);
140 Assert.True(DreamineThreadCoreAssignment.Overflow().IsOverflowPolling);
141 Assert.True(new DreamineThreadingOptions().RegisterWindowsServices);
142 }

◆ FixedAndOverflowPolicies_ReturnExpectedDelays()

void Dreamine.FullKit.Tests.Threading.ThreadingPolicyTests.FixedAndOverflowPolicies_ReturnExpectedDelays ( )
inline

Fixed And Overflow Policies Return Expected Delays 작업을 수행합니다.

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

78 {
79 var options = new DreamineThreadOptions { IntervalMs = 25, OverflowPollingIntervalMs = 80 };
80 var context = new DreamineThreadCycleContext("worker", 1, 1, null, false, DateTimeOffset.UtcNow);
81
82 Assert.Equal(25, new FixedIntervalCyclePolicy().GetDelayMs(options, DreamineThreadCoreAssignment.None(), context));
83 Assert.Equal(80, new FixedIntervalCyclePolicy().GetDelayMs(options, DreamineThreadCoreAssignment.Overflow(), context));
84 Assert.Equal(80, new OverflowPollingPolicy().GetDelayMs(options, DreamineThreadCoreAssignment.None(), context));
85 }

◆ ThreadingRegistration_UsesFixedPolicyWhenCpuUsageProviderIsMissing()

void Dreamine.FullKit.Tests.Threading.ThreadingPolicyTests.ThreadingRegistration_UsesFixedPolicyWhenCpuUsageProviderIsMissing ( )
inline

Threading Registration Uses Fixed Policy When Cpu Usage Provider Is Missing 작업을 수행합니다.

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

154 {
155 DMContainer.Reset();
156
157 try
158 {
159 DreamineThreadingRegistration.Register(new DreamineThreadingOptions
160 {
161 UseAdaptiveCpuPolicy = true
162 });
163
164 Assert.IsType<FixedIntervalCyclePolicy>(
165 DMContainer.Resolve<IThreadCyclePolicy>());
166 Assert.NotNull(DMContainer.Resolve<IDreamineThreadManager>());
167 }
168 finally
169 {
170 DMContainer.Reset();
171 }
172 }

◆ ThreadJobOptions_NormalizeRepairsInvalidValues()

void Dreamine.FullKit.Tests.Threading.ThreadingPolicyTests.ThreadJobOptions_NormalizeRepairsInvalidValues ( )
inline

Thread Job Options Normalize Repairs Invalid Values 작업을 수행합니다.

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

57 {
58 var options = new DreamineThreadJobOptions
59 {
60 Name = " ",
61 IntervalMs = -1
62 }.Normalize();
63
64 Assert.Equal("DreamineThreadJob", options.Name);
65 Assert.Equal(10, options.IntervalMs);
66 }

◆ ThreadOptions_NormalizeRepairsInvalidStopTimeout()

void Dreamine.FullKit.Tests.Threading.ThreadingPolicyTests.ThreadOptions_NormalizeRepairsInvalidStopTimeout ( )
inline

Thread Options Normalize Repairs Invalid Stop Timeout 작업을 수행합니다.

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

184 {
185 var options = new DreamineThreadOptions
186 {
187 StopTimeout = TimeSpan.Zero
188 }.Normalize();
189
190 Assert.Equal(TimeSpan.FromSeconds(2), options.StopTimeout);
191 }

◆ ThreadOptions_NormalizeRepairsInvalidValues()

void Dreamine.FullKit.Tests.Threading.ThreadingPolicyTests.ThreadOptions_NormalizeRepairsInvalidValues ( )
inline

Thread Options Normalize Repairs Invalid Values 작업을 수행합니다.

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

32 {
33 var options = new DreamineThreadOptions
34 {
35 Name = "",
36 IntervalMs = -5,
37 AutoThreadsPerCore = 0,
38 OverflowPollingIntervalMs = -1
39 }.Normalize();
40
41 Assert.Equal("DreamineThread", options.Name);
42 Assert.Equal(10, options.IntervalMs);
43 Assert.Equal(2, options.AutoThreadsPerCore);
44 Assert.Equal(100, options.OverflowPollingIntervalMs);
45 }

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