static void Main(string[] args) { var basicCar = new Car(); Console.WriteLine($"Basic car description: {basicCar.GetDescription()}"); Console.WriteLine($"Basic car cost: {basicCar.GetCost()}"); Console.WriteLine(); var mattePaintCar = new MattePaint(new Car()); Console.WriteLine($"Matte paint car description: {mattePaintCar.GetDescription()}"); Console.WriteLine($"Matte paint car cost: {mattePaintCar.GetCost()}"); Console.WriteLine(); var familyCar = new SeatCover(new ClearCoat(new Car())); Console.WriteLine($"Family car description: {familyCar.GetDescription()}"); Console.WriteLine($"Family car car cost: {familyCar.GetCost()}"); Console.WriteLine(); var sportsCar = new RearSpoiler(new SeatCover(new ClearCoat(new MattePaint(new Car())))); Console.WriteLine($"Sports car description: {sportsCar.GetDescription()}"); Console.WriteLine($"Sports car car cost: {sportsCar.GetCost()}"); Console.WriteLine(); Console.ReadKey(); }
public void GetPrice_HondaCity_SingleDecorator_Test() { IVehicle vehicle = new HondaCity(); VehicleDecorator vehicleDecorator = new SeatCover(vehicle); Assert.AreEqual(vehicleDecorator.GetPrice(), 106000); }
public void GetTotalPrice_Amaze_MultipleDecorator_Test() { IVehicle vehicle = new Amaze(); VehicleDecorator vehicleDecorator = new SeatCover(vehicle); vehicleDecorator = new Spoiler(vehicleDecorator); Assert.AreEqual(vehicle.GetDescription(), "Petrol engine is 1199 cc"); Assert.AreEqual(vehicleDecorator.GetPrice(), 211000); }
public void GetTotalPrice_HondaCity_MultipleDecorator_Test() { IVehicle vehicle = new HondaCity(); VehicleDecorator vehicleDecorator = new SeatCover(vehicle); vehicleDecorator = new Spoiler(vehicleDecorator); Assert.AreEqual(vehicle.GetDescription(), "Petrol engine is 1497 cc"); Assert.AreEqual(vehicleDecorator.GetPrice(), 111000); }
static void Main(string[] args) { IVehicle car = new HondaCity(); VehicleDecorator vehicleDecorator = new SeatCover(car); vehicleDecorator = new Spoiler(vehicleDecorator); Console.WriteLine("Total Price : " + vehicleDecorator.GetPrice()); Console.ReadLine(); }