public void QueryState_WithNoItemInContext_ReturnsDisabled()
        {
            // Arrange
            var sheer = Substitute.For<ISheerResponse>();
            var contextChecker = Substitute.For<ICommandContextChecker>();
            var locator = Substitute.For<IDialogLocator>();
            var processor = Substitute.For<IDialogResultProcessor>();
            var command = new SelectBaseLayout(sheer, contextChecker, locator, processor);

            var context = new CommandContext();

            // Act
            var result = command.QueryState(context);

            // Assert
            Assert.Equal(CommandState.Disabled, result);
        }
        public void QueryState_WhenContextCheckerReturnsTrue_ReturnsEnabled()
        {
            // Arrange
            var sheer = Substitute.For<ISheerResponse>();
            var contextChecker = Substitute.For<ICommandContextChecker>();
            contextChecker.CanExecute(Arg.Any<Item>()).Returns(true);
            var locator = Substitute.For<IDialogLocator>();
            var processor = Substitute.For<IDialogResultProcessor>();
            var command = new SelectBaseLayout(sheer, contextChecker, locator, processor);

            var context = new CommandContext(MasterFakesFactory.CreateFakeItem());

            // Act
            var result = command.QueryState(context);

            // Assert
            Assert.Equal(CommandState.Enabled, result);
        }