public void RemoteControlWithUndoTest() { RemoteControlWithUndo remoteControl = new RemoteControlWithUndo(); Light kitchenLight = new Light("Kitchen light"); LightOnCommand kitchenLightOnCommand = new LightOnCommand(kitchenLight); LightOffCommand kitchenLightOffCommand = new LightOffCommand(kitchenLight); remoteControl.SetCommand(0, kitchenLightOnCommand, kitchenLightOffCommand); remoteControl.OnButtonWasPushed(0); remoteControl.OffButtonWasPushed(0); Assert.AreEqual("Kitchen light is On", remoteControl.UndoButtonWasPushed()); }
static void Main(string[] args) { RemoteControl remoteControl = new RemoteControl(); Light kitchenLight = new Light("Kitchen light"); Light livingRoomLight = new Light("Living room light"); Stereo livingRoomStereo = new Stereo("Living room stereo"); CeilingFan ceilingFan = new CeilingFan(); LightOnCommand kitchenLightOnCommand = new LightOnCommand(kitchenLight); LightOffCommand kitchenLightOffCommand = new LightOffCommand(kitchenLight); LightOnCommand livingRoomLightOnCommand = new LightOnCommand(livingRoomLight); LightOffCommand livingRoomLightOffCommand = new LightOffCommand(livingRoomLight); StereoOnWithCDCommand stereoOnWithCdCommand = new StereoOnWithCDCommand(livingRoomStereo); StereoOffCommand stereoOffCommand = new StereoOffCommand(livingRoomStereo); CeilingFanHighCommand ceilingFanHighCommand = new CeilingFanHighCommand(ceilingFan); CeilingFanMediumCommand ceilingFanMediumCommand = new CeilingFanMediumCommand(ceilingFan); CeilingFanOffCommand ceilingFanOffCommand = new CeilingFanOffCommand(ceilingFan); remoteControl.SetCommand(0, kitchenLightOnCommand, kitchenLightOffCommand); remoteControl.SetCommand(1, livingRoomLightOnCommand, livingRoomLightOffCommand); remoteControl.SetCommand(2, stereoOnWithCdCommand, stereoOffCommand); Console.WriteLine(remoteControl.ToString()); Console.WriteLine(remoteControl.OnButtonWasPushed(0)); Console.WriteLine(remoteControl.OffButtonWasPushed(0)); Console.WriteLine(remoteControl.OnButtonWasPushed(1)); Console.WriteLine(remoteControl.OffButtonWasPushed(1)); Console.WriteLine(remoteControl.OnButtonWasPushed(2)); Console.WriteLine(remoteControl.OffButtonWasPushed(2)); RemoteControlWithUndo remoteControlWithUndo = new RemoteControlWithUndo(); remoteControlWithUndo.SetCommand(0, kitchenLightOnCommand, kitchenLightOffCommand); remoteControlWithUndo.SetCommand(1, ceilingFanHighCommand, ceilingFanOffCommand); remoteControlWithUndo.SetCommand(2, ceilingFanMediumCommand, ceilingFanOffCommand); Console.WriteLine(); Console.WriteLine(remoteControlWithUndo.ToString()); Console.WriteLine(remoteControlWithUndo.OnButtonWasPushed(0)); Console.WriteLine(remoteControlWithUndo.OffButtonWasPushed(0)); Console.WriteLine(remoteControlWithUndo.UndoButtonWasPushed()); Console.WriteLine(remoteControlWithUndo.OffButtonWasPushed(0)); Console.WriteLine(); Console.WriteLine(remoteControlWithUndo.ToString()); Console.WriteLine(remoteControlWithUndo.UndoButtonWasPushed()); Console.WriteLine("CEILING FAN"); Console.WriteLine(); Console.WriteLine(remoteControlWithUndo.OnButtonWasPushed(1)); Console.WriteLine(remoteControlWithUndo.OffButtonWasPushed(1)); Console.WriteLine(remoteControlWithUndo.ToString()); Console.WriteLine(remoteControlWithUndo.UndoButtonWasPushed()); Console.WriteLine(remoteControlWithUndo.OnButtonWasPushed(2)); Console.WriteLine(remoteControlWithUndo.ToString()); Console.WriteLine(remoteControlWithUndo.UndoButtonWasPushed()); Console.WriteLine("\r\n-----------PARTY------------\r\n"); RemoteControlWithUndo partyRemoteControl = new RemoteControlWithUndo(); Light partyLight = new Light("Party room"); Stereo partyStereo = new Stereo("Party room"); CeilingFan partyCeilingFan = new CeilingFan(); LightOnCommand lightOn = new LightOnCommand(partyLight); LightOffCommand lightOff = new LightOffCommand(partyLight); StereoOnWithCDCommand stereoOnWithCd = new StereoOnWithCDCommand(partyStereo); StereoOffCommand stereoOff = new StereoOffCommand(partyStereo); CeilingFanHighCommand ceilingFanHigh = new CeilingFanHighCommand(partyCeilingFan); CeilingFanOffCommand ceilingFanOff = new CeilingFanOffCommand(partyCeilingFan); ICommand[] partyOn = {lightOff, stereoOnWithCd, ceilingFanHigh}; ICommand[] partyOff = {lightOn, stereoOff, ceilingFanOff}; partyRemoteControl.SetCommand(0, new MacroCommand(partyOn), new MacroCommand(partyOff)); Console.WriteLine(partyRemoteControl.OnButtonWasPushed(0)); Console.WriteLine(); Console.WriteLine(partyRemoteControl.OffButtonWasPushed(0)); Console.WriteLine(); Console.WriteLine(partyRemoteControl.UndoButtonWasPushed()); Console.ReadLine(); }