public void EatTest() { Chicken C = new Chicken("Big Bird"); string food = C.Eat(); Assert.AreEqual(food, "I eat veggies"); }
public void PeckTest() { //arrange Chicken f = new Chicken(); //act string feed = f.Eat(); //assert Assert.AreEqual(feed, "Peck, Peck, Peck <<<<......"); }
static void Main(string[] args) { //I created a farm in the Main() method. I did not include my //animal classes. I couldn't find a way create a messase for //namespace that is missing. try { Animal dog = new Animal(); dog.Speak(); Horse horse = new Horse(); horse.Speak(); horse.Move(); horse.Action(); horse.Eat(); Console.ReadKey(); Goat goat = new Goat(); goat.Speak(); goat.Move(); goat.Action(); goat.Eat(); Console.ReadKey(); Pig pig = new Pig(); pig.Speak(); pig.Move(); pig.Action(); pig.Eat(); Console.ReadKey(); Chicken chicken = new Chicken(); chicken.Speak(); chicken.Move(); chicken.Action(); chicken.Eat(); Console.ReadKey(); } catch (System.Exception e) { Console.WriteLine(e.Message); } }
static void Main(string[] args) { Pig Bacon = new Pig(); Bacon.name = "Bacon"; Bacon.printbase(); Bacon.Speak(); Bacon.Eat(); Bacon.poop(); Console.WriteLine(); Cow Henry = new Cow(); Henry.name = "Henry"; Henry.printbase(); Henry.Speak(); Henry.Eat(); Henry.poop(); Console.WriteLine(); Horse Stephen = new Horse(); Stephen.name = "Stephen"; Stephen.printbase(); Stephen.Speak(); Stephen.Eat(); Stephen.poop(); Console.WriteLine(); Chicken Rex = new Chicken(); Rex.name = "Rex"; Rex.printbase(); Rex.Speak(); Rex.Eat(); Rex.poop(); }
static void Main(string[] args) { Console.WriteLine("---------------------------------"); #region S Console.WriteLine("S - Responsabilidad Simple"); Console.WriteLine("Incorrecto"); // Una sola clase tiene la responsabilidad del objeto // y la de almacenarlo en la base de datos eso esta en // desacuerdo con el principio var carBad = new sb.Car("Renault"); carBad.saveCarDB(carBad); Console.WriteLine("Correcto"); // Lo correcto es que cada responsabilidad sea separada // en clases diferentes var car = new Car("Renault"); var cadDB = new CarDb(); cadDB.saveCarDB(car); #endregion Console.WriteLine("---------------------------------"); Console.WriteLine("0 - Abierto Cerrado"); #region O Console.WriteLine("Incorrecto"); // Si agregamos un item en el arreglo carsBadArray se debe // modificar el método viewCostCarBad, lo cual no cumple // el principio Abierto/Cerrado // Para cada nuevo carro se debería modificar la funcionalidad sb.Car[] carsBadArray = { new sb.Car("Renault"), new sb.Car("Audi")//, //new sb.Car("Susuzi") }; viewCostCarBad(carsBadArray); Console.WriteLine("Correcto"); // Si agregamos un nuevo item al arreglo carsArray no será // necesario hacer modificaciones en el médodo viewCostCar AbstractCar[] carsArray = { new RenaultModel(), new AudiModel()//, //new SusukiModel() }; viewCostCar(carsArray); #endregion Console.WriteLine("---------------------------------"); Console.WriteLine("L - Suplantación de Liskov"); // Llamamos al método Sustitution, para evaluar el comportamiento Sustitution(carsArray); Console.WriteLine("---------------------------------"); #region I Console.WriteLine("I - Segregación de interfaces"); Console.WriteLine("Incorrecto"); // Cuando la interfaz tiene metodos que la clase no debe implementar // estos generan comportamientos innecesarios que no deberian tener ChickenBad chickenBad = new ChickenBad(); chickenBad.Eat(); try{ chickenBad.Fly(); } catch (Exception ex) { Console.WriteLine(ex.Message); } Console.WriteLine("Correcto"); // Cuando se dividen las interfaces las implementaciones no tienen // funcionalidades que no necesitan Chicken chicken = new Chicken(); chicken.Eat(); //chicken.Fly(); No es implementado en la clase Chicken #endregion Console.WriteLine("---------------------------------"); #region D Console.WriteLine("D - Inversión de dependencias"); // Cuando los sistemas son bastante grandes se utiliza // inyección de dependencias para cargar modulos Console.WriteLine("Incorrecto"); // Si por alguna razón cambio el servicio de acceso a datos // debo modificar todas las instancias del accesso DataBadService dataBadService = new DataBadService(); DataBadAccess dataBadAccess = new DataBadAccess(dataBadService); dataBadAccess.GetData("Carros"); Console.WriteLine("Correcto"); // Cuando se hace usando las interfaces no es necesario cambiar todas // las instancias, ya que utilizamos la abstracción no la concreción // Puede intercambiar ApiService con DataBaseService ApiService service = new ApiService(); //DataBaseService service = new DataBaseService(); DataAccess dataAccess = new DataAccess(service); dataAccess.GetData("Carros"); #endregion }
public void CanChickenNotEat() { Chicken chicken = new Chicken(); Assert.False(chicken.Eat()); }