public void ReturnTheTotalAmountOfProfits_WhenTheArgumentPassedIsTheActualOwnerOfTheStation() { // arrange int id = 1; var ownerStub = new Mock <IBusinessOwner>(); ownerStub.Setup(x => x.IdentificationNumber).Returns(id); var locationStub = new Mock <ILocation>(); var map = new List <IPath>(); var station = new FakeTeleportStation( ownerStub.Object, map, locationStub.Object ); var resourcesBeforeCollecting = station.Resources; // act var returnedObj = station.PayProfits(ownerStub.Object); // assert Assert.AreEqual(returnedObj.BronzeCoins, resourcesBeforeCollecting.BronzeCoins); Assert.AreEqual(returnedObj.GoldCoins, resourcesBeforeCollecting.GoldCoins); Assert.AreEqual(returnedObj.SilverCoins, resourcesBeforeCollecting.SilverCoins); }
public void SetUpResourcesToNewResourcesInstanceCorrectly_WhenObjectIsConstructed() { // arrange var ownerStub = new Mock <IBusinessOwner>(); var galacticMapStub = new List <IPath>(); var locationStub = new Mock <ILocation>(); // act var station = new FakeTeleportStation(ownerStub.Object, galacticMapStub, locationStub.Object); // assert Assert.IsInstanceOf <Resources>(station.Resources); }
public void SetUpLocationCorrectly_WhenObjectIsConstructed() { // arrange var ownerStub = new Mock <IBusinessOwner>(); var galacticMapStub = new List <IPath>(); var locationStub = new Mock <ILocation>(); // act var station = new FakeTeleportStation(ownerStub.Object, galacticMapStub, locationStub.Object); // assert Assert.AreSame(locationStub.Object, station.Location); }
public void RemoveUnitToTeleportFromCurrentLocationUnits_WhenUnitIsTeleportedSuccesfully() { // arrange var ownerStub = new Mock <IBusinessOwner>(); // setting up stations current location var stationLocationStub = new Mock <ILocation>(); string stationLocationPlanetName = "Mars"; string stationLocationGalaxyName = "Milky Way"; stationLocationStub.Setup(x => x.Planet.Name) .Returns(stationLocationPlanetName); stationLocationStub.Setup(x => x.Planet.Galaxy.Name) .Returns(stationLocationGalaxyName); // setting up unit to teleport var unitToTeleportStub = new Mock <IUnit>(); unitToTeleportStub.Setup(x => x.CurrentLocation) .Returns(stationLocationStub.Object); unitToTeleportStub.Setup(x => x.CanPay(It.IsAny <IResources>())) .Returns(true); var payResources = new Mock <IResources>(); uint coinsValues = 10; payResources.Setup(x => x.BronzeCoins).Returns(coinsValues); payResources.Setup(x => x.SilverCoins).Returns(coinsValues); payResources.Setup(x => x.GoldCoins).Returns(coinsValues); unitToTeleportStub.Setup(x => x.Pay(It.IsAny <IResources>())) .Returns(payResources.Object); var currentLocationUnits = new List <IUnit>() { unitToTeleportStub.Object }; stationLocationStub.Setup(x => x.Planet.Units) .Returns(currentLocationUnits); // setting up target location string targetLocationPlanetName = "Earth"; string targetLocationGalaxyName = "SomeGalaxy"; var targetLocationStub = new Mock <ILocation>(); targetLocationStub.Setup(x => x.Planet.Name) .Returns(targetLocationPlanetName); targetLocationStub.Setup(x => x.Planet.Galaxy.Name) .Returns(targetLocationGalaxyName); // You were up to here brat ;) var pathTargetLocation = new Mock <ILocation>(); pathTargetLocation.Setup(x => x.Planet.Name) .Returns(targetLocationPlanetName); pathTargetLocation.Setup(x => x.Planet.Galaxy.Name) .Returns(targetLocationGalaxyName); var planetUnits = new List <IUnit>(); pathTargetLocation.Setup(x => x.Planet.Units) .Returns(planetUnits); // setting up target path var pathStub = new Mock <IPath>(); pathStub.Setup(x => x.TargetLocation) .Returns(pathTargetLocation.Object); var pathCostStub = new Mock <IResources>(); pathStub.Setup(x => x.Cost).Returns(pathCostStub.Object); // setting up galactic map var galacticMapStub = new List <IPath>() { pathStub.Object }; var station = new FakeTeleportStation( ownerStub.Object, galacticMapStub, stationLocationStub.Object); // act station.TeleportUnit(unitToTeleportStub.Object, targetLocationStub.Object); // assert Assert.AreEqual(0, station.Location.Planet.Units.Count); }