butoff

LastArmy

Apr 18th, 2018
288
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 4.16 KB | None | 0 0
  1. using NUnit.Framework;
  2.  
  3. [TestFixture]
  4. public class MissionControllerTests
  5. {
  6.     private MissionController sut;
  7.     private IArmy army;
  8.     private IWareHouse warehouse;
  9.  
  10.     [SetUp]
  11.     public void TestInit()
  12.     {
  13.         this.army = new Army();
  14.         this.warehouse = new WareHouse();
  15.  
  16.         this.sut = new MissionController(this.army, warehouse);
  17.     }
  18.  
  19.     [Test]
  20.     public void PerformMissionEnqueuesMissionCorrectly()
  21.     {
  22.         //Act
  23.         this.sut.PerformMission(new Easy(50));
  24.  
  25.         //Assert
  26.         Assert.AreEqual(1, sut.Missions.Count);
  27.     }
  28.  
  29.     [Test]
  30.     public void PerformMissionWithoutEnoughSoldiersReturnsCorrectMessage()
  31.     {
  32.         // Arrange
  33.         var mission = new Hard(20);
  34.  
  35.         // Act
  36.         var message = this.sut.PerformMission(mission).Trim();
  37.  
  38.         // Assert
  39.         Assert.AreEqual($"Mission on hold - {mission.Name}", message);
  40.     }
  41.  
  42.     [Test]
  43.     public void PerformMissionCannotEnqueMoreThanThreeMissionsOnHold()
  44.     {
  45.         // Arrange
  46.         var mission1 = new Hard(20);
  47.         var mission2 = new Hard(20);
  48.         var mission3 = new Hard(20);
  49.         var mission4 = new Hard(20);
  50.  
  51.         // Act
  52.         this.sut.PerformMission(mission1);
  53.         this.sut.PerformMission(mission2);
  54.         this.sut.PerformMission(mission3);
  55.         this.sut.PerformMission(mission4);
  56.  
  57.         // Assert
  58.         Assert.AreEqual(3, this.sut.Missions.Count);
  59.     }
  60.  
  61.     [Test]
  62.     public void PerformMissionWithEnoughSoldiersReturnsCorrectMessage()
  63.     {
  64.         // Arrange
  65.         var mission = new Easy(20);
  66.  
  67.         this.warehouse.AddAmmunitions("Gun", 10);
  68.         this.warehouse.AddAmmunitions("AutomaticMachine", 10);
  69.         this.warehouse.AddAmmunitions("Helmet", 10);
  70.  
  71.         var soldier3 = new Ranker("Soldier 3", 30, 50, 50);
  72.         this.army.AddSoldier(soldier3);
  73.         this.warehouse.EquipArmy(this.army);
  74.  
  75.         // Act
  76.         var message = this.sut.PerformMission(mission).Trim();
  77.  
  78.         // Assert
  79.         Assert.AreEqual($"Mission completed - {mission.Name}", message);
  80.     }
  81.  
  82.     [Test]
  83.     public void PerformMissionSuccessfullyIncreasesSucceededMissionsCounter()
  84.     {
  85.         // Arrange
  86.         var mission = new Easy(20);
  87.  
  88.         this.warehouse.AddAmmunitions("Gun", 10);
  89.         this.warehouse.AddAmmunitions("AutomaticMachine", 10);
  90.         this.warehouse.AddAmmunitions("Helmet", 10);
  91.  
  92.         var soldier3 = new Ranker("Soldier 3", 30, 50, 50);
  93.         this.army.AddSoldier(soldier3);
  94.         this.warehouse.EquipArmy(this.army);
  95.  
  96.         // Act
  97.         var message = this.sut.PerformMission(mission).Trim();
  98.  
  99.         // Assert
  100.         Assert.AreEqual(1, this.sut.SuccessMissionCounter);
  101.     }
  102.  
  103.     [Test]
  104.     public void PerformMissionDeclinesFirstWaitingMissionWhenTheWaitingOnesAreMoreThanThree()
  105.     {
  106.         // Arrange
  107.         var mission = new Hard(20);
  108.         this.sut.PerformMission(mission).Trim();
  109.         this.sut.PerformMission(mission).Trim();
  110.         this.sut.PerformMission(mission).Trim();
  111.  
  112.         // Act
  113.         var message = this.sut.PerformMission(mission).Trim();
  114.  
  115.         // Assert
  116.         Assert.IsTrue(message.StartsWith($"Mission declined - {mission.Name}"));
  117.     }
  118.  
  119.     [Test]
  120.     public void FailMissionsOnHoldIncreasesFailedMissionCounterCorrectly()
  121.     {
  122.         // Arrange
  123.         var mission = new Hard(20);
  124.         this.sut.PerformMission(mission).Trim();
  125.  
  126.         // Act
  127.         this.sut.FailMissionsOnHold();
  128.  
  129.         // Assert
  130.         Assert.AreEqual(1, this.sut.FailedMissionCounter);
  131.     }
  132.  
  133.     [Test]
  134.     public void FailedMissionCounterDisplaysCorrectlyIfNone()
  135.     {
  136.         //Act
  137.         this.sut.PerformMission(new Easy(0));
  138.  
  139.         //Assert
  140.         Assert.AreEqual(0, this.sut.FailedMissionCounter);
  141.     }
  142.  
  143.     [Test]
  144.     public void FailIfMoreThanThreeMissions()
  145.     {
  146.         //Arrange
  147.         this.sut.Missions.Enqueue(new Easy(0));
  148.         this.sut.Missions.Enqueue(new Easy(0));
  149.         this.sut.Missions.Enqueue(new Easy(0));
  150.  
  151.         //Act
  152.         this.sut.PerformMission(new Easy(0));
  153.  
  154.         //Assert
  155.         Assert.AreEqual(this.sut.FailedMissionCounter, 1);
  156.     }
  157. }
Advertisement
Add Comment
Please, Sign In to add comment