public void AddingGoldFishAndBabelFishAndAngelFish_UpdatesFishInTank() { //Arrange / Act var fishTank = new FishTank(); fishTank.AddFish(new GoldFish("Neil")); fishTank.AddFish(new BabelFish("Zaphod")); fishTank.AddFish(new AngelFish("Charlies")); //Assert Assert.That(fishTank.Fish.Count, Is.EqualTo(3)); }
public void LoadingXmlWithOneFishPutsFishInTank() { //Arrange / Act var fishTank = new FishTank(); fishTank.AddFish(new GoldFish("Neil")); fishTank.AddFish(new GoldFish("Boris")); fishTank.AddFish(new BabelFish("Zaphod")); fishTank.AddFish(new AngelFish("Charlies")); //Assert Assert.That(fishTank.Feed, Is.EqualTo(0.7)); }
public void Feed_CalculatesTotalFishFoodForAllFishInTank() { //Arrange / Act var fishTank = new FishTank(); fishTank.AddFish(new GoldFish("Neil")); fishTank.AddFish(new GoldFish("Boris")); fishTank.AddFish(new BabelFish("Zaphod")); fishTank.AddFish(new AngelFish("Charlies")); //Assert Assert.That(fishTank.Feed, Is.EqualTo(0.7)); }
public async Task <IActionResult> AddItemToFishTank(AddItemToFishTank model) { // Find fish tank FishTank tank = await _context.FishTank.FirstOrDefaultAsync(t => t.Id == model.Id); if (tank == null) { return(BadRequest($"Fish tank with Id {model.Id} not found")); } // check if it is a fish or an item and get its size int newItemSize = model.Fish != null ? model.Fish.Size : model.Item.Size; // check if the fish tank has the capacity to hold it if (tank.AvailableCapacity < newItemSize) { return(BadRequest($"Fish tank with Id {model.Id} cannot fit the new item")); } // add the new item if (model.Fish != null) { tank.AddFish(model.Fish); } else { tank.AddItem(model.Item); } await _context.SaveChangesAsync(); return(Ok(tank)); }
static void Main(string[] args) { var angelFish = new AngelFish(0.3f); var babelFish = new BabelFish(0.5f); var goldFish = new GoldFish(1.0f); var eviesFishTank = new FishTank(); eviesFishTank.AddFish(angelFish); eviesFishTank.AddFish(babelFish); eviesFishTank.AddFish(goldFish); var feedingTimeMessage = eviesFishTank.Feed(); Console.WriteLine("Hello my sweet fishies!"); Console.BackgroundColor = ConsoleColor.DarkBlue; Console.WriteLine(feedingTimeMessage); }
public void AddingGoldFish_AddsFishToTank() { //Arrange / Act var fishTank = new FishTank(); fishTank.AddFish(new GoldFish("Goldy")); //Assert Assert.That(fishTank.Fish.Count, Is.EqualTo(1)); Assert.That(fishTank.Fish.ElementAt(0).Name, Is.EqualTo("Goldy")); }
public void CanGetAllFishInTheFishTank_ShouldReturnFourFish() { // arrange // act _fishTank.AddFish(_goldFish); _fishTank.AddFish(_angelFish); _fishTank.AddFish(_babelFish); _fishTank.AddFish(_fakeFish); var allFishInTheTank = _fishTank.GetFish(); // assert Assert.That(_fishTank, Is.Not.Null); Assert.That(allFishInTheTank, Is.Not.Null); Assert.AreEqual(allFishInTheTank.Count(), 4); }
public async Task <IActionResult> AddToNextAvailable(AddFishModel model) { FishTank tank = await NextAvailableFishTankWithCapacity(model.Fish.Size); if (tank == null) { return(BadRequest("No Tank found that can hold this fish, please add a new tank")); } tank.AddFish(model.Fish); await _context.SaveChangesAsync(); return(Ok(tank)); }
public async Task <IActionResult> ReplaceFishTank([FromBody] UpdateFishTankCapacityModel model) { // Find fish tank FishTank tank = await _context.FishTank.FirstOrDefaultAsync(t => t.Id == model.Id); if (tank == null) { return(BadRequest($"Fish tank with Id {model.Id} not found")); } // Check if the old fish can fit in the new capacity if (tank.Fishes != null && tank.Fishes.Count() > 0) { // Find the size of all the fishes int fishSize = tank.Fishes.ToList().Select(f => f.Size).Aggregate((sum, val) => sum + val); if (fishSize > model.Capacity) { return(BadRequest($"Fish tank with Id {model.Id} not big enough to hold the fishes of the old tank")); } } // The new tank to replace the old FishTank newTank = new FishTank(); // deocaration and plants are discarded when replacing the fish tank newTank.Capacity = model.Capacity; newTank.AddFish(tank.Fishes); // remove the old fishes from the old tank tank.RemoveFish(tank.Fishes.Select(f => f.Id)); // add and save the new fish tank await _context.FishTank.AddAsync(newTank); await _context.SaveChangesAsync(); return(Ok(newTank)); }