Advertisement
apieceoffruit

CommandTerminal_Should

Aug 6th, 2021
1,055
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 2.71 KB | None | 0 0
  1. using FluentAssertions;
  2. using NSubstitute;
  3. using NUnit.Framework;
  4.  
  5. namespace CommandSystem
  6. {
  7.     [TestFixture]
  8.     public class CommandTerminalShould
  9.     {
  10.         private CommandTerminal _terminal;
  11.  
  12.         private TerminalDisplay _display;
  13.         private TerminalCommands _commands;
  14.         private Command _commandA;
  15.        
  16.         [SetUp]
  17.         public void Setup()
  18.         {
  19.             _commandA = Substitute.For<Command>();
  20.             _display = Substitute.For<TerminalDisplay>();
  21.             _commands = Substitute.For<TerminalCommands>();
  22.            
  23.            
  24.            
  25.             _terminal = new CommandTerminal(_display,_commands);
  26.            
  27.            
  28.         }
  29.  
  30.         [Test]
  31.         public void when_no_commands_send_messages_to_display()
  32.         {
  33.             ReturnNoCommands();
  34.            
  35.             var message = "Hello World";
  36.             string sender = "Jason";
  37.             _terminal.Enter(sender, message);
  38.             _display.Received().Send(sender,message);
  39.         }
  40.  
  41.         [Test]
  42.         public void when_command_matched_execute_command()
  43.         {
  44.             ReturnCommand(_commandA);
  45.            
  46.             var message = "Execute Order 66";
  47.             string sender = "Jason";
  48.             _terminal.Enter(sender,message);
  49.            
  50.             _commandA.Received().Execute();
  51.         }
  52.  
  53.         [Test]
  54.         public void When_default_sender_empty_sender_is_system()
  55.         {
  56.             ReturnNoCommands();
  57.            
  58.             _terminal.Enter("Message");
  59.             _display.Received().Send("SYSTEM", "Message");
  60.         }
  61.  
  62.         [Test]
  63.         public void when_default_sender_assigned_returns_default_sender()
  64.         {
  65.             ReturnNoCommands();
  66.  
  67.             const string DEFAULT_SENDER = "DEFAULT_SENDER";
  68.             _terminal.SetDefaultSender(DEFAULT_SENDER);
  69.            
  70.             _terminal.Enter("TEST");
  71.            
  72.             _display.Received().Send(DEFAULT_SENDER,"TEST");
  73.  
  74.         }
  75.  
  76.         [Test]
  77.         public void use_provided_command()
  78.         {
  79.             ReturnCommand(_commandA);
  80.            
  81.             var commander = new Commander();
  82.            
  83.             _terminal = new CommandTerminal(commander,_display,_commands);
  84.  
  85.             _terminal.Commander.Should().Be(commander);
  86.            
  87.            
  88.             _terminal.Enter(string.Empty);
  89.            
  90.             _commandA.Received().Execute();
  91.            
  92.  
  93.         }
  94.  
  95.  
  96.         void ReturnNoCommands()=>ReturnCommand(NoCommand.Instance);
  97.         void ReturnCommand(Command cmd)
  98.         {
  99.             _commands.FindCommandFor(Arg.Any<string>())
  100.                 .ReturnsForAnyArgs(cmd);
  101.         }
  102.     }
  103. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement