1+ using Microsoft . VisualStudio . TestTools . UnitTesting ;
2+ using Moq ;
3+
14namespace TleGenerator . Tests ;
25
36[ TestClass ]
47public class TLEDataManagerTest
58{
6- Config config = new ( )
9+ private Config config ;
10+ private Mock < ITleDataDownloader > mockTleDataDownloader ;
11+ private Mock < ITleDataCarrier > mockTleDataCarrier ;
12+ private Mock < IFileManager > mockFileManager ;
13+ private Mock < ITleFileParser > mockTleFileParser ;
14+
15+ [ TestInitialize ]
16+ public void Setup ( )
717 {
8- NoradUrl = "fakeUrl" ,
9- Groups = [ "test" ] ,
10- TempFolder = "TestData" ,
11- TempFilesDays = 65000
12- } ;
18+ config = new Config
19+ {
20+ NoradUrl = "fakeUrl" ,
21+ Groups = [ "test" ] ,
22+ TempFolder = "TestData" ,
23+ TempFilesDays = 65000
24+ } ;
25+
26+ mockTleDataDownloader = new Mock < ITleDataDownloader > ( ) ;
27+ mockTleDataCarrier = new Mock < ITleDataCarrier > ( ) ;
28+ mockFileManager = new Mock < IFileManager > ( ) ;
29+ mockTleFileParser = new Mock < ITleFileParser > ( ) ;
30+
31+ mockTleDataCarrier . Setup ( c => c . Get ( "33591" ) ) . Returns ( new Tle { Title = "NOAA 19" , Line1 = "" , Line2 = "" } ) ;
32+ mockTleDataCarrier . Setup ( c => c . Get ( "43013" ) ) . Returns ( new Tle { Title = "NOAA 20" , Line1 = "" , Line2 = "" } ) ;
33+ mockTleDataCarrier . Setup ( c => c . Get ( "54234" ) ) . Returns ( new Tle { Title = "NOAA 21" , Line1 = "" , Line2 = "" } ) ;
34+ mockTleDataCarrier . Setup ( c => c . Get ( "0101" ) ) . Returns ( ( Tle ) null ) ;
35+ }
1336
1437 [ TestMethod ]
15- public void ShouldReturnTLEWhenCatalogNumberIsPresentInGroups ( )
38+ public async Task ShouldReturnTLEWhenCatalogNumberIsPresentInGroups ( )
1639 {
17- TLEDataManager sut = new ( config ) ;
40+ var sut = CreateTleDataManager ( ) ;
1841
19- sut . RetrieveGroupsData ( ) ;
42+ await sut . RetrieveGroupsDataAsync ( config . Groups ) ;
2043
21- var tle = sut . GetTLE ( "33591" ) ;
44+ var tle = await sut . GetTLEAsync ( "33591" ) ;
2245
2346 Assert . IsNotNull ( tle ) ;
2447 Assert . IsTrue ( tle . Title . StartsWith ( "NOAA 19" ) ) ;
2548 }
2649
2750 [ TestMethod ]
28- public void ShouldReturnTLEWhenCatalogNumberIsPresentInTempFolder ( )
51+ public async Task ShouldReturnTLEWhenCatalogNumberIsPresentInTempFolder ( )
2952 {
30- TLEDataManager sut = new ( config ) ;
53+ var sut = CreateTleDataManager ( ) ;
3154
32- sut . RetrieveGroupsData ( ) ;
55+ await sut . RetrieveGroupsDataAsync ( config . Groups ) ;
3356
34- var tle = sut . GetTLE ( "43013" ) ;
57+ var tle = await sut . GetTLEAsync ( "43013" ) ;
3558
3659 Assert . IsNotNull ( tle ) ;
3760 Assert . IsTrue ( tle . Title . StartsWith ( "NOAA 20" ) ) ;
3861 }
3962
4063 [ TestMethod ]
41- public void ShouldReturnTLEWhenCatalogNumberIsNotPresentInTempFolder ( )
64+ public async Task ShouldReturnTLEWhenCatalogNumberIsNotPresentInTempFolder ( )
4265 {
43- config . NoradUrl = "https://celestrak.com/NORAD/elements/gp.php" ;
66+ var sut = CreateTleDataManager ( ) ;
4467
45- TLEDataManager sut = new ( config ) ;
68+ await sut . RetrieveGroupsDataAsync ( config . Groups ) ;
4669
47- sut . RetrieveGroupsData ( ) ;
48-
49- var tle = sut . GetTLE ( "54234" ) ;
70+ var tle = await sut . GetTLEAsync ( "54234" ) ;
5071
5172 Assert . IsNotNull ( tle ) ;
5273 Assert . IsTrue ( tle . Title . StartsWith ( "NOAA 21" ) ) ;
5374 }
5475
5576 [ TestMethod ]
56- public void ShouldReturnNullWhenCatalogNumberIsNotFound ( )
77+ public async Task ShouldReturnNullWhenCatalogNumberIsNotFound ( )
5778 {
58- config . NoradUrl = "https://celestrak.com/NORAD/elements/gp.php" ;
59-
60- TLEDataManager sut = new ( config ) ;
79+ var sut = CreateTleDataManager ( ) ;
6180
62- sut . RetrieveGroupsData ( ) ;
81+ await sut . RetrieveGroupsDataAsync ( config . Groups ) ;
6382
64- var tle = sut . GetTLE ( "0101" ) ;
83+ var tle = await sut . GetTLEAsync ( "0101" ) ;
6584
6685 Assert . IsNull ( tle ) ;
6786 }
68- }
87+
88+ private TleDataManager CreateTleDataManager ( )
89+ {
90+ return new TleDataManager ( mockFileManager . Object , mockTleDataCarrier . Object , mockTleDataDownloader . Object , mockTleFileParser . Object ) ;
91+ }
92+ }
0 commit comments