1- using System ;
1+ using System . Linq ;
22using Bll . Domain . Interfaces ;
33using Bll . Domain . Entities ;
44using Moq ;
55using NUnit . Framework ;
66using Bll . Domain . Models ;
7+ using System . Collections . Generic ;
8+ using System ;
79
810namespace Bll . Domain . Tests . EntitiesTests
911{
@@ -12,7 +14,7 @@ public class DeviceManagerTests
1214 {
1315 private Mock < ITimeProvider > _time ;
1416
15- private Mock < IResults > _resultChannel ;
17+ private Mock < IResults > _results ;
1618
1719 private Mock < IFlowProvider > _flow ;
1820
@@ -21,7 +23,7 @@ public void Setup()
2123 {
2224 _time = new Mock < ITimeProvider > ( ) ;
2325 _flow = new Mock < IFlowProvider > ( ) ;
24- _resultChannel = new Mock < IResults > ( ) ;
26+ _results = new Mock < IResults > ( ) ;
2527 }
2628
2729 [ Test ]
@@ -44,7 +46,7 @@ public void TakeRequest_NormalCondition_RequestOnDevice()
4446 TimeOfDeviceWillBeFree = timeOfDeviceWillBeFree ,
4547 } ;
4648
47- var deviceManager = new DeviceManager ( _time . Object , _flow . Object , _resultChannel . Object ) ;
49+ var deviceManager = new DeviceManager ( _time . Object , _flow . Object , _results . Object ) ;
4850
4951 //Act
5052 deviceManager . TakeRequest ( request , device ) ;
@@ -55,5 +57,55 @@ public void TakeRequest_NormalCondition_RequestOnDevice()
5557 Assert . AreEqual ( device . IsWorking , true ) ;
5658 Assert . That ( device . TimeOfDeviceWillBeFree , Is . EqualTo ( expectedTimeOfDeviceWillBeFree ) . Within ( 0.000001 ) ) ;
5759 }
60+
61+ [ Test ]
62+ public void FreeDevice_NormalCondition_DeviceIsFree ( )
63+ {
64+ //Arrange
65+ double timeOfDeviceWillBeFree = 0.52045 ;
66+
67+ var requestOnDevice = new Request ( 4 , 23 , 0.45667 , null ) ;
68+
69+ var device = new Device ( )
70+ {
71+ DeviceId = 7 ,
72+ IsWorking = true ,
73+ Lambda = 99 ,
74+ Request = requestOnDevice ,
75+ TimeOfDeviceWillBeFree = timeOfDeviceWillBeFree ,
76+ } ;
77+ _results . Setup ( r => r . Processed ) . Returns ( new List < Request > ( ) ) ;
78+ _time . SetupAllProperties ( ) ;
79+
80+ var deviceManager = new DeviceManager ( _time . Object , _flow . Object , _results . Object ) ;
81+ //Act
82+ deviceManager . FreeDevice ( device ) ;
83+ //Assert
84+ Assert . AreEqual ( device . IsWorking , false ) ;
85+ Assert . AreEqual ( _time . Object . Now , device . TimeOfDeviceWillBeFree ) ;
86+ Assert . AreEqual ( _results . Object . Processed . Last ( ) . EndTime , _time . Object . Now ) ;
87+ Assert . AreEqual ( _results . Object . Processed . Count , 1 ) ;
88+ }
89+
90+ [ Test ]
91+ public void FreeDevice_RequestOnDeviceIsNull_ThrowArgumentNullException ( )
92+ {
93+ //Arrange
94+ Request ? requestOnDevice = null ;
95+
96+ var device = new Device ( )
97+ {
98+ DeviceId = 7 ,
99+ IsWorking = true ,
100+ Lambda = 99 ,
101+ Request = requestOnDevice ,
102+ TimeOfDeviceWillBeFree = 0.4d ,
103+ } ;
104+
105+ var deviceManager = new DeviceManager ( _time . Object , _flow . Object , _results . Object ) ;
106+ //Act
107+ //Assert
108+ Assert . Throws < ArgumentNullException > ( ( ) => deviceManager . FreeDevice ( device ) ) ;
109+ }
58110 }
59111}
0 commit comments