public void CreatePlants_WillFailIfPositionAlreadyTaken() { var given = new List <Event> { new CreateBoardAccepted(20, 20, new List <Herbivore>(), new List <Carnivore>(), Message.CausationId, Message.CorrelationId, Message.CreatedOn), new CreatePlantAccepted("plantId", 2, 3, Message) }; var when = new CreatePlants(2, 3, "plantId", Message.Id); Execute(given, when, typeof(Surface.PositionAlreadyTakenException), events => new Surface(events, new Random())); }
public void CreatePlants_HaveRightLocation() { var given = new List <Event> { new CreateBoardAccepted(20, 20, new List <Herbivore>(), new List <Carnivore>(), Message.CausationId, Message.CorrelationId, Message.CreatedOn) }; var when = new CreatePlants(2, 3, "test_plant", Message.Id); var then = new List <Event> { new CreatePlantAccepted("test_plant", 2, 3, Message) }; var results = Execute(given, when, then, events => new Surface(events, new Random())); var carnivores = results.Select(r => (CreatePlantAccepted)r).ToList(); foreach (var carnivore in carnivores) { Assert.Single(carnivores, c => c.X == carnivore.X && c.Y == carnivore.Y); } }