public override void Execute() { var television = new Television(); Assert.IsType <TelevisionOffState>(television.State); Assert.False(television.Powered); Assert.Null(television.Volume); Assert.Null(television.Muted); television.LowerVolume(); // Nothing should changes when the television is off. Assert.IsType <TelevisionOffState>(television.State); Assert.False(television.Powered); Assert.Null(television.Volume); Assert.Null(television.Muted); television.IncreaseVolume(); Assert.IsType <TelevisionOffState>(television.State); Assert.False(television.Powered); Assert.Null(television.Volume); Assert.Null(television.Muted); television.ToggleMute(); Assert.IsType <TelevisionOffState>(television.State); Assert.False(television.Powered); Assert.Null(television.Volume); Assert.Null(television.Muted); // Let's power it up. television.TogglePower(); Assert.IsType <TelevisionOnState>(television.State); Assert.True(television.Powered); Assert.Equal(2, television.Volume); Assert.False(television.Muted); television.LowerVolume(); television.LowerVolume(); television.LowerVolume(); Assert.IsType <TelevisionOnState>(television.State); Assert.True(television.Powered); Assert.Equal(0, television.Volume); Assert.False(television.Muted); television.IncreaseVolume(); television.IncreaseVolume(); television.IncreaseVolume(); Assert.IsType <TelevisionOnState>(television.State); Assert.True(television.Powered); Assert.Equal(3, television.Volume); Assert.False(television.Muted); television.ToggleMute(); Assert.IsType <TelevisionMutedState>(television.State); Assert.True(television.Powered); Assert.Equal(3, television.Volume); Assert.True(television.Muted); television.IncreaseVolume(); Assert.IsType <TelevisionOnState>(television.State); Assert.True(television.Powered); Assert.Equal(4, television.Volume); Assert.False(television.Muted); television.ToggleMute(); television.ToggleMute(); Assert.IsType <TelevisionOnState>(television.State); Assert.True(television.Powered); Assert.Equal(4, television.Volume); Assert.False(television.Muted); television.TogglePower(); Assert.IsType <TelevisionOffState>(television.State); Assert.False(television.Powered); Assert.Null(television.Volume); Assert.Null(television.Muted); }