public void ThrowInvalidTeleportationLocationExceptionWhenUnitsLocationsOverlap() { //Arrange string planetName = "Earth"; string galaxyName = "MilkyWay"; double latitude = 15d; double longitude = 15d; var ownerMock = Mock.Create <IBusinessOwner>(); var teleportlocationMock = Mock.Create <ILocation>(); Mock.Arrange(() => teleportlocationMock.Planet.Name).Returns(planetName); Mock.Arrange(() => teleportlocationMock.Planet.Galaxy.Name).Returns(galaxyName); var planetUnitMock = Mock.Create <IUnit>(); Mock.Arrange(() => planetUnitMock.CurrentLocation.Planet.Name).Returns(planetName); Mock.Arrange(() => planetUnitMock.CurrentLocation.Planet.Galaxy.Name).Returns(galaxyName); Mock.Arrange(() => planetUnitMock.CurrentLocation.Coordinates.Latitude).Returns(latitude); Mock.Arrange(() => planetUnitMock.CurrentLocation.Coordinates.Longtitude).Returns(longitude); var unitToTeleportMock = Mock.Create <IUnit>(); Mock.Arrange(() => unitToTeleportMock.CurrentLocation.Planet.Name).Returns(planetName); Mock.Arrange(() => unitToTeleportMock.CurrentLocation.Planet.Galaxy.Name).Returns(galaxyName); Mock.Arrange(() => unitToTeleportMock.CurrentLocation.Coordinates.Latitude).Returns(latitude); Mock.Arrange(() => unitToTeleportMock.CurrentLocation.Coordinates.Longtitude).Returns(longitude); var planetUnitsList = new List <IUnit>() { planetUnitMock }; var pathMock = Mock.Create <IPath>(); Mock.Arrange(() => pathMock.TargetLocation.Planet.Name).Returns(planetName); Mock.Arrange(() => pathMock.TargetLocation.Planet.Galaxy.Name).Returns(galaxyName); Mock.Arrange(() => pathMock.Cost.GoldCoins).Returns(10); Mock.Arrange(() => pathMock.Cost.SilverCoins).Returns(10); Mock.Arrange(() => pathMock.Cost.BronzeCoins).Returns(10); Mock.Arrange(() => pathMock.TargetLocation.Planet.Units).Returns(planetUnitsList); var map = new List <IPath>() { pathMock }; var sut = new TeleportationStationFake(ownerMock, map, teleportlocationMock); var targetLocationMock = Mock.Create <ILocation>(); Mock.Arrange(() => targetLocationMock.Coordinates.Latitude).Returns(latitude); Mock.Arrange(() => targetLocationMock.Coordinates.Longtitude).Returns(longitude); Mock.Arrange(() => targetLocationMock.Planet.Name).Returns(planetName); Mock.Arrange(() => targetLocationMock.Planet.Galaxy.Name).Returns(galaxyName); //Act & Assert Assert.ThrowsException <InvalidTeleportationLocationException>(() => sut.TeleportUnit(unitToTeleportMock, targetLocationMock)); }
public void AssignLocationProperlyWhenPassedParametersAreCorrect() { //Arrange var ownerMock = Mock.Create <IBusinessOwner>(); var locationMock = Mock.Create <ILocation>(); var mapMock = Mock.Create <IEnumerable <IPath> >(); var sut = new TeleportationStationFake(ownerMock, mapMock, locationMock); //Act & Assert Assert.AreSame(locationMock, sut.Location); }
public void ThrowLocationNotFoundExceptionWhenTargetGalaxyisNotFoundInTeleportStationLocationsList() { //Arrange string planetName = "Earth"; string galaxyName = "MilkyWay"; var ownerMock = Mock.Create <IBusinessOwner>(); var teleportlocationMock = Mock.Create <ILocation>(); Mock.Arrange(() => teleportlocationMock.Planet.Name).Returns(planetName); Mock.Arrange(() => teleportlocationMock.Planet.Galaxy.Name).Returns(galaxyName); var unitToTeleportMock = Mock.Create <IUnit>(); Mock.Arrange(() => unitToTeleportMock.CurrentLocation.Planet.Name).Returns(planetName); Mock.Arrange(() => unitToTeleportMock.CurrentLocation.Planet.Galaxy.Name).Returns(galaxyName); var pathMock = Mock.Create <IPath>(); Mock.Arrange(() => pathMock.TargetLocation.Planet.Name).Returns(planetName); Mock.Arrange(() => pathMock.TargetLocation.Planet.Galaxy.Name).Returns(galaxyName); Mock.Arrange(() => pathMock.Cost.GoldCoins).Returns(10); Mock.Arrange(() => pathMock.Cost.SilverCoins).Returns(10); Mock.Arrange(() => pathMock.Cost.BronzeCoins).Returns(10); Mock.Arrange(() => pathMock.TargetLocation.Planet.Galaxy.Name).Returns(""); var map = new List <IPath>() { pathMock }; var sut = new TeleportationStationFake(ownerMock, map, teleportlocationMock); var targetLocationMock = Mock.Create <ILocation>(); Mock.Arrange(() => targetLocationMock.Planet.Name).Returns(planetName); Mock.Arrange(() => targetLocationMock.Planet.Galaxy.Name).Returns(galaxyName); }