main
 1using System;
 2using mars.rover.common;
 3using mars.rover.domain;
 4
 5namespace mars.rover.presentation.model
 6{
 7    public class Navigation : Specification<char>, ParameterizedCommand<Rover>
 8    {
 9        readonly char command_text;
10        readonly Action<Rover> navigation;
11
12        public Navigation(char command_text, Action<Rover> navigation)
13        {
14            this.command_text = command_text;
15            this.navigation = navigation;
16        }
17
18        public virtual void run_against(Rover rover)
19        {
20            navigation(rover);
21        }
22
23        public virtual bool is_satisfied_by(char item)
24        {
25            return char.ToUpperInvariant(command_text).Equals(char.ToUpperInvariant(item));
26        }
27    }
28}