File tree 2 files changed +16
-20
lines changed
test/Microsoft.Extensions.ML.Tests
2 files changed +16
-20
lines changed Original file line number Diff line number Diff line change 4
4
5
5
using System ;
6
6
using System . IO ;
7
- using System . Threading . Tasks ;
7
+ using System . Threading ;
8
8
using Microsoft . Extensions . DependencyInjection ;
9
9
using Microsoft . Extensions . Logging ;
10
10
using Microsoft . Extensions . Options ;
@@ -48,10 +48,8 @@ public void can_load_model()
48
48
Assert . True ( prediction . Sentiment ) ;
49
49
}
50
50
51
- //TODO: This is a quick test to give coverage of the main scenarios. Refactoring and re-implementing of tests should happen.
52
- //Right now this screams of probably flakeyness
53
51
[ Fact ]
54
- public async Task can_reload_model ( )
52
+ public void can_reload_model ( )
55
53
{
56
54
var services = new ServiceCollection ( )
57
55
. AddOptions ( )
@@ -61,16 +59,14 @@ public async Task can_reload_model()
61
59
var loaderUnderTest = ActivatorUtilities . CreateInstance < FileLoaderMock > ( sp ) ;
62
60
loaderUnderTest . Start ( "testdata.txt" , true ) ;
63
61
64
- var changed = false ;
65
- var changeTokenRegistration = ChangeToken . OnChange (
62
+ using AutoResetEvent changed = new AutoResetEvent ( false ) ;
63
+ using IDisposable changeTokenRegistration = ChangeToken . OnChange (
66
64
( ) => loaderUnderTest . GetReloadToken ( ) ,
67
- ( ) => changed = true ) ;
65
+ ( ) => changed . Set ( ) ) ;
68
66
69
67
File . WriteAllText ( "testdata.txt" , "test" ) ;
70
68
71
- await Task . Delay ( 1000 ) ;
72
-
73
- Assert . True ( changed ) ;
69
+ Assert . True ( changed . WaitOne ( 1000 ) , "FileLoader ChangeToken didn't fire before the allotted time." ) ;
74
70
}
75
71
76
72
Original file line number Diff line number Diff line change @@ -40,12 +40,12 @@ public void can_reload_model()
40
40
var loaderUnderTest = ActivatorUtilities . CreateInstance < UriLoaderMock > ( sp ) ;
41
41
loaderUnderTest . Start ( new Uri ( "http://microsoft.com" ) , TimeSpan . FromMilliseconds ( 1 ) ) ;
42
42
43
- var changed = false ;
44
- var changeTokenRegistration = ChangeToken . OnChange (
43
+ using AutoResetEvent changed = new AutoResetEvent ( false ) ;
44
+ using IDisposable changeTokenRegistration = ChangeToken . OnChange (
45
45
( ) => loaderUnderTest . GetReloadToken ( ) ,
46
- ( ) => changed = true ) ;
47
- Thread . Sleep ( 30 ) ;
48
- Assert . True ( changed ) ;
46
+ ( ) => changed . Set ( ) ) ;
47
+
48
+ Assert . True ( changed . WaitOne ( 1000 ) , "UriLoader ChangeToken didn't fire before the allotted time." ) ;
49
49
}
50
50
51
51
[ Fact ]
@@ -62,12 +62,12 @@ public void no_reload_no_change()
62
62
63
63
loaderUnderTest . Start ( new Uri ( "http://microsoft.com" ) , TimeSpan . FromMilliseconds ( 1 ) ) ;
64
64
65
- var changed = false ;
66
- var changeTokenRegistration = ChangeToken . OnChange (
65
+ using AutoResetEvent changed = new AutoResetEvent ( false ) ;
66
+ using IDisposable changeTokenRegistration = ChangeToken . OnChange (
67
67
( ) => loaderUnderTest . GetReloadToken ( ) ,
68
- ( ) => changed = true ) ;
69
- Thread . Sleep ( 30 ) ;
70
- Assert . False ( changed ) ;
68
+ ( ) => changed . Set ( ) ) ;
69
+
70
+ Assert . False ( changed . WaitOne ( 100 ) , "UriLoader ChangeToken fired but shouldn't have." ) ;
71
71
}
72
72
}
73
73
You can’t perform that action at this time.
0 commit comments