Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using FluentAssertions;
- using NSubstitute;
- using NUnit.Framework;
- namespace CommandSystem
- {
- [TestFixture]
- public class CommandTerminalShould
- {
- private CommandTerminal _terminal;
- private TerminalDisplay _display;
- private TerminalCommands _commands;
- private Command _commandA;
- [SetUp]
- public void Setup()
- {
- _commandA = Substitute.For<Command>();
- _display = Substitute.For<TerminalDisplay>();
- _commands = Substitute.For<TerminalCommands>();
- _terminal = new CommandTerminal(_display,_commands);
- }
- [Test]
- public void when_no_commands_send_messages_to_display()
- {
- ReturnNoCommands();
- var message = "Hello World";
- string sender = "Jason";
- _terminal.Enter(sender, message);
- _display.Received().Send(sender,message);
- }
- [Test]
- public void when_command_matched_execute_command()
- {
- ReturnCommand(_commandA);
- var message = "Execute Order 66";
- string sender = "Jason";
- _terminal.Enter(sender,message);
- _commandA.Received().Execute();
- }
- [Test]
- public void When_default_sender_empty_sender_is_system()
- {
- ReturnNoCommands();
- _terminal.Enter("Message");
- _display.Received().Send("SYSTEM", "Message");
- }
- [Test]
- public void when_default_sender_assigned_returns_default_sender()
- {
- ReturnNoCommands();
- const string DEFAULT_SENDER = "DEFAULT_SENDER";
- _terminal.SetDefaultSender(DEFAULT_SENDER);
- _terminal.Enter("TEST");
- _display.Received().Send(DEFAULT_SENDER,"TEST");
- }
- [Test]
- public void use_provided_command()
- {
- ReturnCommand(_commandA);
- var commander = new Commander();
- _terminal = new CommandTerminal(commander,_display,_commands);
- _terminal.Commander.Should().Be(commander);
- _terminal.Enter(string.Empty);
- _commandA.Received().Execute();
- }
- void ReturnNoCommands()=>ReturnCommand(NoCommand.Instance);
- void ReturnCommand(Command cmd)
- {
- _commands.FindCommandFor(Arg.Any<string>())
- .ReturnsForAnyArgs(cmd);
- }
- }
- }
Add Comment
Please, Sign In to add comment