diff options
Diffstat (limited to 'src/System.ComponentModel.TypeConverter/tests')
-rw-r--r-- | src/System.ComponentModel.TypeConverter/tests/System.ComponentModel.TypeConverter.Tests.csproj | 4 | ||||
-rw-r--r-- | src/System.ComponentModel.TypeConverter/tests/TimerTests.cs | 67 |
2 files changed, 68 insertions, 3 deletions
diff --git a/src/System.ComponentModel.TypeConverter/tests/System.ComponentModel.TypeConverter.Tests.csproj b/src/System.ComponentModel.TypeConverter/tests/System.ComponentModel.TypeConverter.Tests.csproj index c972549468..cbe82eb548 100644 --- a/src/System.ComponentModel.TypeConverter/tests/System.ComponentModel.TypeConverter.Tests.csproj +++ b/src/System.ComponentModel.TypeConverter/tests/System.ComponentModel.TypeConverter.Tests.csproj @@ -61,7 +61,6 @@ <Compile Include="SByteConverterTests.cs" /> <Compile Include="SingleConverterTests.cs" /> <Compile Include="StringConverterTests.cs" /> - <Compile Include="TimerTests.cs" /> <Compile Include="TimeSpanConverterTests.cs" /> <Compile Include="TypeConverterAttributeTests.cs" /> <Compile Include="TypeConverterTests.cs" /> @@ -73,6 +72,9 @@ <Compile Include="UInt64ConverterTests.cs" /> <Compile Include="UriTypeConverterTests.cs" /> </ItemGroup> + <ItemGroup Condition="'$(TargetGroup)'=='netstandard1.7'"> + <Compile Include="TimerTests.cs" /> + </ItemGroup> <ItemGroup> <ProjectReference Include="..\pkg\System.ComponentModel.TypeConverter.pkgproj"> </ProjectReference> diff --git a/src/System.ComponentModel.TypeConverter/tests/TimerTests.cs b/src/System.ComponentModel.TypeConverter/tests/TimerTests.cs index fbf2e0d8bc..3986718796 100644 --- a/src/System.ComponentModel.TypeConverter/tests/TimerTests.cs +++ b/src/System.ComponentModel.TypeConverter/tests/TimerTests.cs @@ -6,10 +6,73 @@ using Xunit; using System.Threading; using System.Timers; +using TestTimer = System.Timers.Timer; + namespace System.Timers.Tests { - public class TimerTests + public class TimerTests : IDisposable { - + private TestTimer _timer; + + [Theory] + [InlineData(0)] + [InlineData(-0.5D)] + [InlineData(-1)] + [InlineData(double.MinValue)] + [InlineData(double.MaxValue)] + public void NegativeTests(double interval) + { + Assert.Throws<ArgumentException>(() => { _timer = new TestTimer(interval); }); + } + + [Fact] + public void TestTimerStartAutoReset() + { + CountdownEvent cde = new CountdownEvent(1); + int result = 0; + _timer = new TestTimer(100); + + // Test defaults. + Assert.Equal(100, _timer.Interval); + Assert.True(_timer.AutoReset); + + _timer.AutoReset = false; + _timer.Elapsed += (sender, e) => { cde.Signal(); result = ++result; }; + _timer.Start(); + + Assert.True(_timer.Enabled); + cde.Wait(); + + // Only elapsed once. + Assert.Equal(1, result); + + cde = new CountdownEvent(10); + _timer.AutoReset = true; + + cde.Wait(); + cde.Dispose(); + + _timer.Stop(); + // Atleast elapsed 10 times. + Assert.True(result >= 10); + } + + [Theory] + [InlineData(int.MaxValue)] + [InlineData(0.5D)] + public void TestInterval(double interval) + { + _timer = new TestTimer(interval); + Assert.Equal(Math.Ceiling(interval), _timer.Interval); + + _timer.Interval = interval; + Assert.Equal(interval, _timer.Interval); + } + + public void Dispose() + { + if (_timer != null) + _timer.Close(); + } } } |